AI Guides › Step-by-step guides

The Quarterly Subscription Audit: Test Each Renewal Against Something You Have Built

By Nigel Guy · 9 min read

Renewals happen by default. Nobody has to decide anything for the card to be charged again, so tools you signed up for in a busy month stay on for years. Once you can build small things with Claude Code, the usual mistake flips the other way: you get excited, cancel five tools on a Sunday and spend the next fortnight rebuilding them badly while invoices go unsent. Both feel productive. Neither is an audit.

The rule: question every renewal against what you actually use it for, and cancel only after the replacement has done that job for real at least once.

This guide is a twenty-minute check you run once a quarter. It is not a promise that Claude Code replaces your software stack. Most of what you pay for should stay.

Before you start

You need Notes
12 months of bank and card statements Most UK banking apps export CSV. Annual renewals only show up once a year, so three months is not enough.
Your phone's app-store subscription list iPhone: Settings → [your name] → Subscriptions. Android: the Subscriptions page in Google Play. App-store billing often doesn't appear under the tool's name on your statement.
A Claude plan that includes Claude Code Claude Code comes with Pro, Max, Team and Enterprise, but not the Free plan. Anthropic lists Pro at $20 a month (or $17 a month billed annually). Your price in pounds shows at claude.ai/upgrade. Whether tax is included in that figure depends on your region, so check there and don't rely on a converted figure. At time of writing.
A spreadsheet One row per subscription. You'll call this the Renewal Ledger.

Claude Code is itself a subscription, so it goes in the ledger too.

Step 1 — Build the Renewal Ledger

Go through the statements and the app-store list and give every recurring charge a row with these columns: Name, Cost per year (£), Renewal date, How it's billed (card / app store / invoice), What I actually use it for, Who else depends on it.

Fill in "What I actually use it for" in one plain sentence about your own use. Don't copy the product's description. "Converts about four PDFs a month to Word" is useful. "Document productivity platform" isn't.

To speed this up, you can strip the CSV down first. Remove card numbers, account numbers and anything about other people, then hand it to Claude with this prompt:

You are helping me audit my recurring spending. I will paste a bank/card export with personal identifiers removed.

Goal: a table of every charge that looks recurring (monthly, quarterly or annual), so I can review each one.

Input:
[PASTE_REDACTED_CSV]
My time window: [START_DATE] to [END_DATE]

Steps:
1. Group charges by merchant, allowing for small differences in merchant names.
2. Flag a merchant as recurring only if it appears at a regular interval or the description clearly says subscription or renewal.
3. Work out the annual cost in pounds from the charges you can see. Do not estimate charges you cannot see.
4. List anything you are unsure about separately, with your reason.

Output: a Markdown table with columns Merchant | Interval | Charges seen | Annual cost (£) | Next likely renewal | Confidence (high/medium/low). Then a short "Unsure" list.

Rules: do not guess what a merchant sells. If a name is ambiguous, say so. If the window is under 12 months, warn me that annual renewals may be missing. If the data I paste is missing dates or amounts, ask me for them before producing the table.

Before answering, check that every row is backed by at least two charges or an explicit renewal description.

Fill in the redacted CSV and the date range. Check the result against your statements yourself, because the model will miss things and merge merchants that are actually different.

Step 2 — Sort each row into keep, question or replace-candidate

Most rows end up as keep. Keep anything that does one of these:

Only the rows left over get questioned. In practice they tend to fall into five kinds:

Kind What it usually is What a build replaces it with The catch
1. Single-purpose utilities Converters, resizers, renamers, PDF splitters you use a few times a month A small local script You keep it working when file formats or libraries change
2. Paid glue for simple internal hand-offs An automation subscription moving data between two of your own tools A scheduled script or one webhook Nobody tells you when it fails unless you add an alert
3. Reporting add-ons A dashboard that rearranges data you can already export A script that turns the export into a summary It only knows what's in the export
4. Builders for simple, static pages A page or link builder for something that rarely changes A static page you host yourself Forms, cookies and anything that collects personal data bring UK GDPR duties with them
5. Thin AI wrappers A tool that is mostly a prompt sitting on a model you already pay for elsewhere A saved prompt, a project or a Claude Code skill The wrapper may include data, integrations or guarantees that the prompt doesn't

Mark a row replace-candidate only if it fits one of these kinds and nobody except you depends on it.

Step 3 — Scope the replacement before you build it

For each replace-candidate, write the smallest description of the job that would let you cancel. Then use this prompt in Claude Code, inside an empty project folder:

You are a careful engineer helping me decide whether to replace a paid tool with something small I maintain myself.

The tool: [TOOL_NAME]
What I actually use it for: [ONE_SENTENCE_JOB]
How often: [FREQUENCY]
Data it touches: [DATA_TYPES, e.g. "client invoices", "my own photos"]
Where it must run: [MY_LAPTOP / A_SERVER_I_HAVE / UNSURE]

Steps:
1. Restate the job in one sentence and list the inputs and outputs.
2. Propose the simplest replacement, preferring a local script over anything hosted.
3. List what I would now be responsible for: updates, failures, security, backups, personal data.
4. Estimate my ongoing maintenance in plain terms (none / occasional / regular). Do not invent hours.
5. Give a verdict: build, keep paying, or need more information, with the reason.

Do not write any code yet. If any of my inputs are missing or vague, ask me before you give a verdict.

Before answering, check whether your verdict would change if the tool failed silently for a month. If it would, say so.

Fill in the five bracketed fields. If the verdict is "keep paying", accept it. That's the audit doing its job.

Step 4 — Build, then run it in parallel

Build only the replacements that got a "build" verdict, one at a time. Keep the paid tool active while the new version does the real job alongside it at least once, and ideally for one full cycle of whatever it does. Compare the two outputs.

This step is there to stop the most expensive mistake on the list: cancelling before you've built the replacement. If you cancel first, you end up building under pressure, you skip the edge cases, and you often lose data you didn't know only the old tool held.

Step 5 — Export, then cancel well before the renewal

Before you cancel, export everything the tool holds, including history, settings and templates. Cancel through the same route you were billed by. App-store subscriptions are cancelled in the app store, not on the vendor's website.

For Claude itself, if you ever need to: Settings → Billing → Cancel on the web or desktop app. Anthropic asks you to do this at least 24 hours before your next billing date, and access continues until the end of the period you've paid for. Most vendors work in a similar way, so allow a few days' margin and don't cancel on the renewal date.

Put the next audit date in your calendar, three months from today.

Check it worked

What to skip

Guardrails

Sources

All 751 AI guides · JulieMango plans from £17/mo