The Closed Books

ASC 606 Revenue Recognition for Usage-Based SaaS Contracts

Variable consideration estimates and deferral rules for usage-based SaaS revenue.

Editor at Large · · 11 min read
Cover illustration for “ASC 606 Revenue Recognition for Usage-Based SaaS Contracts”
Revenue Recognition · September 8, 2026 · 11 min read · 2,574 words

Usage-based pricing broke the accounting playbook before anyone rewrote it. ASC 606, issued jointly by FASB and the IASB in 2014 and mandatory for private companies in annual periods starting after December 15, 2019, replaced the old software-specific guidance under ASC 985-605 with a five-step model built for a world where companies sell something once and deliver it once. Nobody stress-tested that model against a product that behaves like a pipe the customer draws from every day, at a volume nobody can pin down until the month closes, and the strain shows in the audit findings still piling up eight years later.

A flat subscription is arithmetic. A customer paying $12,000 a year generates $1,000 of recognized revenue every month, because the obligation is fixed and time-bound, and nobody argues about it. Consumption pricing breaks that arithmetic on three fronts at once: the transaction price isn't known at signing, the obligation gets satisfied continuously rather than at a single moment, and cash often shows up before any service has been delivered, sitting on the balance sheet as a liability that shrinks with usage instead of the calendar. Most finance teams moving from subscription to usage pricing get the constraint on variable consideration wrong first, and that specific mistake is the one auditors keep finding. What follows is how the five-step model actually applies to the contracts usage-based SaaS companies write: variable consideration, prepaid credits, committed minimums, overages, and the modifications that happen mid-term when a customer upgrades or walks away.

What the five-step model requires before a single dollar of usage revenue can be recognized

Step one is identifying the contract, and in SaaS that rarely means a signed paper agreement. It might be an order form, a clickwrap acceptance, or a terms-of-service click-through. The format doesn't matter. What matters is whether enforceable rights exist, payment terms are set, the arrangement has commercial substance, and collectibility is probable.

Step two asks what the performance obligations actually are. For a pure usage product, continuous platform access is usually treated as a single obligation made up of a series of distinct daily or monthly increments, not one big lump. That gets more complicated the moment implementation, onboarding, or premium support gets bundled into the same deal, because now there might be more than one obligation hiding in a single contract.

Step three is where variable consideration lives, and it's the step that trips up teams moving from subscription to usage pricing for the first time. The company doesn't know the total transaction price at signing. ASC 606 requires an estimate anyway, subject to a constraint covered below.

Step four allocates that price across obligations using relative standalone selling prices. Without an observable market price for each piece, finance has to build a defensible estimate, not split the contract in whatever proportion feels convenient. Convenient is not a standard, and auditors treat it as a red flag rather than a shortcut.

Step five determines when revenue lands on the income statement. For a continuous obligation, that's over time, but the real question is what measures the "over": elapsed time, or actual consumption. Get step two wrong, and the allocation in step four inherits the error, and the timing in step five follows it off a cliff. The recurring findings eight years after adoption are still the same three: obligations combined for convenience rather than accuracy, variable consideration estimates with no supporting workpapers, and modification treatment that shifts from deal to deal with no written policy behind it. Most of these failures trace back to a team that skipped the documentation, not one that misunderstood the concept, and that distinction matters because it means the fix is procedural, not theoretical.

How variable consideration works and when the constraint forces deferral

Usage fees are variable consideration by definition. The company doesn't control the final number, the customer's behavior does, and that uncertainty is exactly what ASC 606's variable consideration guidance was built to handle.

Two estimation methods are permitted, but only one of them actually fits most usage contracts. Most-likely-amount works for a binary outcome, useful for bonus-style arrangements, but it's the wrong tool for open-ended consumption, where the outcome isn't one of two options, it's a range. Expected value, a probability-weighted average across that range, is generally the more appropriate method for open-ended consumption arrangements. Teams that reach for most-likely-amount out of habit are applying a subscription-era instinct to a metered product, and it's the wrong instinct every time.

Then comes the constraint, and this is where disciplined finance teams part ways from ones headed for a restatement. Variable consideration only enters the recognized transaction price to the extent it's probable that a significant revenue reversal won't occur later. That's a judgment call, not a formula, and it has to be calibrated against real evidence. A company with several years of usage data on a stable customer cohort can support an estimate meaningfully above zero. A company pricing a brand-new AI feature with no comparable usage history has nothing to point to, and the honest, defensible answer is a tighter constraint, sometimes tight enough that very little variable consideration can be included in the recognized transaction price.

