Cash-basis thinking is tempting in a collections inbox. Accounting is not a collections inbox.
A sent invoice creates a billed amount. Whether that amount is revenue yet depends on the product, the recognition method, and — for freight — the haul date versus the invoice date.
Two views of the same money
| View | Question it answers | Where you see it |
|---|---|---|
| Waterfall | What did we bill vs earn this period? | Revenue waterfall |
| Journal | What debits and credits post? | Journal entries |
Sonic posts from documents you already sent. Every journal line can walk back to a source invoice, credit note, usage accrual, adjustment, forfeit, or true-up. Debits equal credits or the batch does not publish.
We do not print ASC 606 or Ind AS 115 certification on a marketing page. Your policies remain yours. The product's job is to apply the methods you configured and to keep the trail an auditor can follow without a forensic reconstruction of Slack.
Subscription recognition — the usual shapes
Fixed and seat products billed in advance create deferred revenue at invoice. Recognition releases over the service period — straight-line by default for many setups, with usage and point-in-time variants where configured.
Usage metered in arrears often recognises as consumed during the period, then settles on the invoice. You may see both an accrual row and an invoice row for the same meter in one month. That is not double counting; it is delivery vs settlement.
Minimum commitment shortfalls produce true-up lines at period close once all grouped usage is in. Late events change the top-up — another reason immutability on sent invoices matters elsewhere.
Credit notes reverse whatever the original invoice did, linked in the journal so corrections read as pairs.
Consolidated product blocks in the journal roll lines so a finance reader sees one product entity per period, not a row per GL account unless they expand detail.
Freight recognition — haul date wins
Freight is stricter about dates. The haul owns recognition.
| Timing | Billed leg | Recognised leg |
|---|---|---|
| Invoice and haul same day | Invoice date | Same day — Billed & recognised |
| Haul before invoice | Invoice date | Shipment date (point-in-time); unbilled bridges the gap |
| Invoice before haul | Invoice date | Still shipment date when haul passes |
Deferred revenue is not used on freight. If you billed later, you still recognise on the shipment date — waiting for the invoice-day leg when billing was in advance, then posting the recognised amount to the haul date. Unbilled revenue is the bridge when the haul is first.
Each shipment is one recognition unit at the net of its rate lines, including deductions. The waterfall breaks that unit into individual rates. Journal search in shipment mode swaps Product for Shipment and groups by shipment id so grouped invoices stay readable.
What Sonic does not do
- Certify your ASC 606 / Ind AS 115 position.
- Replace your ERP as general ledger of record.
- Restate issued invoices or frozen ledgers when pricing math improves — forward-only on open drafts.
- Invent recognition without a source document trail.
Export CSV or push through an integration. Your controller still owns account mapping and period close sign-off.
Watch out for
- Billed ≠ recognised is healthy for in-advance subscription. A month where they match exactly often means everything bills in arrears, not that numbers are "cleaner."
- Usage accrual + invoice is intentional. Follow the links before concluding double charge.
- Freight never uses deferred revenue. If you see unbilled on a haul-first row, that is the bridge, not a bug.
- Adjustment invoices link back. Upgrade mid-period may recognise immediately if backdated into a closed period — know before month-end.
- Recognition must be enabled in org settings. The waterfall stays empty until you turn it on.