Billing Management: #6 Usage Billing in SaaS

Billing Management: #6 Usage Billing in SaaS

Imagine a customer shuffling across multiple subscriptions, a streaming service, a music app, cloud storage, and a design tool. Each one charges a flat monthly fee, regardless of how much or how little they use. Some months, the customer barely opens the subscriptions, yet the bill is the same. This is what we call subscription fatigue, meaning resistance from the customer towards fixed, recurring charges that don't match their actual usage.   

For SaaS, subscription fatigue is more than a buzzword. It's a business risk as a flat rate may appear overcharging for one, but others enjoy paying less for their high usage. This imbalance leads to churn, lost revenue and customer grievances.

The solution lies in usage billing, where the customer pays based on what they consume. By aligning cost with value, businesses can increase fairness and unlock sustainable growth. 
While the principle is simple, it requires a reliable way to track and monetise usage properly.


Zoho Billing Makes Usage Billing Seamless

Zoho Billing provides SaaS businesses with all the tools needed to implement usage-based pricing effectively. Key capabilities that Zoho Billing offers that work effectively for SaaS businesses include:

  • Flexible Pricing Tiers: Businesses can create multiple plans with different prices and list them on their websites for direct signup.

  • Zero value Plan: For charging customers purely based on usage alone, businesses can create $0 value plan and associate usage addons to charge appropriately.

  • Addons: Attach both flat-rated addons and usage-based addons to the subscription.

  • Hybrid Model: Combine a flat subscription fee with usage-based addons to monetise additional consumption fairly.

When a usage addon is attached to a subscription, Zoho Billing ensures that usage is tracked, recorded and billed accurately.


Scenario 1:

Sam runs a small consulting firm and uses a mailing application to communicate with his clients. His plan costs $200 and includes 500 GB of storage. Sam stays within the limit most months; however, with many attachments, proposals and reports during a particular month, his mailbox usage exceeds by another 100 GB. The mailing application provides a usage addon for $0.50/GB for the additional usage instead of offering a rigid higher value plan.


Item

Value

Base Subscription

$200

Included Invoices

500

Actual Usage

600

Extra Usage

100

Unit Price for Extra Usage

$0.50/GB

Additional Charge

$50

Total Invoice Value (Base Price+Added Usage)

$250


The billing team records the extra 100 GB usage in Zoho Billing using the manual usage entry method and nothing more. The system automatically calculates $50 overage fee and appends it to the invoice to make the renewal invoice for the period $250.

Scenario 2:
Imagine Smith Enterprise uses a cloud analytics SaaS product. The contract covers a base subscription plan and two usage add-ons: API calls and storage. The base plan costs $500/month and includes 100,000 API calls and 500 GB storage. For every API call they make, an extra $0.01 per call will be charged. Similarly, for extra storage, $0.10 will be charged per GB. 

During a particular month, the company consumes 250,000 API calls and 750 GB of storage, clearly above the usage limit. A subsequent invoice is created, and the charge based on the usage data is added to the base subscription value.

Addon 1

Addon 2

Item

Value

Item

Value

Included API Calls

100,000

Includes Storage

500 GB

Actual Usage

250,000

Actual Usage

750 GB

Extra Usage

150,000

Extra Usage

250

Unit Price

$0.01/call

Unit Price

$0.10/GB

Additional Charge

150,000x$0.01= $1500

Additional Charge

250x$0.10= $25

 

Item

Charges

Base Subscription

$500

API Call Overage

$1500

Storage Overage

$25

Total Invoice

$2025


The company exports the API call logs and storage usage data into a CSV file that can be imported into Zoho Billing. Zoho Billing digests both records, applies the pricing rule separately for each add-on, and generates a consolidated invoice.

Scenario 3: 
Roy runs a digital marketing agency offering various marketing campaigns across social media platforms. Roy owns a SaaS application that generates posts and charges $1.5 per post design. No fixed base price for this, but their clients are purely charged based on the number of posts made. During festive sessions, Roy's team schedules a maximum of 450 posts for a client.

Item

Value

Base Subscription

$0

Rate per post

$1.5

Actual Usage

450 posts

Total Invoice Value ($1.5x450)

$675

 

Using Zoho Billing, Roy records the usage manually or by importing them into the system. With no base price, the platform automatically calculates the total invoice based on the usage. Roy receives a clear invoice for $675, reflecting the value consumed.

SaaS Usage Billing Simplified

Usage Billing ensures that customers pay only for what they consume, whether extra storage, extra API calls, or purely based on the number of posts made. With Zoho Billing, SaaS businesses can seamlessly manage complex and straightforward usage billing scenarios. Adding usage to Zoho Billing is simplified through different methods. It can be added manually if there are fewer subscriptions, and usage data can be imported if there are more subscriptions and usage add-ons. Usage can also be pushed using APIs into Zoho Billing.

Post your use cases in the comments and find the best way to handle them using Zoho Billing.