The constraint is not conservatism dressed up as caution. It's a demand for documentation, full stop. If a team can't show its work, the safe position is to recognize only actual consumption to date, and re-estimate every single reporting period, not once at signing and never again. For high-volume usage contracts, that's a recurring close-cycle task, not a one-time judgment. Estimates that exist on paper but never got updated when usage patterns shifted underneath them are the single most common source of audit findings in this area. They're avoidable with nothing more exotic than a calendar reminder and a paper trail.

The right-to-invoice expedient and when it eliminates the constraint problem entirely

ASC 606 offers an escape hatch for the cleanest usage contracts. If the invoiced amount corresponds directly to the value delivered, the right-to-invoice practical expedient lets a company recognize revenue at the invoiced amount with no separate estimate and no constraint analysis at all.

Twilio is the textbook case. Per its 10-K filings, Twilio recognizes SMS and voice usage revenue in the period the usage happens: measure it, invoice it, recognize it, billing infrastructure like flexprice.io is built around this same consumption-event-as-recognition-trigger model, no deferral involved. Bandwidth follows the same logic. Per Ordway Labs' analysis, Bandwidth recognizes usage-based fees "in the period the traffic traverses our network," meaning the consumption event and the measurement basis are the same thing.

The expedient stops working the moment a contract has a floor. A minimum commitment means the recognized amount isn't purely usage-driven anymore, because the company recognizes that floor whether or not the customer consumes anything close to it. The expedient also fails when fees get estimated over a period instead of billed in arrears against actual consumption, and that distinction matters more than it sounds like it should: estimation of any kind disqualifies the shortcut, even an estimate that turns out accurate.

One exception gets invoked as a shortcut when it shouldn't be, and it's worth naming and setting aside cleanly: the sales- and usage-based royalty exception under ASC 606-10-55-65 applies specifically to intellectual property licenses. Most usage-based SaaS is a service arrangement, not an IP license. That exception doesn't apply here, and reaching for it anyway is a documentation problem waiting to surface in an audit.

How committed minimums, prepaid credits, and overages each change the recognition model

One question determines everything downstream: does the customer owe a committed minimum, or only payment for what they actually use? Get the answer wrong and every subsequent recognition decision inherits the error.

Pay-as-you-go, with no floor, is the simple case already covered above: recognize as consumption occurs, right-to-invoice applies, no estimation required.

Add a committed minimum to an annual or multi-year contract, and the mechanics change entirely. The committed floor gets recognized ratably over the contract term, regardless of whether the customer ever reaches it. Companies with committed minimums commonly recognize that floor on a ratable basis. Alkami's disclosed policy, also per Ordway Labs, states it plainly: minimum transaction fees get straight-lined over the contract term, while variable consideration above the minimum gets recognized in the month those transactions actually process. A single contract can run two recognition methods at once, in other words: straight-line for the floor, consumption-based for anything above it. Treating the whole thing as one number is the mistake here, not an acceptable simplification, and it's the single most common corner finance teams cut when they're moving fast.

Prepaid credit models work differently still. Cash collected upfront doesn't touch revenue. It goes entirely to deferred revenue on the balance sheet, and revenue shows up only as the customer draws down the balance, because the consumption event is the performance obligation being satisfied. Snowflake runs this model: full deferral at the time of prepayment, recognition tied to credit consumption, an output-based approach rather than a time-based one. Reading a growing deferred revenue balance as a mounting liability gets the story backwards. Under a credit model, that growth usually signals strong forward sales, not an obligation piling up unmet. Breakage, meaning credits nobody will ever redeem, can be recognized proportionally as other credits are used, but only with a documented, supportable estimation method behind it, not a guess dressed up as a policy.

Hybrid contracts, a subscription platform fee sitting next to consumption charges, need two separate recognition streams running side by side on the same agreement. The platform portion goes ratably. The consumption portion goes as incurred. Blending them into one number is where a lot of policy errors start, and it's the first thing worth checking when reviewing a new contract type.

Setup fees, implementation services, and other bundled elements that require their own treatment

The test for a distinct performance obligation has two parts, and both have to be true: can the customer benefit from the deliverable on its own, and is it separately identifiable within the contract.

