SaaS Revenue Recognition Under ASC 606: The Five Steps, RPO and a Worked Contract

A subscription contract releasing revenue month by month from a deferred balance

SaaS revenue recognition under ASC 606 means recording subscription revenue as the service is delivered, not when the invoice goes out or the cash arrives. A subscription is a promise to stand ready to provide the software for the term, so its price is usually recognized ratably, month by month. Setup fees, usage charges, upgrades and multi-year deals each have their own rules, and the unrecognized balance of every contract is reported as remaining performance obligation (RPO).

This hub walks the five steps of ASC 606 through the decisions SaaS companies actually face, then works one contract to a revenue schedule, deferred revenue roll-forward and RPO that tie out to the dollar. For the balance sheet side, see deferred revenue; for prepaid credits and breakage, see our credit-based pricing accounting guide.

This is not accounting, legal or tax advice. Revenue policies involve judgment; confirm yours with your auditor.

The five steps of ASC 606, applied to SaaS

ASC 606 (Revenue from Contracts with Customers) replaced industry-specific rules with one five-step model, shared with IFRS 15. Here is what each step usually means for a subscription business.

StepThe questionTypical SaaS answer
1. Identify the contractIs there an enforceable agreement, and for what term?The signed order form plus terms of service. The term is the non-cancellable period.
2. Identify performance obligationsWhat distinct promises did you make?Access to the software (a stand-ready service), plus any distinct services such as training or configuration.
3. Determine the transaction priceHow much do you expect to receive?Fixed fees, discounts, free months, plus variable usage or overage fees.
4. Allocate the priceHow do you split it across promises?By relative standalone selling price (SSP).
5. Recognize revenueWhen is each promise satisfied?Subscription ratably over the term; usage as it occurs; distinct services as performed.

Step 1: the contract and when revenue starts

Revenue cannot start before there is a contract, and it should not start before the customer can use the software. If an order form is signed on March 20 but access goes live on April 1, the ratable clock usually starts April 1.

The term matters too. If a customer can cancel for convenience without a meaningful penalty, the accounting contract may be only the non-cancellable period, even if the order form says three years. That drives RPO, which only counts committed consideration.

Step 2: performance obligations

The subscription is a stand-ready obligation

ASC 606-10-25-18 lists, among the promises a contract can contain, "a service of standing ready to provide goods or services" or of making them available "for a customer to use as and when the customer decides." That is a SaaS subscription: the customer benefits continuously, whether they log in or not, so revenue is recognized evenly. Each day or month of access is a distinct period within a series, which matters for usage fees.

Implementation and setup fees

The most common SaaS judgment call. Under ASC 606-10-25-19 a service is distinct if the customer can benefit from it on its own or with readily available resources, and the promise is separately identifiable from the rest of the contract.

  • Not distinct (most setup fees). Provisioning an account, loading the customer's data into your system or turning on SSO usually transfers nothing to the customer by itself. ASC 606-10-55-51 says such activity, even though the entity "is required to undertake" it "at or near contract inception to fulfill the contract," does not transfer a good or service, and the fee is "an advance payment for future goods or services." You recognize it over the subscription term along with the subscription.
  • Distinct. Training or configuration a third party could also perform is often distinct. It gets its own share of the price, recognized as the work is done.
  • Longer than the term. If renewal lets the customer skip a fee a new customer would pay, that can be a material right. PwC's Viewpoint guide: the recognition period "would extend beyond the initial contractual period" when the renewal option "provides the customer with a material right."

SaaS versus a software license

A hosted product is treated as a service unless the customer has a contractual right to take possession of the software at any time without significant penalty, and could feasibly run it on its own hardware or with an unrelated host (the hosting test in ASC 985-20-15-5). Salesforce's 10-K for fiscal 2026 shows the difference in one filing: cloud services revenue "is generally recognized ratably over the contract term," while term software licenses are "generally recognized at the point in time when the software is made available to the customer."

Step 3: the transaction price

Multi-year contracts, discounts, free months and ramps

The transaction price is the total fixed consideration over the contract term, net of discounts. A three-year deal at $100,000, $110,000 and $120,000 per year for an identical service is usually $330,000 recognized evenly at $110,000 a year, because the service in year one is the same as in year three.

