Billing Management: #2 Fair way of Billing- Prorated Billing

Billing Management: #2 Fair way of Billing- Prorated Billing

Hello,

From speaking about the traditional ways of billing in the previous post, we are moving into the deep sea of billing. We are now in a zone to break out the most complex yet, I would call it the fairest way of billing, the Prorated Billing.

Prorated Billing ensures that customers pay only for the exact portion of a service they consume. Whether they join mid-cycle, switch plans, or cancel early, proration guarantees transparency and fairness. 

What is Prorated Billing?  
In short, prorated billing involves splitting charges according to the length of service used within a billing cycle. Instead of charging the customer for the entire month regardless of when they sign up or amend the subscription, businesses calculate charges accurately based on time or usage. This directly enhances customer trust and satisfaction and eliminates disputes over charges.

In this post, we will understand how proration works in different industries by examining the major industry types that need/must have proration in their billing strategy.

Scenario: SaaS  

A SaaS customer starts the month on the Basic plan, which costs $30/month. Midway through the billing cycle, on the 15th, they realise they need additional features and decide to upgrade to the Pro plan, which costs $60/month.

Without proration, businesses might charge the full $60 or keep them on Basic until the next cycle, which is unfair. With proration, this can be solved by splitting the bill into the part that will be used and the period that has elapsed.

In this scenario, part of the month is charged at the Basic plan cost, and the remaining is charged at the Pro plan cost. 

Old Plan

New Plan

Basic Plan: $30

Pro Plan: $60

Charges per day: $30/30=$1

Charges per day: $60/30=$2

No.of days remaining: 15

No.of days to be charged: 15

Credits Remaining: $1x15=$15

Amount to be charged: $2x15=$30

Net Payable: Amount to be charged- Credits Remaining: $30-$15= $15

The Final Invoice Amount must be charged on the 15th, and the customer's subscription will be moved to the Pro Plan.

Scenario: Telecom  

Imagine a customer activating a mobile plan costing $60 on the 20th of the month. The company has a standard billing cycle of 30 days. Some businesses might activate the plan for the full plan amount and allow it to be charged again on the set billing cycle. However, that's not the ideal approach.

With Proration, the days before the activation date are excluded, and charges are made only for the exact number of days used.

  • Plan Amount: $60

  • Charge per day: $60/30= $2

  • No.of days to be billed: 10

  • Final Payable Amount: $20

 The Final Payable Amount will be charged on the plan activation date, and the next charge will occur after 10 days, aligning with the billing cycle.

Scenario: Streaming Service  

A streaming subscriber who is active in the $120/month Premium plan decides to switch to the $60/month Standard plan after 10 days of usage in the current billing cycle.

Without proration, the customer might feel overcharged for unused Premium days. So, to balance the charges between the higher-priced plan and the lower one, credits will be added to the customer account, which can either be refunded or adjusted for the next invoice cycle.

Old Plan

New Plan

Premium Plan: $120

Standard Plan Cost: $60

Charges per day: $120/30= $4

Charges per day: $60/30= $2

No.of days used: 10

No.of days remaining: 20

Charges for used days: $4x10= $40

Amount to be charged: $2x20=$40

Remaining Credits: $80

 

Net Credit: Remaining Credits- Amount to be charged for 20 days: $80-$40= $40


The Net Credit will stay with the customer account and will be applied to the next invoice, or it can be refunded.

Proration Across Industries 

While SaaS, Telecom and Streaming services are the most common businesses where prorated billing happens quite often, other industries need this,

  • Logistics Companies operate with standard shipment charges. They might need proration when the volume of the consignment changes in the middle of the cycle.

  • Internet Service Providers use this when there is a change in plan within the billing cycle.

  • Fintech and Payment Apps prorate service fees when accounts are opened or closed in the middle of the billing cycle.

Zoho Billing has the finesse to handle these contract amendments effortlessly across industry types. Whether it's a mid-cycle upgrade, a partial cancellation, or a new customer subscribing during the middle of the billing cycle, Zoho Billing ensures invoices are adjusted seamlessly. Proration can be enabled in Zoho Billing with a simple toggle, and the application automatically takes care of all the math in the backend.

