
Pricing & Monetization
Usage-based vs seat-based pricing: 5 models and when each works
Anh-Tho Chuong•Oct 8•6 min read
Oct 8
/7 min read
You add usage-based billing to an existing SaaS product by instrumenting your app to send usage events to a separate metering and billing layer, then pricing those events with a hybrid plan. Your current subscriptions keep running. New customers and new features go first. Existing accounts migrate last, in waves.
The rest of this guide covers the architecture, the pricing structure to aim for, and the order of operations that keeps finance, sales and customers on side.
Most teams assume "add usage" means rewriting billing. It rarely does. (If you are weighing whether to build the billing layer yourself, see build or buy usage-based billing.) The pattern that works keeps three jobs apart:
The application never calculates a price. It reports facts: who did what, when, and with which attributes. Pricing lives in configuration, so changing a rate or adding a tier doesn't need an engineering release.
Here's an illustrative event in Lago's documented format:
{ "transaction_id": "rpt_20261007_acct418_00027", "external_subscription_id": "sub_acct418", "code": "report_runs", "timestamp": 1791383400, "properties": { "report_type": "scheduled", "workspace_id": "ws_12" } }
The transaction_id makes retries safe: the same event sent twice is billed once. The code maps to a billable metric you define in the billing layer. Properties you don't price on today are ignored, so it pays to include dimensions you might price on later. The event ingestion guide covers design, delivery options and late-arriving events.
This is also why the change stays out of your core code. One instrumentation call per billable action is usually the whole footprint. Your existing billing can keep invoicing flat subscriptions while the new layer handles usage, until you choose to consolidate.
If the requirement is "add usage pricing without touching the core application," the evaluation checklist is short:
Lago covers this list. Plans combine a recurring fee with usage-based charges. Billable metrics define how events aggregate (count, sum, unique count and more). Wallets hold prepaid credits with top-ups. Upgrades and downgrades prorate automatically. Lago connects to existing payment providers, and because it's open source, engineers and finance can read the same logic that produces the invoice. Some capabilities, such as per-customer plan overrides and progressive billing, are premium. The usage-based billing overview shows how the pieces fit.
Start with the unit, not the meter. The tempting choice is whatever your infrastructure already counts. The right choice is what the customer already sees as valuable: a report run, a workflow completed, a document processed, an agent action executed. Sometimes that really is API calls or events, but only when those calls are the value. Our usage-based pricing examples show how other companies chose their unit.
One test settles it. Can the customer explain, without your help, why this number moves their bill? If they can't, it isn't pricing. It's a tax they will eventually push back on.
For a SaaS product with an existing subscription base, the target structure is a hybrid with three parts:
The allowance is the hardest number. Include too much and you give away margin. Include too little and the plan reads as greedy.
The rule past the allowance depends on what the usage is:
When usage can grow fast, as with AI inference, a large bill at month end is a risk for both sides. Progressive billing addresses it: an invoice is issued as soon as cumulative usage crosses a threshold you set, instead of waiting for the period to close. For the tradeoff between the two approaches, see prepaid credits vs progressive billing.
The pricing decision usually makes itself. The product grew, the plans stopped matching how people use it, and a few accounts get far more value than everyone else on the same fee.
The hard part is that "add a usage component" lands on live contracts, renewal dates, sales comp, the finance close and the support queue. It is an operating model change. Our playbook breaks it into seven steps:
Public examples show steps 3 and 4 at work. MongoDB kept its licensed product and built Atlas as a separate consumption product that customers could move to when ready. Atlas made up 75% of total revenue in the third quarter of fiscal 2026 (MongoDB, Q3 FY2026 results). Salesforce priced Agentforce at $2 per conversation, then in May 2025 added Flex Credits at $0.10 per action (Salesforce press release). The first unit is rarely the final one, so test it on live deals before rolling it across the base.
Steps 5 and 6 are where most transitions get expensive: reconciling usage figures across systems and moving each contract type in the right order. The full playbook covers both in detail. Download "How to Add Usage Without Breaking the Business" for the audit standard and the migration waves.
On the systems side, you don't need a big-bang cutover. Existing customers can keep their current plan, effectively grandfathered, while new plans run alongside. When an account is ready to move, Lago lets you start a subscription with a past start date without generating invoices for periods already completed, so a migrated customer isn't billed twice. If you are replacing your whole billing system rather than adding usage to it, our guide to billing system migration covers parallel runs and cutover.
New AI features make a natural bridge. Customers didn't buy them under the old contract, so new pricing logic doesn't feel like a change to what they already pay for.
A practical setup:
Because each event carries properties, you can record the model or feature variant from day one and decide later whether to price on it. For token-based products, the Lago Agent SDK can extract token usage from supported model clients and send it as billable events.
Fintech pricing usually mixes three things: a platform or account fee, a percentage of transaction value, and per-transaction fixed fees, often with rates that change by volume or by payment method.
The same architecture applies. Each transaction becomes an event carrying its amount and attributes like method, currency or region. The billing layer then applies the pricing:
In Lago, per-transaction minimum and maximum amounts on the percentage model are a premium feature. Fintech teams also tend to need negotiated rates per customer, which is where plan overrides help, and progressive billing when a single customer can generate large volume within a cycle.
The technical half of adding usage is the solvable half. Send events, configure a hybrid plan, keep your payment provider and run old and new plans in parallel. The harder half is deciding who moves first and making sure every number holds up when finance checks it.
Get the playbook: How to Add Usage Without Breaking the Business
Want to see the setup on your own pricing? Book a demo.