How usage-based billing works
Your product reports usage as it happens: each API call, message sent or gigabyte stored becomes an event tied to a customer. At the end of the billing period the events are rolled up into one number, that number goes through a price, and the result lands on the invoice.
The price can take several shapes: a flat rate per unit, packages of units, tiers that get cheaper as usage grows, or the exact cost of each request plus a markup, which suits AI products whose own costs vary per request. Many businesses pair usage with a base fee that includes an allowance, so customers get a predictable minimum and you are paid for heavy use.
Because the amount is only known when the period ends, usage is usually billed in arrears, while a base fee on the same subscription is billed in advance.
usage charge = (units used − units included) × price per unit
Worked example
An API product charges $49 a month, which includes 10,000 calls, plus $2 for every further 1,000 calls. A customer makes 34,000 calls in May.
- Base fee, includes 10,000 calls
- $49.00
- Calls above the allowance: 34,000 − 10,000
- 24,000
- Overage: 24 blocks of 1,000 × $2
- $48.00
- May invoice
- $97.00
Why usage-based billing matters
Usage-based billing ties what customers pay to the value they get. Small customers can start cheaply, and revenue grows as their use grows, without a sales conversation for every step up.
For products with a real cost per request, such as AI models, storage or messaging, it also protects your margin: a customer who uses ten times more pays ten times more, instead of costing you more on a flat plan.
Common mistakes
- Surprise invoices Customers dislike bills they could not predict. Show usage as it builds up and warn them before a threshold.
- Counting usage twice Retried requests can send the same event twice. Give each event a unique key so a retry is not billed again.
- Pure pay as you go with no floor Revenue that depends entirely on usage is hard to forecast. A base fee, a minimum or prepaid credits give both sides something steady.