Subscription Audit
Made for anyone leaking money on forgotten subscriptions.
A workbook for listing every subscription, what it really costs a year, how often it gets used, and which ones are worth cancelling. The summary carries a chart that redraws itself as you type.
- Tabs
- 3
- Columns
- 21
- Fill themselves in
- 19
£7one payment, yours to keep
- Opens in Excel, Google Sheets and Numbers
- Delivered straight away
- No macros, nothing to install
- Change it free before you buy
Payment is handled by Stripe. Your card details go to them and never to us. Sales are final, which is why every tab, column and calculation is shown on this page first.
Everything inside, before you pay
This is the whole design: every tab, every column and how each calculated one is worked out. White cells are yours to fill in; the shaded ones work themselves out and are locked so a formula cannot be overwritten by accident. There is room for 920 rows.
Subscriptions
| Column | Type | Worked out as |
|---|---|---|
| Service | text | |
| Category | choice (list) | |
| Status | choice (list) | |
| Cost Per Bill | currency | |
| Billing Cycle | choice (list) | |
| Next Renewal | date | |
| Paid By | choice (list) | |
| How Often Used | choice (list) | |
| Last Used | date | |
| Cost A Month | currency | IF(OR(ISBLANK([cost]),ISBLANK([billing_cycle])),"",ROUND([cost]*IF([billing_cycle]="Weekly",52,IF([billing_cycle]="Quarterly",4,IF([billing_cycle]="Annual",1,12)))/12,2)) |
| Cost A Year | currency | IF(OR(ISBLANK([cost]),ISBLANK([billing_cycle])),"",ROUND([cost]*IF([billing_cycle]="Weekly",52,IF([billing_cycle]="Quarterly",4,IF([billing_cycle]="Annual",1,12))),2)) |
| Uses Logged | number | IF(ISBLANK([service]),"",SUMIF([Usage Log!service],[service],[Usage Log!sessions])) |
| Cost Per Use | currency | IF(OR(ISBLANK([service]),ISBLANK([cost]),ISBLANK([billing_cycle])),"",IF([uses_logged]=0,[annual_cost],IFERROR(ROUND([annual_cost]/[uses_logged],2),0))) |
| Days To Renewal | number | IF(ISBLANK([renewal_date]),"",[renewal_date]-TODAY()) |
| Days Since Used | number | IF(ISBLANK([last_used]),"",TODAY()-[last_used]) |
| Verdict | text | IF(OR(ISBLANK([service]),ISBLANK([cost]),ISBLANK([billing_cycle])),"",IF([status]="Cancelled","Already cancelled",IF([usage_rating]="Never","Cancel: never used",IF(AND([usage_rating]="Rarely",[annual_cost]>40),"Cancel: poor value",IF(AND([uses_logged]>0,[cost_per_use]>10),"Review: costly per use","Keep"))))) |
Usage Log
| Column | Type |
|---|---|
| Date | date |
| Service | choice (from Subscriptions › service) |
| Sessions | number |
| Minutes | number |
| Notes | text |
Summary
| Measure | Worked out as |
|---|---|
| Active subscriptions | COUNTIF([Subscriptions!status],"Active") |
| Total cost a year (active) | SUMIF([Subscriptions!status],"Active",[Subscriptions!annual_cost]) |
| Total cost a month (active) | SUMIF([Subscriptions!status],"Active",[Subscriptions!monthly_cost]) |
| Average cost a year per subscription | IFERROR(SUMIF([Subscriptions!status],"Active",[Subscriptions!annual_cost])/COUNTIF([Subscriptions!status],"Active"),0) |
| Flagged to cancel | COUNTIF([Subscriptions!verdict],"Cancel: never used")+COUNTIF([Subscriptions!verdict],"Cancel: poor value") |
| Yearly saving if you cancel them | SUMIF([Subscriptions!verdict],"Cancel: never used",[Subscriptions!annual_cost])+SUMIF([Subscriptions!verdict],"Cancel: poor value",[Subscriptions!annual_cost]) |
| Worth a second look | COUNTIF([Subscriptions!verdict],"Review: costly per use") |
| Most expensive subscription | IFERROR(INDEX([Subscriptions!service],MATCH(MAX([Subscriptions!annual_cost]),[Subscriptions!annual_cost],0)),"") |
| Its cost a year | IFERROR(MAX([Subscriptions!annual_cost]),0) |
| Renewing in the next 30 days | COUNTIFS([Subscriptions!days_to_renewal],">=0",[Subscriptions!days_to_renewal],"<=30") |
| Active with nothing logged | COUNTIFS([Subscriptions!uses_logged],"=0",[Subscriptions!status],"Active") |
| Sessions logged in total | SUM([Usage Log!sessions]) |