NotesNext, we will dive into Usage Billing in Telecom and Internet Service Providers, showing how this model powers those sectors. 

    • 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

    Nederlandse Hulpbronnen


      • Recent Topics

      • Slack / Zoho Flow; Repl

        I am trying to add a comment in a zoho ticket when someone reply's to a message in a thread. The Message posted to public channel trigger doesn't seem to pick up thread messages. I also cannot use the thread_ts field as it doesn't seem to pull that in.
      • Get Holiday ready with Zoho Mail's Templates

        As the holiday season approaches, it’s time to step away from work and unwind. You may not be able to respond to every email or send individual messages to wish everyone holidays greetings—but It is still important to stay connected. How do you send thoughtful
      • Customize folder permissions in a Team Folder in a Team Folder via zoho Flow

        HI All, on the nth level folder of a team folder I would like to Customize folder permissions when it's created in the flow of Creating folders. That last level I only want to grant access to a specific group, goup ID 201XXXXXXXX. Can you help with a
      • Associating a Candidate to a Job Listing

        Hello, I am trying to use Zoho Forms embedded on my website for candidates to apply for a job opening. I want the form then to tie directly with zoho recruit and have the candidate be automatically inputed into Recruit as well as associated with the specific
      • Automate reminder emails for events

        Hi team, I am trying to automate send event reminders via zoho campaign to my attendees 1 day prior to my scheduled events. I used zoho flow, autoresponder in zoho campaign, as well as I used workflow and automation - but none of these methods are working.
      • Update related module entry Zoho Flow not working with custom module ?

        Hi everyone. I am facing an issue here on Zoho Flow. Basically what I am doing is checking when a module entry is being filled in with an Event ID. Event is a custom module that I created. If the field is being filled in I fetch the contact with its ID
      • How to disable time log on / time log off

        Hi We use zoho people just to manage our HR Collaborators. We don't need that each persona check in and out the time tracker. How to disable from the screen that ?
      • Zoho Flow - Add to Google Calendar from trigger in Zoho Creator App

        Hello! New to Zoho Flow, but I believe I have everything setup the way it should be however getting an error saying "Google Calendar says "Bad Request". Any idea where I should start looking? Essentially some background: Zoho Creator app has a trigger
      • Email authentication

        أريد التحقق من البريد الإلكتروني
      • What’s New in Zoho Analytics – December 2025

        December is a special time of the year to celebrate progress, reflect on what we have achieved, and prepare for what’s ahead! As we wrap up the year, this month’s updates focus on refining experiences, strengthening analytics workflows, and setting the
      • Marketing Tip #12: Earn trust with payment badges and clear policies

        Online shoppers want to know they can trust your store. Displaying trust signals such as SSL-secure payment badges, return and refund policies, and verified reviews shows visitors that your store is reliable. These visual cues can turn hesitation into
      • The improved portal experience: Introducing the template view for inventory modules, enhanced configurations, and PDF export support

        Availability: Open for all DCs. Editions: All Hello everyone, You can now achieve a seamless, brand-aligned portal experience with our enhanced configuration options and the new template view for inventory modules. Your clients will now be able to view
      • Zoho Analytics Bulk Api Import json Data

        HI, I’m trying to bulk-update rows in Zoho Analytics, and below are the request and response details. I’d like to understand the required parameters for constructing a bulk API request to import or update data in a table using Deluge. Any guidance on
      • Project Management Bulletin: December, 2025

        The holiday cheer is in the air and it’s time to reflect on the year that was. At Zoho PM Suite, we've been working behind the scenes on something huge and exciting all year and now we are almost ready—with just a bit of confetti—for our grand release
      • Inventory batch details

        Hi there, I'm trying to get the batch details of an item, here's what I've done so far. I've sent cUrl request to the below endpoint and I get a successful response. Within in the response I find the "warehouses" property which correctly lists all the
      • Auto check out after shift complete

        i'm just stuck here right now, i wanna know how to do this thing, now tell me, how can i configure a custom function that runs after complete shift time if employee forget to check-out ?
      • How to create a flow that creates tickets automaticaly everyday based on specific times

        Hi guys Does anyone know how to create a flow that will create tickets automaticaly in ZOHO Desk when a certain time is reached. Im havin a hard time configuring a flow that will create tickets automaticaly everyday during specific hours of the day For
      • ZOHO FLOW - ZOHO CREATOR - ZOHO WRITER : Get Related records

        Bonjour, J'ai besoin que vous m'ajoutiez la solution "Get related Records" dans la liste de choix de zoho creator (sous Zoho flow). En effet, j'ai besoin de récupérer les champs d'un sous formulaire pour l'ajouter à l'impression de mon document. Mer
      • Will zoho thrive be integrated with Zoho Books?

        title
      • Connecting email for each department in ZohoDesk

        Hi! Could someone help me to go through connecting emails for each department?
      • How do I trigger a Flow based on a campaign response?

        Is there a way to trgiider a Zoho Flow based upon a lead opening an email sent via Zoho Campaigns? I see that the data is recorded in the 'Campaigns' section of Zoho CRM under 'Member Status' and I want to trgigger a flow based upon that record changing.
      • All Zoho Flows are filtered

        My two flows operate perfectly when I run them as a test, but when they're activated each run ends with a status of neither success, nor fail, but filtered. I haven't set up any filters. I don't see where to turn off filters. When I test run on a sequence
      • Creating Multiple Items on Sales Order

        Hi, I’m trying to automate some processes using Zoho Flow, specifically the creation of sales orders in my Zoho Inventory. However, Zoho Flow's Create Sales Order function can only add one item. I would like to include multiple items in a single sales
      • Problem Connection from Zoho Flow and Gravity Form

        I obtained my API key from Gravity Forms via WordPress. However, when I enter my Zoho Flow, it states: Gravity Forms says, 'You are not authorised to access the API." I tried recreating a new API key, but it is still not working.
      • Eventbrite Email Field in Zoho Flow Returns "Info Requested" Instead of Actual Email

        Hi Zoho team, I'm using Zoho Flow to connect Eventbrite with Zoho CRM. My goal is to automatically add event attendees as leads in Zoho CRM. I’ve set up the flow and mapped the ${trigger.profile_email}} field to the Email field in CRM. However, I'm running
      • "Invalid value passed for Product ID" Error in Zoho Flow "Create Sales Order" Node

        Hello Zoho Community, I’m facing an issue with Zoho Flow while trying to create a sales order in Zoho Inventory using the "Create Sales Order" node. Here’s a detailed explanation of my setup and the problem: What I’m Trying to Achieve I’m building an
      • Associating Project with an Account via Flow

        I'm using flow to create a Project based on a Deal status update using flow. The fields exist to pass the Account Name through properly, but when you view the Projects module in a CRM Account Record it doesn't automatically associate the new Project Record
      • How to follow up a member in a meeting?

        Hello, I make weekly meeting online with a lot of people. I want(I've been using calendly to do it). I want to do a follow-up to it. I want to send messages via Zoho-flow to all the member that participated in the meeting. How can I do it?
      • Setting Delays in Invoice Reminder Flow

        I am currently working on a flow that sends reminders for unpaid invoices. The flow is designed to delay actions until specific intervals before the due date: A reminder should be sent 7 days before the due date. A second reminder should be sent 3 days
      • Get Sales Orders Related to Inventory Item

        Dear Team, I'm just wondering if there is a way to get a list of all Sales Orders related to a specific Inventory Item. I did search all articles but couldn't find any article that could help.
      • Endpoint Central Cloud Asset Update from Fresh Service

        All, Does anyone use the asset management feature in Fresh Service? I'd like some help on building a flow to update asset attributes in Endpoint Central Cloud based off of an update to that same asset in Fresh Service. The trigger is "asset is updated"
      • Zoho Flow Export to Deluge

        It would be great to take a user built zoho flow and export the entire flow as a deluge script including having multiple connected applications (showing the API connections and webhooks) and different functionality in the other applications interacting
      • Action Iteration/Loop using Zoho Flow

        Trying to use Zoho Flow for automating following Context - A zoho form entry which has image upload field with upto 5 images setting and files are saved into Workdrive. After form is submitted need to create folder based on some fields and move files
      • Zoho Flow - Unable to evaluate formatDate with Zoho Invoice Date Field for Calendar Integration

        Hello Community, I'm trying to automate the creation of all-day events in Zoho Calendar whenever a new invoice is created in Zoho Invoice. I'm using Zoho Flow for this automation. My Goal: When an invoice is created with a specific "Event Date," I want
      • Zoho Inventory Sales Order Items

        I'm trying to build automation using Zoho Flow to add items to a Sales Order. In the automation options for both "create sales order" and "update sales order", The item ID is required. However, when I update the Sales Order, it's just replacing the item
      • Permissions for Azure Devops connection

        I am trying to set up a connection with our Azure DevOps org but it keeps giving me this error. On Azure I should be able to have admin-level access to everything. Can you please point me to which permission this is checking for so I can enable it?
      • Best way to start zoho inventory with bulk openning stock

        We are already using zoho book since long time for cars trading company. Now to streamline more, would like to import the excel data of closing stock of inventory to zoho inventory and to start on. Since we need to track each VIN (unique vehicle id number)
      • My IMAP mail suddenly stopped working

        On my iPhone and iPad, IMAP stopped working for my Zoho account with the error "User name or password incorrect" and "Invalid credentials failure" however I was able to access via web with the same credentials. Also stopped working on Apple Mail client.
      • Confused by the distiction between matched and categorized when reconciling a bank statement an how to

        I used to use quickbooks. In quickbooks, it was possible to use the check writing feature to add an expense that was on the bank statement that did not go through the AP and check writing process. I would write a check, assign it a number like etf (for
      • Not Receiving OTP • https://voters.eci.gov.in/home/family

        Hello Customer, Greetings from Zoho Mail. Upon a detailed review of our delivery logs, we can confirm that other Zoho Mail users are successfully receiving OTP emails from eci.gov.in. However, in your specific case, it appears that the OTP emails are
      • Next Page