Proration Billing is not a burden but a gift wrapped in a hard cover. 

Offering fair charges based on usage during billing increases confidence and provides businesses with a reputation for being fair and transparentBut what about usage that happens before it hits the bill? Even with proration in place, there are scenarios where usage happens before it's billed. For instance, a customer may request an add-on, consume additional resources, or make a one-time transaction in the middle of the billing period. These often fall into the category of unbilled charges.

Notes
In the next post, we will explore how businesses manage these unbilled charges and why keeping them in check is critical for accurate billing.

Stay Tuned! 



      • Sticky Posts

      • Community Learning Series | Digest #5 — September 2020

        Dear customers, We're happy to bring you the September edition of our #CommunityDigest! Keep track of your subscription KPIs right from your smartphone: Last month, we enhanced our Android mobile app to help our customers get daily updates on their business health. We got to know from a lot of customers that this has made their job much more easier because they no longer have to keep a reminder to manually check on the previous day's revenue or activations. If you have not downloaded it yet, here's
      • Community Learning Series | Digest #4 - August 2020

        Dear customers, We hope you're staying safe and healthy. I'm happy to bring you the fourth edition of our #CommunityDigest with some brand-new updates from us. 1. Daily Business Updates (for Android users) The Zoho Subscriptions Android app has got a cool new update: You can now get a push notification to your smartphone that lets you know how many activations and cancellations have taken place, and what's the net revenue for the previous day. The best part is, you can tell the app when exactly you
      • Community Learning Series | Digest #3 - July 2020

        Dear customers, We hope you're staying safe and healthy. We're glad to bring you the July edition of our #CommunityDigest. New community members can view our previous newsletters here. This time, we have two major updates and three interesting topics for you: 1. Zoho Subscriptions Developer Community Since the inception of Zoho Subscriptions, our team believed that the recurring billing platform we provide should be able to offer an extensive API library that empowers businesses to automate most
      • Introducing: Community Learning Series | Digest #1 - May 2020

        Dear customers, We hope you are staying safe and healthy. Helping businesses manage their customer subscriptions more efficiently has always been, and always will be, our goal at Zoho Subscriptions. We strongly believe this is possible if we grow together as a community and share what we know with each other. To nurture this shared learning experience, here is our brand-new Community Learning Series! ​ Welcome to the first edition of our digest! Each edition of our community digest includes guides

        • Recent Topics

        • LOGS FOR RECEIVED MAIL ( READ DATE & TIME)

          In Zoho mail we can extract the read logs of received mails so that we can see when we have read the mail and at what time & we have read it.
        • Domain verification probem

          Hello, i use a domain from Namecheap with hosting from Cinfu when i try to verify my domain on zoho i get "TXT Verification failure" i even tried the HTML verification and the code appears but also giving me the verification failure error.
        • Switching to Cloudflare email routing from Zoho Mail

          Hello, I'm currently working on migrating from Zoho Mail to Cloudflare's email routing solution. This requires changing MX and TXT records for our custom domain - when we do this, will our users still be able to log into their accounts and access an archived
        • Un Subscription Button

          How can i Add the Un Subscription Button in Zoho mail
        • Documents unable view and need to downlad

          I can't view .doc files in Zoho mail unless I download them, but I can view PDF files without downloading.
        • we encountered a problem while sending your email. please try again later.

        • Adding and removing people from groups

          We're having problems adding people to a group. Apparently Zoho has one email address and will not recognize a different email address.
        • MAIL SEARCH IS NOT WORKING

          THIS ISSUE HAS BEEN BUGGING ME SINCE MORNING, PLEASE RESOLVE THIS AT THE EARLIEST
        • URL Parameter on Help Center SIgn in link

          Is it possible to add a url parameter to the sign in link on the Help Center?
        • migrating from HelpScout

          I am attempting to import a conversation file from helpscout into desk and am receiving size errors. What is the current file size restriction. Does anyone have any tips for a successful migration?
        • Layout Rules Don't Apply To Blueprints

          Hi Zoho the conditional layout rules for fields and making fields required don't work well with with Blueprints if those same fields are called DURING a Blueprint. Example. I have field A that is used in layout rule. If value of field A is "1" it is supposed to show and make required field B. If the value to field A is "2" it is supposed to show and make required field C. Now I have a Blueprint that says when last stage moves to "Closed," during the transition, the agent must fill out field A. Now
        • Article Name Sorting in Zoho Desk Knowledge Base (agent / admin side)

          Dear Zoho Desk Support, We are writing to request an enhancement to the Knowledge Base management feature within Zoho Desk. Currently, there is no option to sort articles by their name, which significantly hinders efficient article management, especially
        • How to parse JSON data with SQL in Zoho Analytics?

          Hi all, I have a column with JSON data. I want to show this column in a chart, but it is very messy, and no JSON parsing function is supported on Zoho Analytics. data example: {"id": 5, "status": "false", "date": "15/10/22"} what I want to do in SQL is
        • Ability to turn off "Would you like this amount to be reflected in the Payment field?" message

          Team, Is there any way to turn off the message" Would you like this amount to be reflected in the Payment field?" when I make a payment? This is so annoying. This happens EVERY TIME I put an amount in the Payment Made field.
        • Add an Equation Field (Or update the Formula Field)

          Hi, I would like to be able to have one field as a Text Field with QR Code, and then have multiple Equation/Formula Fields that then take parts of that fields data with LEFT, MID, RIGHT, REGEX, etc. Thanks Dan
        • How to parse column having JSON data using SQL?

          We have a daily sync from a PostgreSQL database that brings data into Zoho Analytics. Some of the columns store raw JSON data. We need to build SQL queries on top to parse data from JSON and store them in discrete columns. There is no option for "Data
        • Enable report button based on the current user role

          Greetings  i have a report that contains action buttons, i want these buttons to appear as enabled only when the current logged in user has a certain role, for example only CEO role users will be able to use this button. but when setting the conditions
        • 500 Internal Error In Mail API

          I'm getting 500 Internal Error when using mail API. I'm getting this error for this one account, it works fine for other Account IDs which I have in my system.
        • Piss poor service in Support in Domains and email

          Srijith Narayanan B contacted me today. Very pleasant fellow. Just didn't want to tell him how bad your support service is. You help the person, but you leave before we can finish the next stage. Which causes a lot of frustration. It's been 8 days now
        • Zoho live chat widget in React Js

          I am trying to test Zoho live chat widget code in react js, below is the sample code void(0)} onClick={()=>window.$zoho.salesiq.floatwindow.visible("show")}>LIVE CHAT window.$zoho = window.$zoho || {};window.$zoho.salesiq = window.$zoho.salesiq
        • Are there any plans to add Triggers for Subform edits?

          By The Grace of G-D.  Hi, How are you? Can you tell me if you have any plans to support subform edit as a workflow trigger? And what about have them trigger an "onChange" client script?
        • Zoho commerce

          i am facing issue with order summary emails.i am getting 1 continuous email for order received yesterday and today.ideally 1 email should be received for a particular date ie for 02/08 i should received 1 email from 12.01am till 11.59pm but it is being
        • Feature Request: Improve Category Page Sorting for "Out of Stock" Products

          Hi there, I'm writing to request a new feature that I believe would significantly improve the user experience in my online store. Currently, on category pages, products are sorted by popularity. However, when a popular product goes "Out of Stock," it
        • POSTMAN - There was an error in evaluating the Pre-request Script:Error: Cannot read properties of undefined (reading 'json')

          I am beginning the journey to learn how to use the API for Zoho Sign. I am getting the following error when I try to use postman. To walk you through how I am getting this error... I wanted to start with a simple GET and expand my learning from there.
        • How do i integrate shipstation with zoho inventory

          Wanting to set up my own delivery driver in ship station so we can get real time tracking of where the package is but then i want it to automatically update zoho inventory packages/shipments how can i do this
        • Invalid value passed for salesorder_id

          Hi, I am using sales return API, details are given below: API: https://inventory.zoho.com/api/v1/salesreturns?organization_id=700571811 Post Json Data: { "salesreturn_number": "", "date": "2020-11-12", "reason": "Testing from API", "line_items": [ { "item_id":
        • Create Invoice and Invoice Items from Sales Order via API

          Currently, when creating an Invoice associated with a Sales Order via the API, it appears that I must manually include all of the items (line_items) even though they are already part of the Sales Order. My question is this: is it possible to raise an Invoice via the API based on all of the information associated with a Sales Order--such as the  items? In other words, do I always have to manually include the items (line_items) when raising an Invoice via the API when the Invoice is associated with
        • Outlook 2013 Calendar Syncs but "Related To" Field in Zoho is blank

          Outlook 2013 Calendar Syncs but Related To Field in Zoho is blank I expect the "Realted To" field to be populated with the calendar participants
        • Export a Course

          Is it possible to export a course from Zoho Learn to a SCORM file?
        • Add and Remove Agents from Departments and Groups in Zoho One

          Hi Zoho Flow Team, We hope you're doing well. Currently, Zoho Flow provides an action to add an agent to a group in zoho one, but there is no action to remove an agent from a group or a department. Another action that we find missing is the option to
        • Zoho learn Custom portal - networkurl & CustomPortalId

          I want to get my individual account’s networkurl and customportalId to use in this API: https://learn.zoho.com/learn/api/v1/portal/<networkurl>/customportal/<customportalId>/manual How can I retrieve the networkurl and customportalId using the API? I
        • Consumer Financing

          Does Zoho currently have a payment gateway (such as Stripe, Square, etc) which offers financing for customers? So, let's say the estimate we give the customer is greater than what they can afford at the time, but we can sell the service now, letting them
        • Intégration de la gestion des Passkeys dans Zoho Vault

          Zoho Vault est depuis plus d’une décennie une solution fiable pour les entreprises : pour la gestion, le partage et le stockage des mots de passe. En 2018, nous avons fait un pas en avant en proposant la connexion unique (SSO). Nous sommes fiers de franchir
        • Scan & Fill with double quote key/value pairs

          Hi, An old Ticket moved to a Topic/Idea: I love the idea of the new Scan & Fill as it nearly covers my previous request for a QR Scanner to read a multi-part QR Code. My QR Codes are hard-coded as below: {"key1":"value1","key2":"value2","key3":"value3"}
        • Analytics SQL Queries should allow # as comment

          # and // are very common for commenting in SQL. Not sure why analytics only allows /* and */ for commenting. Especially when # grays the line as if it's being commented out. This should be added for sure.
        • SalesIQ Operator Activity Reports in Zoho Analytics

          I'm busy building a dashboard in Zoho Analytics and I want to include SalesIQ stats in the dashboard, but I'm unable to get the statistics mentioned in the attached image. Any idea where I can get the stats for Operator Activity?
        • Default in fields on Form B based on the user selection in Form A

          Hi Everyone, I have added an action button to a form report to bring up a new form based on user selection, see it indicated in red below: Then when the ne form loads, I want to default in some of the fields based on the record the user was selected on.
        • No longer can indent

          Hey there! Is it just me or were we used to be allowed to used tab or indent when writing. It’s not working right now, has this always been the case?
        • Free webinar alert! Seamless Transition with Lossless Migration: Zoho One + Zoho Mail

          Hello Zoho Mail Community! 🚀 Attention IT Admins and Email Administrators! Are you planning to migrate your organization's email to Zoho Mail within the Zoho One ecosystem? 📧 Join our exclusive webinar, Seamless Transition with Lossless Migration: Zoho
        • Add Resource to Export

          The Export Data feature does not include a column for the Resource field. Without this column, Zoho Bookings cannot be used by any business for resource-based services or event types e.g. room bookings, equipment bookings. It seems to be an oversight,
        • Next Page