Almost every finance team we meet has a workbook named something like final_v7 or revenue_master_DO_NOT_EDIT. It is not there because the team distrusts spreadsheets less than software — it is there because the billing or revenue system stopped modelling a case the business actually has, and the spreadsheet is where that case gets fixed by hand every month.
The shadow sheet pattern
The pattern is consistent enough to name:
- Production system bills something.
- Finance knows something else is correct for a recurring edge case.
- A human adjusts in Excel under deadline.
- The adjusted number becomes what leadership sees.
- Six months later nobody remembers which truth is official.
The expensive part is not Excel. It is silent divergence between the system of record and the sheet the CFO actually presents.
Modelling gaps that create shadows
These show up constantly in B2B billing — none are exotic:
| Gap | Spreadsheet fix | Sonic-shaped fix |
|---|---|---|
| Deferred setup instalments | Manual invoice dates per tranche | One-time rows + commercial_billing_date; placement stamps missing dates |
| Mid-term price change | Re-rate whole period in Excel | Phase split or upgrade/downgrade with calendar-unit proration |
| Seat vendor "increase" column | Rebuild deltas by hand | Absolute daily snapshots + events on change |
| Payment-gated start | Hide dates until cash | Four activation modes; NULL dates until gate opens |
| Minimum commitment | True-up tab at month end | Commitment group + period close top-up line |
| Freight haul vs invoice date | Two tabs for billed vs earned | Shipment-date recognition + unbilled bridge |
| Late usage on sent invoice | "Just add a line" | New invoice alongside; immutability after send |
When the system produces the number finance would have hand-corrected to, the shadow sheet stops earning its keep — not because someone banned Excel, but because it has nothing left to fix.
What shadow sheets hide
Shadow workbooks also accumulate tribal knowledge that does not survive hiring:
- Which customers are on non-standard Net terms.
- Which carrier branch table was "close enough" last quarter.
- Which seat export column is trustworthy vs decorative.
Sonic cannot eliminate judgement, but it can move repeatable rules into schedules, templates, and configs that new operators can read.
Migration without pretending Excel vanished
The practical exit is cohort migration: catalog first, simplest contracts first, parallel run one full cycle, cut over when numbers agree line by line. See migrating-off-spreadsheet-billing for the order of operations.
Banning spreadsheets without closing modelling gaps just moves the shadow to email attachments.
Watch out for
- If only one person understands the shadow sheet, you have a bus factor, not a process.
- Compare parallel runs on gross and tax, not just header totals.
- Seat delta columns will poison reconciliation — fix ingestion, not the workbook formula.
- Do not "fix" sent invoices in Excel and expect Sonic to match — immutability is intentional.
- Revenue shadow sheets often mix cash and accrual. Split billed vs recognised questions before blaming billing.