Free months work the same way: ten months of fees spread over twelve months of service. A genuine ramp, where the customer gets more seats or product in later years, is different, because the service itself changes.

A significant financing component can be ignored when payment and delivery are one year or less apart (ASC 606-10-32-18), which covers annual billing in advance.

Usage and overage fees are variable consideration

Usage fees and overages are variable consideration. The general rule is to estimate and constrain them, but SaaS rarely needs to, because two routes usually apply:

  • Variable consideration allocation exception (ASC 606-10-32-40). If the usage fee relates specifically to the service in a given period and allocating it to that period fits the allocation objective, the fee is allocated entirely to that day or month of service. PwC notes that "the distinct good or service within the series for a SaaS arrangement is a unit of time, such as a day or month of access."
  • Right to invoice practical expedient (ASC 606-10-55-18). When the amount you can invoice "corresponds directly with the value to the customer" of your performance to date, you may recognize revenue in the amount you have the right to invoice.

Either way, usage revenue lands in the month the usage happens. A frequent error is citing the "sales- or usage-based royalty" exception, which is for licenses of intellectual property. Deloitte's technology alert on hosted software explains that SaaS arrangements "often do not qualify for the exception because a license is typically not transferred to the customer." Same answer, wrong reason, and auditors notice. For pricing design, see usage-based pricing and outcome-based pricing.

Illustrative example: a plan includes 1,000,000 API calls a month and charges $0.10 per call above that. In March the customer makes 1,300,000 calls.

(1,300,000 − 1,000,000) × $0.10 = $30,000 March overage revenueRecognized in March, the month the usage occurred

Step 4: allocating by standalone selling price

With more than one performance obligation, the price is split by relative standalone selling price, the price you would charge for each item on its own. Salesforce's 10-K: "We allocate the transaction price to each performance obligation on a relative standalone selling price ('SSP') basis."

Illustrative: a bundle priced at $54,000 contains a subscription with an SSP of $50,000 and distinct training with an SSP of $10,000. Total SSP is $60,000, so the subscription gets 50/60 of $54,000, which is $45,000, and training gets $9,000. The discount is shared across both.

With no observable SSP, estimating from cost plus margin or adjusted list prices is acceptable if documented and applied consistently.

Step 5 and contract modifications: upgrades and downgrades

Mid-term changes have three possible outcomes:

  1. Separate contract (ASC 606-10-25-12). The change adds distinct goods or services and the price rises by their standalone selling price. Ten extra seats at your normal per-seat price is the classic case. The original contract is untouched.
  2. Prospective (ASC 606-10-25-13(a)). The remaining service is distinct but the pricing is not at SSP, for example an upgrade to a higher tier with a negotiated discount, or a downgrade. Treat it as if the old contract ended and a new one started: remaining unrecognized consideration plus new consideration is spread over the remaining term.
  3. Cumulative catch-up. Rare in SaaS; it applies when the remaining service is not distinct from what was delivered.

Worked example: one contract, fully reconciled

All inputs are illustrative.

  • Two-year contract starting January 1, Year 1. Subscription $120,000 per year ($10,000 a month), billed annually in advance.
  • Implementation fee $12,000, billed on day one. Setup work, not distinct, no material right: recognized over the 24 months at $500 a month.
  • July 1, Year 1: the customer adds seats worth $24,000 a year ($2,000 a month) at standard pricing, co-terminous. Distinct seats at SSP, so a separate contract. Billed $12,000 prorated on July 1; the Year 2 invoice becomes $144,000.
  • All invoices are collected within the quarter.

Total consideration is $240,000 subscription + $12,000 implementation + $36,000 upsell (18 months × $2,000) = $288,000. Total billings are $132,000 + $12,000 + $144,000 = $288,000. Total revenue over 24 months must also be $288,000.

Monthly revenue schedule

January to June, Year 1: $10,000 + $500 = $10,500 a month

July, Year 1 to December, Year 2: $10,000 + $2,000 + $500 = $12,500 a month

Check: 6 × $10,500 + 18 × $12,500 = $63,000 + $225,000 = $288,000.

Deferred revenue roll-forward and RPO, Year 1

