Two questions decide it.
ASC 606-10-25-12, as reproduced in Deloitte’s revenue roadmap, makes a change a separate contract when both hold: the added goods or services are distinct, and the price goes up by an amount that reflects their standalone selling prices. Extra seats on a subscription are almost always distinct. So in practice the whole question is the price.
If the price fails, ASC 606-10-25-13 takes over. For a subscription, each month of service is distinct from the months already delivered, which PwC’s guide, section 2.9.3.1, treats as the prospective case: the old contract is treated as ended and a new one begins. The amount not yet recognized from the original contract and the new consideration are added together and spread over what is left to deliver. Nothing already booked is restated.
Current guides, such as BillingPlatform’s and Zenskar’s, state this framework well and stop before the numbers. The numbers are where the answer gets interesting, because for many upgrades the label barely matters, and for one common kind it moves revenue between years.
One upgrade, priced two ways.
A customer signs for 100 seats at 1,200 a seat a year, 1 January to 31 December 2026, and pays 120,000 up front. Revenue is 10,000 a month. On 1 July they sign an amendment: 150 seats from now on, and the term extended to 31 December 2027. Every figure is an example.
Version A: the amendment at list price
Original contract, signed 1 Jan 2026
100 seats at 1,200 a seat a year
1 Jan to 31 Dec 2026 120,000
revenue 10,000 a month
at 30 June: recognized 60,000,
deferred 60,000
Amendment, 1 July 2026, at list price
50 more seats, July to December 30,000
150 seats for all of 2027 180,000
added consideration 210,000
Test (ASC 606-10-25-12)
distinct services added? yes
priced at standalone selling
price (1,200 a seat year)? yes
result: a separate contract
Revenue
original keeps running 10,000 a month to Dec
new contract 5,000 a month to Dec
15,000 a month in 2027Version A is the simple case. The original contract never notices: it keeps recognizing 10,000 a month until December. The amendment gets its own schedule of 5,000 a month for the extra 50 seats this year, then 15,000 a month in 2027.
Version B: the same amendment at a discount
Same amendment, 1 July 2026, discounted
every added seat at 900 a seat year
50 more seats, July to December 22,500
150 seats for all of 2027 135,000
added consideration 157,500
Test (ASC 606-10-25-12)
900 is below the 1,080 to 1,320
range, so not a separate contract
Remaining months are distinct, so
ASC 606-10-25-13(a): end the old contract
and start a new one, prospectively
unrecognized from the original 60,000
plus the amendment 157,500
to recognize from 1 July 217,500
over 18 months 12,083.33 a month
Revenue already booked (60,000): unchangedVersion B is the deal most sales teams actually close: more seats and a longer term in return for a lower rate. Because 900 sits below the range the company sells at, the upgrade is not a separate contract. The 60,000 still deferred from the original contract joins the 157,500 from the amendment, and 217,500 is recognized evenly over the 18 months left. That gives 12,083.33 a month, an effective 80.56 per seat month against a list price of 100.
| Period | A: list price | B: discount, correct | B: booked as separate |
|---|---|---|---|
| January to June 2026 | 10,000 | 10,000 | 10,000 |
| July to December 2026 | 15,000 | 12,083.33 | 13,750 |
| Each month of 2027 | 15,000 | 12,083.33 | 11,250 |
| Total 2026 | 150,000 | 132,500 | 142,500 |
| Total 2027 | 180,000 | 145,000 | 135,000 |
The right column is the mistake to design out. Treat the discounted amendment as its own contract and the original 1,200 rate keeps running to December while the discount lands only in 2027. The two years still add up to 277,500, but 2026 shows 10,000 more than it should and 2027 shows 10,000 less. If 2026 is your first audited year, that is the year an auditor will test.
One reassurance. If the amendment had only added seats to 31 December 2026, with no extension, both treatments would spread the remaining money evenly over the same six months and the monthly figures would match. The classification matters most when the upgrade reaches past the original end date.
Write the selling price range down before the deal arrives.
The test needs a range, not a single list price, because nobody sells every seat at exactly list. Deloitte’s SaaS blend and extend examplecompares the added consideration with a selling price range of 30 to 40 per usage and reaches different answers depending on which number is tested. PwC’s Example RR 2-17 works a similar discounted extension. In both, the range is what settles it.
In our example, the company’s new deals in the past year closed between 1,080 and 1,320 a seat. A practical policy is one page: the range per product and seat tier, the deals it was drawn from, the date it was last updated, and who signs off an upgrade priced outside it. Your auditor will ask how you knew 900 was outside the range. That page is the answer.
How Rivane handles an upgrade today.
In Rivane a revenue contract holds one or more performance obligations, each with its own dates and a standalone selling price. A contract cannot go live until every obligation has a selling price, and the price is split across them in proportion to those prices, summing to the contract amount exactly. Once revenue has posted against a contract, no new obligation can be added to it. That lock is why an upgrade never quietly rewrites a schedule that has already reached the ledger.
For Version A, the amendment is a new contract with two obligations: 50 seats from July to December 2026 at 30,000 and 150 seats for 2027 at 180,000. The original keeps running. For Version B, the new schedule is 217,500 over 18 months, and Rivane puts the rounding in the last month: 12,083.33 for 17 months and 12,083.39 in December 2027, so the total lands exactly.
Rivane revenue contracts, as built
# Rivane revenue contracts, as built.
contract one or more performance obligations,
each with dates and a pattern:
over time (straight line by month)
or at delivery
selling price every obligation needs a standalone
selling price before the contract can
go live; no even split is assumed
allocation by relative selling price, summing to
the contract price exactly, no plug
schedule months 1 to 17 take the floored share,
the last month takes what is left:
217,500 over 18 months is 12,083.33
a month and 12,083.39 in the final one
lock once revenue has posted, no new
obligation can be added to the
contract (ALLOCATION_LOCKED)
cancel a cancelled contract stops recognizing
adjustment a manual deferred revenue adjustment
needs an open period and a written
reason, and cannot release more than
the contract's remaining deferred
check each contract's deferred balance is
compared with the general ledger;
a difference is reported, not plugged
not built no modification workflow yet: carrying
the 60,000 into a new schedule is a
manual step today
The limit worth knowing. Rivane has no modification workflow yet. In Version B, stopping the original contract and carrying its 60,000 of deferred revenue into the new schedule is a manual step today, using a deferred revenue adjustment that requires an open period and a written reason. Rivane compares each contract’s deferred balance with the general ledger and reports any difference, so a carried balance that does not tie shows up rather than being plugged. Have a second person review that step.
Price first, then pick the schedule.
When an upgrade arrives, compare its price with your written range. Inside the range, give it its own schedule and leave the original alone. Below it, add what is left of the original to the new money and spread the total over the remaining months. Keep the range, the deal and the decision together, and the upgrade becomes one of the easier items in the audit file.
To check your own figures, put the remaining amount and the months left into the Rivane revenue recognition calculator.
Frequently asked questions.
Is a mid-term seat upgrade a new contract under ASC 606?
It is a separate contract if two things are true: the added seats are distinct, and the price increase reflects their standalone selling price (ASC 606-10-25-12). Seats sold at your normal price usually pass. If the added seats are priced below your selling price range, the upgrade is a modification of the existing contract instead.
If a discounted upgrade is not a separate contract, do we restate revenue already booked?
For a typical subscription, no. Each month of service is distinct from the months already delivered, so ASC 606-10-25-13(a) treats the change as ending the old contract and starting a new one. The unrecognized amount from the original contract and the new consideration are added together and recognized over the remaining months. Revenue already booked stays as it is.
Does the classification change the numbers if the upgrade ends on the same date as the contract?
Often very little, because both treatments spread the remaining amounts evenly over the same months. The difference shows up when the upgrade also extends the term, as most upgrades with a discount do. Then a separate contract puts the original, higher price in the current year and the discount in the next, while the correct treatment blends them across every remaining month.
Sources
- Deloitte, Roadmap: Revenue Recognition, section 9.2 Types of Contract Modifications. Reproduces ASC 606-10-25-12 (the two conditions for a separate contract) and ASC 606-10-25-13 (termination and a new contract, cumulative catch-up, or a mix of the two).
- Deloitte, Cloud-based hosted software arrangement. A SaaS blend and extend example that tests the added consideration against a standalone selling price range of 30 to 40 per usage, with three views of the outcome.
- PwC, Revenue from contracts with customers, section 2.9 Contract modifications. Section 2.9.3.1 covers prospective accounting when a contract is a series of distinct services, and Example RR 2-17 works a discounted extension.
- BillingPlatform, Contract modifications under ASC 606. Read as a current answer: it sets out the three scenarios and mentions adding five seats, with no amounts or monthly figures.
- Zenskar, Seat additions and overages. Read as a current answer: it states the price test for a seat addition and says a discount below standalone selling price fails it, without a worked schedule or a way to set the range.
A note on how this was researched. ASC 606-10-25-12 and 25-13 were read as reproduced on Deloitte’s DART site, alongside Deloitte’s SaaS alert and PwC’s Viewpoint guide; all are HTML pages read directly. The company, the contract, the selling price range and every amount are examples. The Rivane section describes the product as built today, checked against the revenue contract code rather than marketing copy. This is not accounting advice for your specific case.
On embedded social posts: we looked for public posts from standard setters or practitioners on mid-term SaaS upgrades under ASC 606 and found none we could verify as current and relevant, so this article uses ordinary citations instead.