Some multi-year subscription contracts need revenue recognized evenly across the full service period even when each year’s invoice amount is different — annual uplifts, discounted first years, free months, or $0 contract extensions.
This article shows you how to combine ScaleXP’s automated deferred revenue schedules with a small number of manual accrued revenue entries so your revenue lands straight-line across the contract, in line with ASC 606 / IFRS 15, while ScaleXP continues to automate the heavy lifting.
For background on how ScaleXP spreads revenue by default, see How ScaleXP Allocates the Spread of Revenue and Determines Deferred Revenue Amounts.
Why straight-line recognition is needed under ASC 606 / IFRS 15
Under ASC 606 and IFRS 15, revenue is recognized based on the transfer of the underlying service or performance obligation — not the timing of invoicing. When the service delivered is substantially the same throughout the contract and the contractually committed pricing changes between years, the total contract value is recognized evenly across the total service period.
This pattern shows up in several common scenarios:
SaaS subscriptions with annual price uplifts
Multi-year software agreements with different annual values
Contracts with free months or a discounted first year
Subscription renewals where future years are contractually committed at a $0 or reduced amount
By default, ScaleXP recognizes revenue based on each individual invoice. To produce straight-line recognition across the full contract, you combine ScaleXP’s automated deferred revenue schedules with a small number of manual accrued revenue entries that smooth the revenue evenly. For more on the accounting framing, see IFRS / GAAP Reporting Versus Revenue Recognition.
Step 1. Create the annual invoices as normal
Create each annual invoice in your accounting system as you usually would. ScaleXP picks these up through your accounting integration and builds the deferred revenue schedules automatically.
It is usually a good idea to also create the future annual invoices in advance — without sending them to the customer yet — so the future deferred revenue schedules already exist in ScaleXP and the full contract is visible end-to-end.
Step 2. Let ScaleXP build the deferred revenue schedules
Once the invoices are in your accounting system, ScaleXP automatically:
- Creates the deferred revenue schedule for each invoice
- Releases revenue monthly across the invoice’s service period
- Produces the deferred revenue journals ready to post
- Recalculates everything if an invoice changes
This part of the workflow is unchanged. For a refresher, see Getting started with revenue recognition journals in ScaleXP and How the ScaleXP deferred revenue journal calculates the suggested posting amount.
Step 3. Add accrued revenue balancing entries
Because each invoice is treated independently by ScaleXP’s automated schedules, a small accrued revenue adjustment is needed to smooth recognition across the contract.
For each annual period, calculate the difference between what should be recognized on a straight-line basis and what is being recognized from that year’s invoice:
- Early contract years (where the invoice is below the straight-line average) need a positive accrued revenue addition
- Later contract years (where the invoice is above the straight-line average) need a negative accrued revenue reversal
- Across the full contract term, the net of all accrued revenue entries is zero
Then add one manual accrued revenue schedule for each annual balancing adjustment. Each schedule should:
- Start at the beginning of the annual invoice period
- Release evenly over the 12 months of that period
- Code to the revenue account (not deferred revenue)
The combined effect of the automated deferred revenue release plus your accrued revenue schedules is the correct straight-line recognition profile.
For the mechanics of creating and releasing accrued revenue schedules, see How to Automate Accrued Revenue Journal Posting, to Add and Release Accrued Income .
Worked examples
Worked example 1 — Multi-year contract with annual uplifts
A three-year contract is invoiced annually at the following amounts:
Year |
Invoice amount |
Year 1 |
$18,900 |
Year 2 |
$22,500 |
Year 3 |
$25,800 |
Total contract value is $18,900 + $22,500 + $25,800 = $67,200.
Straight-line annual revenue is $67,200 ÷ 3 = $22,400.
Monthly recognition across the full 36 months is $67,200 ÷ 36 = $1,866.67.
The required accrued revenue adjustments are:
- Year 1: $22,400 − $18,900 = $3,500 positive accrual, released evenly over 12 months
- Year 2: $22,400 − $22,500 = −$100 reversal, released evenly over 12 months
- Year 3: $22,400 − $25,800 = −$3,400 reversal, released evenly over 12 months
The total of these accrued revenue entries nets to zero across the contract.
Worked example 2 — Two-year contract with different annual values
A two-year contract is invoiced annually at the following amounts:
Year |
Invoice amount |
Year 1 |
$48,600 |
Year 2 |
$55,800 |
Total contract value is $48,600 + $55,800 = $104,400.
- Straight-line annual revenue is $104,400 ÷ 2 = $52,200.
- Monthly recognition across 24 months is $104,400 ÷ 24 = $4,350.
The required accrued revenue adjustments are:
- Year 1: $52,200 − $48,600 = $3,600 positive accrual, released evenly over 12 months
- Year 2: $52,200 − $55,800 = −$3,600 reversal, released evenly over 12 months
- Again, the total nets to zero across the contract.
Handling free periods and $0 contract extensions
The same logic applies when a contract contains free months, a discounted first year, or a contract extension with a $0 invoice value.
For example, a contract invoiced at $14,400 in Year 1 with a $0 extension in Year 2 still represents 24 months of service. The required monthly recognition is $14,400 ÷ 24 = $600.
In this case:
- The Year 1 invoice creates a deferred revenue schedule that releases automatically
- An accrued revenue schedule spreads the recognition evenly across the free extension period
- The accounting principle is the same — recognize revenue based on the total service obligation, not the invoice timing
Important accounting notes
ScaleXP does not automatically calculate ASC 606 allocation adjustments across multiple future invoices, so the straight-line balancing entries should be set up manually as described above. The accounting treatment should always be reviewed by your accountant or auditor.
The examples in this article assume a single performance obligation, that straight-line recognition is appropriate, and that the service delivered is substantially consistent throughout the contract. More complex contracts — for example those with multiple distinct performance obligations or material variable consideration — may need additional analysis. In some cases it may be more appropriate to use another recognition method such as usage-based or rule-based. See How to Set Up Usage Based Revenue Recognition and How to Set Rule Based Revenue Allocations.
Step 4. You’re done — your contract revenue is recognized evenly
That’s it — your multi-year contract is recognized straight-line across the total service period and your accounting stays compliant with ASC 606 / IFRS 15.
ScaleXP continues to automate:
- Monthly deferred revenue release for each invoice
- The deferred revenue journals ready to post
- The accrued revenue release schedules you’ve added
Post your ScaleXP journals each month and the combined deferred and accrued postings will produce the correct net revenue automatically. For the wider month-end picture, see How to Set Up Revenue Recognition Journals in ScaleXP.
Related articles
How to Set Up Revenue Recognition Journals in ScaleXP
How to Configure and Validate Revenue Recognition in ScaleXP
How to Automate Accrued Revenue Journal Posting, to Add and Release Accrued Income
How to Release Accrued Revenue
How ScaleXP Allocates the Spread of Revenue and Determines Deferred Revenue Amounts
How the ScaleXP Deferred Revenue Journal Calculates the Suggested Posting Amount
IFRS / GAAP Reporting Versus Revenue Recognition
Why Does My Deferred Revenue Balance Not Reconcile as Expected?
How to Set Rule Based Revenue Allocations
How to Set Up a Complex, Multi-Tiered Revenue Allocation Rule