Subscription audit bot
A small system that watches the card and bank feed for recurring charges, groups them into subscriptions, works out who owns each one and what it is for, and asks that person a single question before each renewal. It cannot cancel anything and does not try. Seven posts on the same system — one diagram at a time — with a cost breakdown and an engineering reference at the end.
- 01
A subscription audit bot on AWS for a few dollars a month
The whole system on one page — a grouper, an attributor and an asker — plus the constraint that keeps it safe: it holds no credentials and can cancel nothing.
- 02
How the transaction feed arrives
Three lanes for a transaction feed and one hard boundary: read-only, always. Plus the line-level fingerprint that makes re-uploading an overlapping export harmless.
- 03
How charges become a subscription
Merchant names are inconsistent and amounts drift, so grouping happens on interval. Four patterns cover almost everything, and the annual one is both the hardest to spot and the most worth spotting.
- 04
How a subscription gets an owner
Three ways to attribute a subscription, how a merchant string becomes an actual product name, and why an unowned subscription is the most valuable output the system has.
- 05
How the renewal question works
One question per subscription per year, timed to land thirty days before the renewal, quoting what was said last time — and why asking more often destroys the whole thing.
- 06
What the subscription audit bot costs
About $2 a month. One Bedrock read per merchant is the only line that grows; the queue, the table, the mail and the storage are rounding errors. Plus the three ways the bill could surprise you.
- 07
Engineering reference: the subscription audit bot architecture
Same system, drawn purely for engineers. Service names, region, Lambda inventory, IAM scopes, the schemas and the exact model id.
Frequently asked questions
- What is a subscription audit bot?
- A small serverless system that reads your card and bank feed, spots the charges that repeat, groups them into subscriptions with an owner and a purpose, and asks the owner one question shortly before each renewal. It never cancels anything; it makes the decision visible while there is still time to make it.
- Why not just look at the card statement?
- Because a statement is a flat list of charges and a subscription is a pattern across months. A £14 charge in March means nothing; the same £14 charge in twelve consecutive months from a merchant nobody recognises is £168 a year and a question. Spotting the pattern is the work.
- How does it know who owns a subscription?
- Three ways, in order: an owner tab you fill in as things are found, the person whose card it is on, and — if neither is available — it asks. An unowned subscription is the most common finding in the first month and the most valuable one.
- Can it cancel anything?
- No. It has no credentials to any of these services and deliberately never will. Its whole output is a question to a person before a renewal, and a record of what they said.
- What does it cost to run?
- A few dollars a month. The volume is a few hundred transactions a month, which is nothing. See part six.