Skip to content
The TestTwo PricesThe RangeIn RivanePublished October 29, 2026

A discounted upgrade starts a new revenue schedule.

Seats added at your normal price are a separate contract, and the original schedule keeps running. Seats added below your selling price range end the old schedule: what is left of it and the new money are spread over the remaining months together. The price decides, so test it first.

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 2027

Version 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): unchanged

Version 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.

Monthly and annual revenue, US dollars. The right column is Version B booked as if it were a separate contract. Our calculation.
PeriodA: list priceB: discount, correctB: booked as separate
January to June 202610,00010,00010,000
July to December 202615,00012,083.3313,750
Each month of 202715,00012,083.3311,250
Total 2026150,000132,500142,500
Total 2027180,000145,000135,000
Monthly and annual revenue, US dollars. The right column is Version B booked as if it were a separate contract. Our calculation.
Revenue by year for the discounted upgrade, booked two waysBooked as the end of the old contract and a new one, the discounted upgrade gives 132,500 of revenue in 2026 and 145,000 in 2027. Booked as a separate contract, it gives 142,500 in 2026 and 135,000 in 2027, so 10,000 moves into the first year.REVENUE BY YEAR, DISCOUNTED UPGRADESame contract, same cash, two ways of booking it. The total is 277,500 either way.Discounted, booked correctly2026132,5002027145,000Discounted, booked as separate2026142,5002027135,000US dollars. Example figures.
Revenue by year for the discounted version of the upgrade. Our calculation.

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

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.