What you are owed, before anyone is invoiced.
From an approved contract, RevRec derives the schedule of invoices you expect to raise — amounts, dates, and terms — and prepares the drafts. It stops there, on purpose: nothing is finalized, nothing is sent, and nothing has entered a ledger.
Three facts, then arithmetic.
You get a billing plan you can check line by line. It's built from three facts read from the contract: the payment terms as written, whether it's billed in advance, and the length of the billing period.
Everything else is arithmetic you can follow. The contract value divides across the periods, any rounding lands on the last instalment, and each date steps forward from the contract start. There is no inferred ramp, no guessed milestone, and no proration invented on your behalf.
- Unreadable terms leave the field blank rather than defaulting
- An unrecognised cadence produces no schedule, not a plausible one
- Usage-based contracts are never auto-classified into a cadence
Extracted · everything else is derived
- payment terms
- Net 30 from invoice date
- billed in advance
- true
- billing period
- 12 months
Illustrative. No amount and no invoice date is read from the document — both are computed from the contract value and the term.
Every invoice you expect to raise, before you raise it.
This is your Promise List: every invoice you expect to send, each with a date, an amount and a due date. When you issue an invoice it's matched to its row, so you can see at a glance what's billed and what's still to come.
Each instalment can be billed once. If a second invoice tries to bill the same one, it's stopped before it's issued.
Note the last row. Any rounding lands there, so the twelve instalments add up to the contract value exactly.
| Expected | Amount | Due |
|---|---|---|
| 1 Jan | 4,416.67 | 31 Jan |
| 1 Feb | 4,416.67 | 2 Mar |
| 1 Mar | 4,416.67 | 31 Mar |
| … | … | … |
| 1 Dec | 4,416.63 | 31 Dec |
Status · projected → matched · superseded rows are kept
A billing plan you can argue with.
No guessed schedules
If the contract doesn't state a billing cadence, you get no schedule rather than a plausible-looking one. Usage contracts and unclear terms come to you to decide.
Instalments that add up exactly
The contract value splits across the instalments and any rounding lands on the last one, so they add up to the contract value to the cent.
Payment terms you can check
“Net 30”, “net-45” and “due on receipt” become a number of days. Terms it doesn't recognise stay blank for you to fill in, rather than defaulting to something plausible.
Nothing quietly rewrites what you're owed
Your Promise List changes only when a contract is approved or its billing plan is regenerated. Nothing else can edit it.
Drafts, never sends
Draft preparation assembles invoices for you to review. It can't finalize an invoice and can't email anybody.
Changes stay traceable
When a billing plan is regenerated, the earlier rows are kept and marked, not deleted, so you can always see why a number changed.
It ends with a draft, waiting.
Finalizing an invoice, sending it, and collecting against it are a different job with a different approver — that is receivables.