Everyone publishes their ROI. Almost nobody publishes the invoice. I find that suspicious, so here's ours: twelve months, nine vendors, every line item, including the ones that make me wince.
Context, so you can scale it to your situation: 60-person creative agency, about 40 of whom touch an AI tool in a given week. We're not a tech company. We had no AI budget at all in 2023.
The headline number
£31,480 across twelve months. That's £2,623 a month on average, or £43.72 per employee per month across the whole company.
It didn't arrive evenly. Month one was £610. Month seven was £4,905. Month twelve was £2,180, which is where we've settled after some deliberate pruning.
Where it all went
| Vendor / line | What it's for | 12-month total | % of spend |
|---|---|---|---|
| Claude (Team seats) | 28 seats, writing and long-document work | £8,940 | 28.4% |
| Anthropic API | Invoice agent, support drafting, internal tools | £5,610 | 17.8% |
| OpenAI API | Research pipeline, classification, embeddings | £4,220 | 13.4% |
| ChatGPT (Team seats) | 12 seats, mostly design and new business | £3,380 | 10.7% |
| Meeting note-taker | Transcription and summaries, 34 seats | £3,060 | 9.7% |
| Vector database (managed) | Internal knowledge search | £2,110 | 6.7% |
| Design/image tooling | Concepting, moodboards, upscaling | £1,740 | 5.5% |
| Hosting (n8n VPS + backups) | All automation, self-hosted | £396 | 1.3% |
| Abandoned pilots & trials | Five tools we tried and dropped | £844 | 2.7% |
| The overnight incident | See below. I'm still cross about it. | £1,180 | 3.7% |
| Total | — | £31,480 | 100% |
The £1,180 night
Month seven. Someone — and I genuinely don't mind who, we've agreed not to name them — was testing a content pipeline that summarised a document, then asked a second model to critique the summary, then fed the critique back for a rewrite. Sensible idea. No loop limit. No spend cap on that key.
It ran from about 18:40 on a Thursday until I opened the dashboard at 08:15 on Friday. Thirteen and a half hours of two models talking to each other about a 40-page brand guideline document, getting steadily more thorough.
The thing that stings isn't the money. It's that the depth counter Tobi wrote about in the handoff loops thread is twenty lines of code and we'd read that thread. We just hadn't applied it to the "harmless internal experiment" category. There is no such category.
The monthly shape
| Month | Spend | What changed |
|---|---|---|
| 1–2 | £610, £890 | Six people on individual Pro seats. Cheerful chaos. |
| 3–4 | £1,740, £2,260 | Moved to Team plans. Started building the invoice agent. |
| 5–6 | £2,880, £3,410 | Support drafting live. API spend overtakes seats for the first time. |
| 7 | £4,905 | The overnight incident, plus two abandoned trials running simultaneously. |
| 8–9 | £3,150, £2,760 | Caps and alerts everywhere. Prompt caching turned on. |
| 10–12 | £2,410, £2,285, £2,180 | Seat audit, model routing, two tools cancelled. Settled here. |
The four changes that cut 38% off the peak
1. Prompt caching (biggest single win, ~£480/month)
Our support drafting prompt has a stable 4,000-token preamble — house style, escalation rules, example replies. We were paying full input price for it on every single call. Caching it took Tobi an afternoon.
2. Model routing (~£310/month)
Not everything needs the expensive model. Classification, routing and "is this email angry?" all run on a small model now. Only customer-visible prose gets the frontier one. Quality on our eval set moved by less than a point.
3. A seat audit (~£420/month)
This was the uncomfortable one. Of 47 paid seats, 11 hadn't been used in 30 days. We didn't cancel them immediately — we asked. Four people said "I forgot I had it", five said "I didn't know what I was allowed to use it for", and two genuinely needed it and had just been on leave. So we ran a training session, then cancelled seven seats a month later.
The five "didn't know what I was allowed to do" answers led directly to Marla's one-page AI policy, which is a nice example of a cost exercise producing a non-cost outcome.
4. Tagging every API call (~£0/month directly, priceless indirectly)
Every request now carries a project tag. I can answer "what does the invoice agent cost us?" in about eight seconds instead of an afternoon of squinting. Two of our cancellations happened purely because tagging made a low-value workload visible.
What we got back
I'm a finance person, so I'll be careful here. Some of these are measured, some are estimated, and I've marked which is which.
| Benefit | Annual value | Confidence |
|---|---|---|
| Debtor days 47 → 31 (working capital released) | ~£48,000 one-off | Measured |
| 11 hrs/week of my time back | ~£16,500 | Measured |
| Support first-response 4h10 → 1h50 | Not monetised | Measured, value estimated |
| Content team output +31% at same headcount | ~£62,000 of capacity | Estimated, and I'd discount it |
| Two proposals we'd have declined on capacity grounds | £71,000 won | Anecdotal but real |
Even taking the pessimistic view and throwing out the soft numbers entirely, the measured items alone comfortably clear £31,480. I'd sign it off again.
Crew verdict
The bill is real and it's bigger than the vendor pricing pages suggest, because seats aren't the story — API usage and forgotten trials are. Budget for roughly double what a naive seat calculation gives you in year one, then expect to claw a third of it back once you've got caps, caching, routing and tagging in place.
And set the spend cap. I will keep saying this until everyone in the forum is bored of me.
The five-line checklist I now run monthly
- Any seat unused for 30 days? Ask the person before you cancel.
- Any API key without a spend cap? Fix today.
- Any workload without a project tag? Fix this week.
- Any line item that grew more than 20% month-on-month? Find out why before the next invoice.
- Any trial still running past its decision date? Kill it or commit to it.
Replies (39) — highlights
Want the spreadsheet template?
I keep a simple monthly tracker with the tagging structure and the five-line checklist built in. Ask and I'll send it — it's a Google Sheet, no forms, no follow-up.
Request the tracker → Read the pilot post-mortem