Deferred revenue roll-forward with AI: contract liability tie-out and ASC 606 disclosure data
Roll deferred revenue (contract liabilities) forward by customer and contract from billings and revenue schedules, tie it to the GL every month instead of at year-end, and pull the opening-balance revenue figure your ASC 606 disclosures need.
When to use it
Use it when deferred revenue only gets reconciled at year-end, when the billing system's deferred revenue report doesn't match the GL, or when the auditors ask for the contract liability roll-forward and the revenue recognized from the opening balance. It suits subscription and service businesses that bill in advance and recognize revenue ratably or as services are delivered.
It assumes the accounting for each contract is already decided (see the ASC 606 revenue memo workflow). This workflow checks that the balances follow those decisions.
Input data
- Deferred revenue detail by customer and contract at the beginning and end of the period (from the billing or revenue system), with the GL deferred revenue balance(s).
- Billings for the period: invoice number, customer, contract, amount, service start and end dates.
- Revenue recognized for the period by contract, from the revenue schedules.
- Credits, cancellations, refunds, contract modifications and any FX revaluation for the period.
- The prior period's reviewed roll-forward.
- Policy notes: how invoiced-but-unpaid amounts on cancellable contracts are treated, the current vs non-current split method, and the materiality threshold for investigation.
The prompt
Replace the [bracketed] items. Paste it with your files attached. It works in any capable assistant; tool-specific notes are in the steps.
Help me prepare the deferred revenue (contract liability) roll-forward for [entity] for the period ending [MM/DD/YYYY]. I will review everything and decide on any adjustments.
Attached: deferred revenue detail by contract, beginning and end of period [files]; billings for the period [file]; revenue recognized by contract [file]; credits, cancellations and modifications [file]; GL deferred revenue balances and activity [file]; prior-period roll-forward [sheet].
Policy notes: [paste]. Investigation threshold: $[X].
1. Profile the files: row counts, totals, and whether the beginning detail ties to the prior-period roll-forward and the GL. If the beginning balance doesn't tie, stop and show me the difference.
2. Build the roll-forward by contract, with formulas:
beginning balance + billings − revenue recognized ± credits/cancellations ± other adjustments = calculated ending balance
Compare the calculated ending balance to the system's ending detail for each contract, and the total to the GL. Show every difference over $[X]. Don't plug it.
3. Flag exceptions, one table each:
- Contracts with a negative deferred revenue balance
- Billings with no revenue schedule, or revenue recognized with no billing or deferral behind it
- Contracts whose service end date has passed but which still carry a balance
- Revenue recognized in the period that doesn't match the schedule pattern (e.g. a ratable contract recognizing a lump sum)
- Credits or cancellations with no matching reversal of deferred revenue
- Large billings near period-end with a service start date after period-end
4. Split the ending balance into current (to be recognized within 12 months) and non-current using the service dates, and show the method.
5. Disclosure data points (for my review, not conclusions): opening and closing contract liability balances, and the revenue recognized this period that was included in the opening contract liability balance (ASC 606-10-50-8). Show how you traced it.
6. Summarize any proposed adjustments by GL account, labeled "DRAFT – for review".
Use only the data in the files. Do not invent contracts, dates or amounts. If a field is ambiguous, ask me.Steps
- Pull the deferred revenue detail, billings and revenue schedules for exactly the same cut-off as the GL. Different run dates are the most common source of noise.
- Run the prompt. Read step 1 first: if the beginning balance doesn't tie to last month's reviewed roll-forward, resolve that before rolling forward.
- Spot-check five or more contracts end-to-end against the contract, the invoice and the revenue schedule, including at least one modification and one cancellation.
- Work the exceptions with billing operations and revenue accounting. Negative balances and expired contracts with balances are usually setup errors in the billing or revenue system; fix them at the source.
- Decide any adjustments yourself and record them through your normal JE process, with support. Update the revenue schedules so the error doesn't recur.
- At quarter-end, use the traced disclosure data points as a starting point for the contract balance disclosures, and have them reviewed with the rest of the footnote. Private companies may be eligible for reduced disclosures; confirm what applies to you.
Control map
What the AI may do, step by step. How ratings work.
| Rating | Step |
|---|---|
| Safe to automate | The roll-forward layout and formulas, the contract-level comparison and the exception tables (re-performable). |
| Human review | Every difference to the system detail and the GL, the current vs non-current split, and the disclosure data points. |
| Never automate | Revenue recognition conclusions (ASC 606), treatment of billed-but-unpaid cancellable contracts, and posting or approving any adjustment. |
Audit trail
- Keep the system exports (with row counts and control totals), the roll-forward workbook, the exception dispositions and the reviewer's sign-off together.
- For each adjustment, reference the contract, the invoice and the schedule that support it.
- Keep the trace for revenue recognized from the opening balance; auditors commonly ask how it was derived.
- Note in the workbook which parts AI built, and evidence the reviewer's formula and contract spot-checks.
Failure modes
- Year-end true-ups hiding monthly errors. The point of the workflow is to tie monthly; a plug at year-end is the symptom.
- Cancellations and credits that reverse revenue but not deferred revenue (or the reverse), leaving orphaned balances.
- Service dates taken from the invoice date, which shifts revenue between periods and breaks the current vs non-current split.
- Gross-up confusion. Invoiced-but-unpaid amounts on cancellable contracts may not belong in deferred revenue; that's a policy call, not a model call.
- Plausible disclosure numbers. The opening-balance revenue figure must be traced contract by contract, not estimated from totals.
- Silent truncation of large contract lists. Compare the row counts and totals in step 1 to the source.
Data handling
- Use a company-approved AI workspace whose terms say your inputs are not used for model training. Check your plan; don't assume it.
- Strip or mask what the task doesn't need: employee names, bank account numbers, customer PII, SSNs or TINs.
- If you are a public company, treat pre-release results as material non-public information and keep them inside approved systems.
Practitioner guidance, not accounting, audit or legal advice. Your policies, materiality thresholds, auditors and the applicable standards control.
Related workflows
Flux / variance analysis
Compute balance and P&L fluxes against your thresholds, then draft explanations only from the underlying transaction activity, never from what sounds plausible.
Revenue recognition memo (ASC 606)
Read a customer contract (MSA, order form, SOW, amendments), pull out the terms that drive ASC 606 accounting with citations, and lay out the five-step analysis with the judgment calls clearly marked as yours.
Journal entry review
Screen the full journal entry population for the characteristics auditors look at (manual, post-close, unusual users, round amounts, seldom-used accounts), then check that support and approvals exist. Approval stays human.