The four signals we surface
A real subscription audit produces four signals, and almost every dollar worth canceling shows up in one of them. Bookwren surfaces all four from the same normalized ledger the categorized feature produces, so the audit runs on data that is already cleaned and grouped.
Price creep on a long-running plan: the earliest amount and the latest amount are rarely the same. SaaS vendors raise prices in small steps — a three-dollar change spread across two years — and the human eye does not catch it. The audit computes the delta in cents and as a percentage and surfaces any subscription whose latest charge is meaningfully higher than its earliest, even at a steady cadence.
Duplicates after a rebrand: two services you forgot were the same service. The audit pairs any two merchant names whose normalized forms substring-overlap and that both charged in the last ninety days — "aws" inside "amazon web services", "notion ai" next to a bare "notion" workspace. The duplicate badge names the paired merchant so you can cancel the wrong one immediately.
Charge drift outside the expected cadence: a monthly tool that charged twice this month, a quarterly tool that charged in month three instead of four. These are the receipts that show up as anomalies in your monthly close. The audit labels each subscription with a cadence bucket — Weekly, Monthly, Quarterly, Annual, Irregular — so off-cadence charges are visible without you having to chart them by hand.
The trial that quietly converted: the most expensive audit signal. A free trial that turned into a paid plan "just to be safe" — and has been billing every month since. The audit surfaces these by comparing the first charge amount to zero and flagging the subsequent cadence. If you did not intend to keep it, you save a full year of the plan's cost by canceling in the first three billing cycles.
How the audit runs
The audit reads the last 180 days of receipts from the categorized ledger, groups charges by normalized merchant, and produces one row per subscription. Each row carries a cadence label (Weekly, Monthly, Quarterly, Annual, Irregular), the median gap between charges, the latest vs earliest amount, and a duplicate flag for any two case-folded merchant names whose normalizations overlap inside the last ninety days.
It is the same lens a bookkeeper applies by hand, just applied to every charge in your inbox instead of the three you remembered to ask about. The audit runs on demand — at close, when you ask for a refresh, or whenever a new month's receipts land. The result is sortable (duplicates first, then by charge count, then by latest dollar amount) and exportable as a CSV your accountant can drop straight into QuickBooks.
What you do with the table
The audit table is meant to be acted on, not just looked at. Sort by duplicate badge to find the cancel-by-this-week rows first; sort by latest amount to find the largest subscriptions you are still paying for; sort by charge count to find the long tail of small recurring merchants you forgot existed.
Every row links back to the underlying charges — click through and you see the receipts the audit grouped, with the original Gmail thread preserved for context. Cancel from the source, mark the row resolved in the audit, and Bookwren stops surfacing it on the next pass. The audit is a working tool, not a monthly report that goes in a folder.
Where the audit fits in the monthly close
The audit belongs upstream of the monthly close — duplicates and price creep should be gone before the close packet is assembled. Bookwren runs the audit before it runs the close, so the packet your accountant opens is already free of the charges you intended to cancel.
The pricing page walks through which tier covers the audit on its own — Solo Free for the freelancer who wants to see the table without committing to the full packet — and which tier bundles it with the monthly close as a single monthly handoff.
See also
Try it on your inbox
Sign in with the Gmail you want Bookwren to watch — the inbox is the integration.