Invoicing is not earning. Bill a year up front and you have been paid for twelve months of service you have not delivered yet. Accounting rules say you earn month by month as you deliver — and Sonic tracks that split in the waterfall while the journal shows debits and credits your ERP can post.
We are not ASC 606 or Ind AS 115 certified. Your policies remain yours. The product applies configured methods and preserves auditable links to source documents.
Waterfall columns — the story view
| Column | Meaning |
|---|---|
| Period | Accounting month |
| Customer / product (or shipper / shipment) | Grouping grain |
| Billed | Invoiced in that month |
| Deferred | Collected but not yet earned |
| Recognised | Earned in that month |
| Remaining | Still to come |
Example: $12,000 annual invoice in January → $12,000 billed, ~$1,000 recognised, $11,000 deferred by month-end. Freight does not use that deferred bucket the same way — haul-date recognition dominates.
Every number in the waterfall traces back to a source: rate lines on a shipment, an accrual breakdown on a metered product. Nothing in the story view is a rollup you have to take on faith.
Journal entries — the books view
Every batch publishes only if debits equal credits. Entry types include:
| Type | Typical trigger |
|---|---|
| Invoice | Sent invoice creates billed / deferred legs |
| Usage accrual | Consumption during period |
| Credit note | Reversal |
| Adjustment | Upgrade invoice after send |
| Forfeit | Prepaid quota expired unused |
| True-up | Minimum commitment shortfall |
Consolidated view rolls product blocks so operators see one entity per product per period, not a wall of GL accounts — unless they expand detail.
Export CSV or push via integration. ERP posting is still your control.
Subscription patterns
- In advance fixed/seat — defer at invoice; release over service period.
- Usage in arrears — accrue on consumption; invoice settles.
- Minimum commitment — true-up after grouped usage is complete; late events move the top-up.
Adjustment invoices link back to original product entries — follow links before assuming double charge.
Freight patterns — haul date wins
Each shipment is one recognition unit at net of rate lines (including deductions).
| Dates | Journal story |
|---|---|
| Shipment date = invoice date | Billed & recognised together |
| Haul before invoice | Point-in-time on haul; Invoice day later clears unbilled |
| Invoice before haul | Still recognise on haul date when haul passes |
Deferred revenue is not used on freight. Unbilled revenue bridges when haul is first.
Shipment workspace journal hides product column for Shipment id; search includes shipment number and rate names. Grouped invoices keep one block per shipment via consolidation keys.
Enablement and filters
Nothing appears until revenue recognition is enabled in organisation settings. Filters on customer/product/shipper reload the tree — search narrows names on loaded data.
Billed ≠ recognised is healthy for in-advance subscription. A month where they always match often means everything bills in arrears, not that numbers are "better."
Watch out for
- Waterfall is narrative; journal is posting — use both in close, not either alone.
- Tax payable may split by category on multi-tax lines — not one combined credit.
- Freight credit notes are not the primary correction path — issuance rules differ from subscription.
- Frozen ledgers do not restate when pricing math improves — forward on open drafts only.
- Recognition enablement is explicit — empty waterfall may mean settings, not missing invoices.