Skip to main content
BlogOctober 14, 202613 min read

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.

Zuny FesterBy Zuny Fester, Head of Operations and Marketing
Reviewed by Zuny Fester
Published Editorial policy

Part of the revenue recognition guide.

How to build a deferred revenue waterfall schedule, with a template

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.

ScheduleWhat it showsIncludes unbilled contract value?
Deferred revenue waterfallWhen each billed dollar is recognized, by periodNo
Deferred revenue rollforwardOpening balance + billings − recognized = closing balanceNo
RPO scheduleAll contracted revenue not yet recognized, billed or notYes

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:

FieldWhy it matters
Contract or invoice IDTraceability back to the source document
CustomerReview and aging
Service start dateWhen recognition begins (not the signature date)
Service end dateWhen recognition ends
Billed amount and invoice dateWhat enters deferred revenue, and when
Recognition methodRatable, point in time, or usage-based
Performance obligationBundles 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.

ContractService periodBilled amountInvoice dateMonthly revenue
C0Jul 1, 2025 to Jun 30, 2026$18,000Jul 1, 2025$1,500
C1Jan 1, 2026 to Dec 31, 2026$12,000Jan 1, 2026$1,000
C2Feb 1, 2026 to Jan 31, 2027$36,000Feb 1, 2026$3,000
C3Mar 1, 2026 to Aug 31, 2026$6,000Mar 1, 2026$1,000
C4Apr 1, 2026 to Mar 31, 2027$24,000Apr 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

ContractJanFebMarAprMayJunH1 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

MonthOpening balanceBillings (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

ContractBalance Jun 30Q3 2026Q4 2026Q1 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:

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

ColumnContentType
AContract IDInput
BCustomerInput
CService start dateInput
DService end dateInput
EBilled amountInput
FService monthsFormula: months between C and D
GMonthly revenueFormula: E ÷ F
HRecognized to dateFormula: sum of past period columns
IDeferred balanceFormula: E − H
J onwardOne column per monthFormula from Step 4
Below the gridRollforward: opening, billings, recognized, closingFormula
Last rowGL balance and varianceInput 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

• 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

  1. Oracle NetSuite, Deferred Revenue Waterfall Summary report (opens in a new tab).