Tools
Deferred revenue schedule: a waterfall from your contracts
Paste your contracts, with amount, service start and end. You get the monthly revenue waterfall, the roll-forward tied to your trial balance, the current and non-current split, and the entry for the month you're closing.
Billing systems that build this for you usually want a signup and your customer data. This runs in your browser on a pasted list, any number of contracts at once, and checks the result against the deferred revenue balance on your trial balance.
Runs entirely in your browser. Nothing is uploaded, nothing is stored, nothing leaves your machine.
Contract list
One row per contract, tab or comma separated, copied straight from Excel: contract, amount, service start, service end (or a term in months), date billed or recorded, revenue account. The last two are optional. If you leave the billed date blank, the contract is treated as billed on the day service starts. A header row is fine. Dates as 2026-01-15 or 1/15/2026 (month first, so 05/01/2026 is May 1). Amounts in US format, like 1,200.00.
The assumption: revenue earned evenly over the service period
This schedule recognizes each contract's amount evenly across its service period. That's the usual pattern for subscriptions, support and maintenance, and other services delivered continuously over time. It doesn't fit usage-based fees, milestone-based delivery, implementation work, or anything recognized at a point in time. Whether a contract is recognized evenly is a judgment for your revenue policy under ASC 606. The tool assumes it; it doesn't decide it.
How each month is calculated
Pick one of two methods. Both spread the full amount across the service period, and both round to the cent so each contract's months add up to its amount exactly — no plug in the last month.
| Method | How it works | When it fits |
|---|---|---|
| Equal monthly amounts | Amount ÷ number of months. The first month is the month service starts, whatever the day. An end date within three days of a whole term (Jan 1 to Jan 1, or a day short; one day for terms under three months) counts as that term, with a note. Any other period that isn't whole months is spread by actual days, so nothing is recognized before the service is delivered. | Contracts that start on the 1st, or when your policy recognizes a full month in the start month. |
| Actual days | Amount × days of service in the month ÷ total days of service. | Contracts that start mid-month, when your policy prorates by day. |
Rounding works on the running total: each month-end cumulative amount is rounded to the cent, and the month's revenue is the difference from the month before. Nothing piles into the final month.
Billed before service starts, billed after it starts
Take an annual contract invoiced in September for service starting in October. Once that invoice is due or paid, it sits in deferred revenue at full value, with nothing recognized yet. The schedule shows it with status “Not started.”
A contract billed after service has started is different, and the tool flags it by name. Nothing is recognized before the billing month, so that month carries a catch-up for the earlier months of service. That keeps the roll-forward clean, but it may not match your accounting: service delivered before billing is usually unbilled revenue (a contract asset), recognized in the months it was delivered. If you close a month before the billing is recorded, the tool also names the contract and the service already delivered. Treat these flags as prompts to check, not as the answer.
The roll-forward and the tie-out
Beginning balance, plus billings recorded this month, less revenue recognized this month, gives the ending balance. Enter deferred revenue from your trial balance and the tool shows the difference in dollars.
A difference means the contract list and the ledger disagree. The usual reasons: an invoice billed to deferred revenue but missing from the list; a contract on the list that was never billed; credit memos or cancellations booked to the account; last month's recognition entry posted with a different amount; or the ledger recognizing on equal months while the list uses actual days.
Current and non-current
The current portion is what will be recognized in the next 12 months, contract by contract. The rest is non-current. Multi-year contracts billed up front are where the split matters.
What it doesn't do
It doesn't handle contract modifications, cancellations or refunds; for those, book the change and enter the remaining amount as a new line from the date of the change. It doesn't allocate a price across several performance obligations: enter each obligation's allocated amount as its own line. It works in one currency, and it doesn't post anything: it gives you the entry to book.
A deferred revenue balance that ties is one less question in the monthly flux review. The free flux template flags the accounts that moved enough to need explaining; the other free tools help with the explaining.
Related: balance sheet flux analysis, where deferred revenue movements get explained; the price volume mix calculator, for the revenue line itself; topside entries, including a revenue cutoff example; and the prepaid amortization schedule, the same calculation from the expense side.
Found something wrong or missing? Tell me here — anonymous, thirty seconds.