Every audit ends with one of these: each leak, its evidence, what it costs to leave open, and what it took to close. This is the actual ledger from the audit in the field notes — identities and dollar figures redacted, everything else as found.
| # | Finding | Evidence | Status | Annual cost if left open |
|---|---|---|---|---|
| 01 | Duplicate customer recordsOne person, stored as up to several billable profiles — guest checkouts and repeat purchases never linked. | 6 in 10 customer records were duplicates; roughly 1 in 3 customers had two or more profiles. | Fixed | Inflated list tier, unusable LTV · $ redacted |
| 02 | Cancels never reach emailThe subscription app stored no cancel timestamp at all — to the email platform, every lapsed subscriber looked active. | 100% of cancellations invisible to email; 3 in 10 lapsed subscribers still sat quietly on the list. | Fixed | No win-back possible on customers already paid to acquire · $ redacted |
| 03 | Renewal revenue missing from order reportingSubscription renewals billed cleanly through Stripe and never appeared where revenue was being counted. | 31% of successful charges absent from the order system. | Fixed | Revenue reporting understated by roughly one third |
| 04 | Two tools disagree on active subscriptionsThe billing ledger and the subscription app each reported a different business. | The two systems disagreed by 8% on how many active subscriptions existed. | Fixed | Churn and MRR unmeasurable · $ redacted |
| 05 | Win-back segment never messagedBefore the fix, not one email had ever been sent to a cancelled subscriber — the segment didn't exist. | 0 win-back messages in the account's history. Automated tagging + flow now running. | Live | Every lapsed subscriber lost silently · $ redacted |
Your ledger will look like this — with the dollar column filled in. That column is the sprint's whole job.