Setup fees are the most common place finance teams get this wrong, and the instinct that leads them astray is simple: book the fee upfront, since cash arrived upfront. ASC 606 usually forbids exactly that. If setup is a prerequisite for using the software and delivers no standalone benefit on its own, it isn't a distinct service, it's an advance payment against the subscription itself. A setup fee on a multi-month contract gets amortized ratably over the service period, not booked in full in month one, and any team still booking it upfront is running a policy that won't survive an audit.

Implementation and onboarding follow the same distinctness test, and the answer depends on the facts of the engagement, not on how the sales team labeled the line item. If a customer could hire a third party to do the implementation, or the work produces something usable independent of the subscription, it's a distinct obligation with its own standalone selling price allocation. If it's just a necessary step to get the platform running and nothing more, it gets folded into the subscription's recognition timeline. A contract bundling platform access, white-glove onboarding, and premium analytics needs each piece allocated its own share of the total price before recognition starts on any of them.

Training, data migration, and priority support all get run through the same test, and the outcome decides whether revenue is front-loaded, recognized at a point in time, or spread out. When there's no observable market price for a given element, finance has to build and document a reasonable estimate, not lean on whatever discounted price the item occasionally sells for.

How contract modifications, upgrades, downgrades, and expansions mid-term, affect revenue already being recognized

There's no blanket rule for modifications. ASC 606 requires each one to be analyzed on its own facts, and the analysis sorts into three outcomes, not a spectrum finance can pick a point on.

If the modification adds distinct goods or services priced at their standalone selling price, treat it as a wholly separate new contract, and leave prior recognition untouched. If the remaining goods or services are distinct from what's already been delivered but weren't priced at standalone value, terminate the existing contract, recognize any remaining deferred balance, and open a new one. If what's left to deliver isn't distinct from what came before, update the transaction price and spread the adjustment prospectively over the remaining term.

Usage contracts add a layer most subscription-only playbooks don't anticipate. A mid-term upgrade to a committed minimum changes the remaining floor, which changes the ratable recognition rate, which shifts where overage thresholds kick in, and all of it has to be recalculated from the modification date forward, not smoothed retroactively. Downgrades work the same way in reverse: reduced commitment often means recalculating the remaining deferred balance, and early termination fees get recognized only once the company's right to that consideration is actually established, not when the termination notice arrives.

This is where audit findings cluster hardest. Modifications handled inconsistently, some treated as new contracts, some as prospective adjustments, with no written framework distinguishing which is which, remain one of the most persistent problems examiners flag, eight years into the standard. The determining factor isn't the complexity of the deal. It's whether the company wrote down a consistent decision framework before the deals started coming in, or is improvising one contract at a time. Improvising is the wrong answer every time it shows up in a file.

What prepaid credit wallets look like on the balance sheet and how breakage is treated

A customer paying upfront for a credit balance hands the company cash and creates a liability at the same time: deferred revenue, because the company now owes service, not money back. As credits get consumed, that liability shrinks and recognized revenue grows by the identical amount, tied directly to consumption events rather than to the passage of time.

On the balance sheet, that deferred revenue splits into current and non-current portions depending on when it's expected to be drawn down, and the split matters to anyone reading the statements for signs of liquidity or growth trajectory. A large non-current deferred revenue balance from committed credit purchases reads very differently than the same dollar figure sitting in accounts payable. Conflating the two is a fast way to misjudge a company's actual cash position.

Breakage, the portion of a credit balance nobody will ever spend, has two allowed treatments. With reliable historical data, a company can recognize an estimated breakage portion proportionally as the rest of the balance gets consumed. Without a reliable estimate, breakage only gets recognized once the chance of the customer ever using the remaining credits becomes remote. That estimate can't be set once at signing and left alone: it has to be revisited and documented every period. Recognizing an entire dormant balance as a windfall the moment a customer goes inactive is not permitted unless the remote-likelihood threshold is actually met and the file shows the work behind that conclusion. Teams that skip that step are the ones restating later.

Accounts that mix a credit wallet with conventional postpaid invoices in the same relationship put two recognition streams on the same customer at once: the credit drawdown, and any period charges billed in arrears. Both have to be tracked on their own logic, simultaneously, without letting one contaminate the other's numbers.

Sources

  1. Revenue Recognition for Usage-Based Pricing
  2. SaaS revenue recognition: ASC 606 for SaaS companies

More in Revenue Recognition