Q1Q2Q3Q4
Opening deferred revenue$0$100,500$69,000$43,500
+ Billings$132,000$0$12,000$0
− Revenue recognized$31,500$31,500$37,500$37,500
Closing deferred revenue$100,500$69,000$43,500$6,000
+ Contracted but unbilled$120,000$120,000$144,000$144,000
RPO$220,500$189,000$187,500$150,000
of which current (next 12 months)$126,000$126,000$150,000$150,000

Three things to read from this table:

  • Cash and revenue diverge. Q1 collects $132,000 and recognizes $31,500. Treating invoices as revenue would overstate Q1 more than fourfold.
  • The $6,000 left at year end is the unamortized implementation fee (12 remaining months × $500).
  • RPO fell in Q2 with no churn at all, because a quarter of service was delivered. In Q3 it barely moved despite a $36,000 expansion, because $37,500 was recognized. RPO drains every month and refills only with new commitments.

Current RPO at the end of Q1 is 12 × $10,500 = $126,000, leaving $94,500 (nine months) non-current. After the upsell, it becomes 12 × $12,500 = $150,000.

RPO and cRPO: what public SaaS companies disclose

ASC 606-10-50-13 requires disclosure of "the aggregate amount of the transaction price allocated to the performance obligations that are unsatisfied (or partially unsatisfied) as of the end of the reporting period," plus when you expect to recognize it. Salesforce's fiscal 2026 10-K defines it this way:

"Our remaining performance obligation represents all future revenue under contract that has not yet been recognized as revenue and includes unearned revenue and unbilled amounts. Our current remaining performance obligation represents future revenue under contract that is expected to be recognized as revenue in the next 12 months."

At January 31, 2026, Salesforce reported RPO of about $72.4 billion (up 14% year over year) and current RPO of about $35.1 billion (up 16%), against unearned revenue of $24.3 billion on the balance sheet. The gap is largely unbilled contract value, the "contracted but unbilled" line in our example.

The same filing explains the pattern our table showed: for multi-year agreements billed annually, unbilled balances and RPO "are typically high at the beginning of the contract period, zero just prior to renewal, and increase if the agreement is renewed."

RPO = Deferred revenue + Contracted, non-cancellable amounts not yet billedcRPO = the portion expected to be recognized in the next 12 months

Private companies can elect not to disclose RPO (ASC 606-10-50-16), but investors will ask, so compute it anyway. Optional exemptions also let filers exclude contracts of one year or less and variable consideration allocated to future service periods (50-14 and 50-14A), so reported RPO often understates usage-heavy businesses.

RPO is not the same as total contract value (which includes revenue already recognized) or ARR (an annualized run rate, not a contracted balance).

Billings vs revenue vs deferred revenue

The three numbers are tied by one identity, which is the fastest way to check any revenue schedule:

Billings = Revenue + (Closing deferred revenue − Opening deferred revenue)Ignores contract assets and unbilled receivables for simplicity

Q3 in the example: $37,500 + ($43,500 − $69,000) = $12,000, which matches the July upsell invoice. Bookings sit upstream of all three: the July upsell was a $36,000 booking, a $12,000 billing in Q3 and $6,000 of Q3 revenue. Our bookings vs billings vs revenue guide goes deeper, and SaaS billing cycles covers how billing terms shape cash.

Sales commissions: ASC 340-40

Under ASC 340-40-25-1, incremental costs of obtaining a contract, the textbook example being a sales commission, are capitalized as an asset if you expect to recover them. The asset is then "amortized on a systematic basis that is consistent with the transfer to the customer of the goods or services to which the asset relates" (340-40-35-1), which can include anticipated renewals.

The amortization period is the judgment. Deloitte's revenue roadmap notes that a period longer than the initial contract "would not be appropriate when the entity pays a commission on a contract renewal that is commensurate with the initial commission." Salesforce amortizes commissions on new contracts "on a straight-line basis over four years, which is longer than the typical initial contract period," and renewal commissions over two years. If the period would be one year or less, ASC 340-40-25-4 lets you expense it.

Illustrative: the rep on our contract earns 10% of first-year subscription value, $12,000, paid at signing. Renewals carry no commission, and the company estimates a 48-month benefit period.

$12,000 ÷ 48 months = $250 a monthYear 1 expense $3,000; asset of $9,000 left at year end

The cash still leaves in month one, so capitalizing improves operating margin but not burn, and CAC payback should be calculated on cash commissions, not amortized ones.

