How to build a deferred revenue waterfall schedule, with a template
A deferred revenue waterfall shows when every booked dollar becomes recognized revenue. Build one step by step, then keep it current without spreadsheets.
Part of the revenue recognition guide.

Your deferred revenue balance is $47,000. Your CFO asks how much of it lands next quarter. Your auditor asks you to prove the balance ties to the contracts. A deferred revenue waterfall answers both. A deferred revenue waterfall is a schedule that lists every contract or invoice in rows and every future period in columns, showing exactly when each billed dollar moves from deferred revenue to recognized revenue. To build one, you list contracts with their billing and service dates, spread each amount across its service periods, then reconcile the total back to the general ledger with a monthly rollforward. The template and worked example below do exactly that.
Key takeaways
• A deferred revenue waterfall has one row per contract and one column per period, so you can read both what was recognized historically and what will be recognized in future.
• The waterfall must tie to the ledger through a rollforward: opening deferred revenue + billings − revenue recognized = closing deferred revenue.
• Only billed amounts belong in a deferred revenue waterfall. Signed but unbilled contract value belongs in RPO, not deferred revenue.
• In our worked example, five contracts produce $40,000 of revenue in the first half of 2026 and a $47,000 closing balance that converts to revenue over the next three quarters.
• Pick one proration convention (monthly or daily) and apply it everywhere. Mixed conventions are a common reason a waterfall won't tie.
• Loopfour, the deterministic finance workflow automation platform, rebuilds the waterfall from signed contracts and billing data every period, so the schedule and the ledger never drift apart.
What is a deferred revenue waterfall?
A deferred revenue waterfall is a period-by-period schedule of when deferred revenue will be, or has been, recognized. Each contract steps down across the columns as revenue is earned, which is where the "waterfall" name comes from.
The schedule does two jobs at once:
• Backward-looking: it proves how the current deferred revenue balance was built, contract by contract.
• Forward-looking: it forecasts how much of that balance becomes revenue in each future period.
Oracle NetSuite describes its own version of this report as one that "reconciles the deferred revenue account balance on the balance sheet and provides a forecast of the expected revenue stream." That's a good definition for any waterfall, whether it lives in an ERP or a spreadsheet. See the NetSuite Deferred Revenue Waterfall Summary documentation for how the ERP version is organized.
If you need the underlying concept first, start with our explainer on what deferred revenue is and why it's a liability.
Waterfall vs rollforward vs RPO
A waterfall, a rollforward, and an RPO schedule are three related views of the same contracts. Finance teams often need all three, and they should tie to each other.
| Schedule | What it shows | Includes unbilled contract value? |
|---|---|---|
| Deferred revenue waterfall | When each billed dollar is recognized, by period | No |
| Deferred revenue rollforward | Opening balance + billings − recognized = closing balance | No |
| RPO schedule | All contracted revenue not yet recognized, billed or not | Yes |
For how RPO relates to deferred revenue, see contracted ARR, live ARR, and RPO.
How to build a deferred revenue waterfall schedule, step by step
Building a waterfall takes six steps: gather contract data, set a convention, calculate the recognition pattern, spread it across periods, roll it forward, and tie it to the ledger. Each step has a check that catches the most common errors.
Step 1: Gather contract and billing data
List every contract with an open deferred revenue balance, plus every new invoice in the period. For each one, you need:
| Field | Why it matters |
|---|---|
| Contract or invoice ID | Traceability back to the source document |
| Customer | Review and aging |
| Service start date | When recognition begins (not the signature date) |
| Service end date | When recognition ends |
| Billed amount and invoice date | What enters deferred revenue, and when |
| Recognition method | Ratable, point in time, or usage-based |
| Performance obligation | Bundles need a separate row per obligation |
Check: the sum of billed amounts in your list should match the billings posted to deferred revenue in the ledger for the same period.
Step 2: Choose a proration convention
Decide whether you recognize by whole months or by days, and write it down. Monthly convention is simpler and common for contracts that start on the first. Daily proration is more precise for mid-month starts. Mixing conventions across contracts is a common cause of small, persistent variances.
Step 3: Calculate each contract's recognition pattern
For a ratable contract, monthly revenue = billed amount ÷ number of service months. Bundled contracts need the transaction price allocated to each performance obligation first. Our guide to multiple performance obligations walks through that allocation.
Step 4: Spread the revenue across period columns
Place each contract's monthly revenue in every column that falls within its service period, and zero elsewhere. In a spreadsheet with period start dates in row 1, a basic ratable formula looks like this:
=IF(AND(M$1>=$C2, M$1<=$D2), $E2/$F2, 0)
Here, C is the service start date, D is the service end date, E is the billed amount, and F is the number of service months. This formula assumes every contract starts on the first of a month. Mid-month starts need a daily calculation.
Step 5: Build the rollforward
The rollforward proves the balance: opening deferred revenue + billings − revenue recognized = closing deferred revenue. Build it by period, directly under the waterfall.
Step 6: Tie the waterfall to the general ledger
The waterfall's closing balance must equal the deferred revenue account in the general ledger. If it doesn't, the variance is a reconciling item that needs an explanation before you close. Typical culprits are invoices posted to the wrong account, credit memos missing from the schedule, and manual journal entries booked directly to deferred revenue.
Worked example: a six-month deferred revenue waterfall
Here is a complete example for January through June 2026, using monthly convention. All contracts start on the first of the month and are invoiced in full on their start date.
| Contract | Service period | Billed amount | Invoice date | Monthly revenue |
|---|---|---|---|---|
| C0 | Jul 1, 2025 to Jun 30, 2026 | $18,000 | Jul 1, 2025 | $1,500 |
| C1 | Jan 1, 2026 to Dec 31, 2026 | $12,000 | Jan 1, 2026 | $1,000 |
| C2 | Feb 1, 2026 to Jan 31, 2027 | $36,000 | Feb 1, 2026 | $3,000 |
| C3 | Mar 1, 2026 to Aug 31, 2026 | $6,000 | Mar 1, 2026 | $1,000 |
| C4 | Apr 1, 2026 to Mar 31, 2027 | $24,000 | Apr 1, 2026 | $2,000 |
Contract C0 was billed in 2025, so its remaining $9,000 (six months × $1,500) is the opening deferred revenue balance on January 1, 2026.
The historical waterfall: revenue recognized by month
| Contract | Jan | Feb | Mar | Apr | May | Jun | H1 total |
|---|---|---|---|---|---|---|---|
| C0 | $1,500 | $1,500 | $1,500 | $1,500 | $1,500 | $1,500 | $9,000 |
| C1 | $1,000 | $1,000 | $1,000 | $1,000 | $1,000 | $1,000 | $6,000 |
| C2 | $0 | $3,000 | $3,000 | $3,000 | $3,000 | $3,000 | $15,000 |
| C3 | $0 | $0 | $1,000 | $1,000 | $1,000 | $1,000 | $4,000 |
| C4 | $0 | $0 | $0 | $2,000 | $2,000 | $2,000 | $6,000 |
| Total | $2,500 | $5,500 | $6,500 | $8,500 | $8,500 | $8,500 | $40,000 |
The rollforward that ties to the ledger
| Month | Opening balance | Billings (added) | Revenue recognized (subtracted) | Closing balance |
|---|---|---|---|---|
| Jan | $9,000 | $12,000 | $2,500 | $18,500 |
| Feb | $18,500 | $36,000 | $5,500 | $49,000 |
| Mar | $49,000 | $6,000 | $6,500 | $48,500 |
| Apr | $48,500 | $24,000 | $8,500 | $64,000 |
| May | $64,000 | $0 | $8,500 | $55,500 |
| Jun | $55,500 | $0 | $8,500 | $47,000 |
Check the closing balance contract by contract: C0 $0 + C1 $6,000 + C2 $21,000 + C3 $2,000 + C4 $18,000 = $47,000. The rollforward and the contract-level detail agree, so the schedule ties.
The forward waterfall: when the $47,000 becomes revenue
| Contract | Balance Jun 30 | Q3 2026 | Q4 2026 | Q1 2027 |
|---|---|---|---|---|
| C1 | $6,000 | $3,000 | $3,000 | $0 |
| C2 | $21,000 | $9,000 | $9,000 | $3,000 |
| C3 | $2,000 | $2,000 | $0 | $0 |
| C4 | $18,000 | $6,000 | $6,000 | $6,000 |
| Total | $47,000 | $20,000 | $18,000 | $9,000 |
This is the answer your CFO wanted: $20,000 of the balance is scheduled to become Q3 revenue before a single new deal closes. It's also the current and noncurrent split for your balance sheet. Everything here converts within 12 months, so the full $47,000 is current.
The monthly journal entry
Each month-end, one entry releases that month's revenue from the waterfall total. For June 2026:
| Account | Debit | Credit |
|---|---|---|
| Deferred revenue | $8,500 | |
| Subscription revenue | $8,500 |
For the full contract-level entries, including invoicing and collection, see deferred revenue journal entries for an annual SaaS contract.
Book a workflow review to see how long your team spends rebuilding this schedule each month.
The deferred revenue waterfall template
Use this layout as your template. Copy the column structure into a spreadsheet: static contract fields on the left, one column per period on the right, and the rollforward below.
| Column | Content | Type |
|---|---|---|
| A | Contract ID | Input |
| B | Customer | Input |
| C | Service start date | Input |
| D | Service end date | Input |
| E | Billed amount | Input |
| F | Service months | Formula: months between C and D |
| G | Monthly revenue | Formula: E ÷ F |
| H | Recognized to date | Formula: sum of past period columns |
| I | Deferred balance | Formula: E − H |
| J onward | One column per month | Formula from Step 4 |
| Below the grid | Rollforward: opening, billings, recognized, closing | Formula |
| Last row | GL balance and variance | Input and formula; variance must be zero |
Why spreadsheet waterfalls break
A spreadsheet waterfall works until the contract base changes faster than the person maintaining it. Common breaks:
• Amendments: an upgrade or credit memo is added as a new row but the original row isn't adjusted.
• Copy-down errors: a formula is overwritten with a hardcoded number and nobody notices.
• Late invoices: billings posted after the schedule was frozen never reach it.
• Cancellations: a terminated contract keeps releasing revenue.
Each break shows up as a variance between the waterfall and the ledger, usually discovered at quarter-end, when there's the least time to fix it.
How to choose a way to keep your waterfall current
Choose the approach that regenerates the waterfall from source data each period, instead of editing last month's version. Regeneration is what keeps it tied.
Spreadsheets are transparent and flexible. They suit a small contract base where one person owns the file. They struggle with volume, amendments, and audit evidence for who changed what.
ERP revenue modules produce waterfall reports natively, including NetSuite's Deferred Revenue Waterfall Summary and Detail reports. They work well when every contract and amendment is set up correctly in the ERP. The risk is upstream: contracts keyed by hand, or discounts that never make it from the CRM.
Loopfour automates the upstream work. Loopfour Studio reads signed contracts, uses the Contract Agent for the scoped task of extracting service dates, amounts, and terms, and routes low-confidence extractions to a controller for approval in Slack. Approved data flows into your revenue schedules in NetSuite, QuickBooks, Xero, Sage Intacct, or Rillet, and Loopfour runs the waterfall-to-ledger tie-out every period. The same inputs produce the same waterfall every run, and any variance is flagged as an exception before close, not after. For the broader playbook, see how to automate ASC 606 revenue recognition.
Frequently asked questions
What is a deferred revenue waterfall? A deferred revenue waterfall is a schedule with contracts in rows and periods in columns, showing when each billed amount is recognized as revenue. It reconciles the deferred revenue balance and forecasts future recognized revenue.
How do you reconcile a deferred revenue waterfall to the general ledger? Build a rollforward: opening deferred revenue plus billings minus revenue recognized equals closing deferred revenue. The closing balance must match the deferred revenue account in the general ledger, and any variance needs an explanation before close.
Should unbilled contracts be in a deferred revenue waterfall? No. Deferred revenue includes only amounts billed or collected in advance. Signed but unbilled contract value belongs in remaining performance obligations, which is a separate schedule.
How do you handle mid-month start dates in a waterfall? Use daily proration: divide the billed amount by the total service days and multiply by the days in each period. Apply the same convention to every contract so the waterfall ties.
How often should the waterfall be updated? Every month, as part of month-end close. Update it after all invoices, credit memos, and revenue entries for the period are posted, then tie it to the ledger.
Conclusion
A deferred revenue waterfall turns a single balance sheet number into a contract-level schedule of when revenue will land. Build it from contract data, roll it forward every month, and tie it to the ledger before you close. Do that consistently and the waterfall answers the CFO's forecast question and the auditor's evidence request with the same table.
Tell us the one workflow your team dreads. We will show it running: deterministic, permissioned, and auditable.
Book a demo.
Sources
• Oracle NetSuite Help: Deferred Revenue Waterfall Summary report
Related reading
• What is deferred revenue? Why it's a liability
• Deferred revenue journal entries for an annual SaaS contract, month by month
• How to recognize revenue on a contract with multiple performance obligations
• Contracted ARR, live ARR, and RPO explained
• How to automate ASC 606 revenue recognition without losing the audit trail
• The month-end close checklist: every step, owner, and control
Sources
- Oracle NetSuite, Deferred Revenue Waterfall Summary report (opens in a new tab).