IFRS 15: largely the same

ASC 606 and IFRS 15 were issued together by the FASB and IASB in 2014 and share the five-step model. KPMG's September 2026 comparison says they "remain substantially converged" but notes differences that affect comparability. The ones most relevant to SaaS:

  • Collectibility. Both require collection to be "probable" before a contract exists, but "probable" sets a higher bar under US GAAP than under IFRS.
  • Contract cost impairment. IFRS permits reversing an impairment of capitalized commissions if conditions improve; US GAAP does not.
  • RPO relief. US GAAP lets non-public entities skip the RPO disclosure; IFRS 15 has no equivalent private-company election.

How revenue recognition plugs into the operating model

Investors and lenders read GAAP revenue, deferred revenue and cash, and the three move on different schedules. The driver chain:

  1. Drivers. New deals by month, contract length, billing frequency, setup fees, expected expansion and churn, usage per customer.
  2. Bookings and billings. Each deal produces an invoice schedule; annual-in-advance deals front-load it.
  3. Revenue. A ratable schedule, plus usage in the month it occurs; setup fees spread.
  4. Balance sheet. The difference is deferred revenue, a liability that grows when you sell annual contracts and shrinks as you deliver.
  5. Cash. Collections follow billings, not revenue. Shifting customers to annual prepay can extend runway with no change in revenue.

Built this way, the model answers what a flat MRR line cannot: what happens to cash if new deals move to monthly billing, how much of next year's revenue is already contracted (your cRPO), and how a multi-year discount changes revenue versus ACV. A driver-based model such as Adlega's links each of those drivers to the P&L, balance sheet and cash flow, so a change in billing terms shows up in all three. Our three-statement model guide and SaaS financial model pillar cover the full structure.

Common mistakes

  • Recognizing setup fees upfront. Unless the work is distinct, spread it over the term (or longer with a material right).
  • Treating invoices as revenue. Annual-in-advance billing creates deferred revenue, not revenue.
  • Citing the royalty exception for usage fees. It is for IP licenses. Typical SaaS uses the variable consideration allocation exception or the right-to-invoice expedient.
  • Reading a falling RPO as churn. RPO drains as service is delivered and spikes at renewal. Compare year over year.
  • Expensing commissions that should be capitalized, or capitalizing them over the contract term when renewals carry no commission and the benefit period is clearly longer.
  • Restating revenue on downgrades. Downgrades are usually prospective. Past revenue stays put.

FAQ

What are the five steps of revenue recognition under ASC 606?

Identify the contract, identify the performance obligations, determine the transaction price, allocate it, and recognize revenue when or as each obligation is satisfied. For SaaS, step 5 usually means ratably over the term.

How do you recognize implementation fees for SaaS?

If the work is not distinct (account setup, data loading, provisioning), the fee is recognized with the subscription over the term, or longer if renewal gives a material right. Distinct work is recognized as performed.

What is the difference between RPO and deferred revenue?

Deferred revenue is consideration you have billed or collected but not yet earned. RPO is deferred revenue plus contracted amounts you have not billed yet. In the worked example, at the end of Q3 deferred revenue was $43,500 but RPO was $187,500 because the $144,000 Year 2 invoice had not been issued.

What is cRPO?

Current remaining performance obligation: the part of RPO expected to be recognized in the next 12 months. It is a cleaner near-term signal than total RPO, which a few long contracts can inflate.

How do you account for a mid-contract upgrade?

Extra distinct seats at your standalone price are a separate contract from the upgrade date. A discounted price or plan change is prospective: spread the remaining unrecognized amount plus the new consideration over the rest of the term.

Do private companies have to disclose remaining performance obligations?

No. ASC 606-10-50-16 lets entities that are not public business entities (with a few exceptions) elect not to provide the RPO disclosures. Investors and acquirers will still ask for it in diligence.

Should sales commissions be capitalized under ASC 606?

Yes, if you expect to recover them (ASC 340-40), amortized over the period of benefit, which can include expected renewals. If that period is one year or less you may expense them.

Is IFRS 15 the same as ASC 606?

Substantially. Differences remain on collectibility, contract-cost impairment reversals and private-company disclosure relief, but a standard SaaS subscription produces the same revenue schedule under both.