Money · Opinion
Stop signing AI contracts that can bill you without limit while you sleep
Uncapped usage pricing hands vendors a blank cheque and treats refunds as customer service. Buyers should demand a hard default cap, in writing, in every AI deal.
In February 2024 a developer with a small Netlify site, about 200 daily users and never more than 10GB of traffic a month, received a bill for $104,500. Someone had pulled a single 3.44MB MP3 roughly 55 million times, around 190TB in total. Netlify's support team cut the bill to $5,225. Then the story spread, and the CEO waived it entirely. When I first read about it I took it as a happy ending. I now read it as uncapped billing working exactly as its designers intended.
Netlify's stated policy at the time was to keep free sites running through traffic spikes that didn't look like attacks and to forgive bills from legitimate mistakes after the fact. Look at who holds the cards under that arrangement. The vendor keeps the meter running, sends the invoice, and then decides on its own schedule how much of it to keep. The customer gets mercy if they are lucky, and full mercy if they are loud enough.
The Cara case from June 2024 shows why warning emails don't rescue anyone. Vercel billed the app an extra $96,280 for blowing through its serverless function quota. Founder Zhang said she missed Vercel's emails because she was busy putting out fires. Alerts land at the moment the person who should read them is too busy to look, which is when usage spikes happen.
Simon Willison has argued on his blog that pay-by-usage services need hard budget caps switched on by default, with an opt-out checkbox for anyone who wants to live dangerously. I agree, and I would go further for anyone buying AI capacity. A settings toggle is too weak. The cap belongs in the contract. Agents now call Bedrock or the Gemini API at machine speed, overnight, with nobody watching, and a loop that misbehaves at 2am can spend more before breakfast than a junior engineer earns in a month.
The hyperscalers have finally moved, a little. On 16 September 2026 AWS launched monthly spend limits per project, starting at $20 a month, with the project paused for the rest of the month once it hits the limit. Google Cloud launched Spend Caps in July, covering the Gemini API, Agent Platform, Cloud Run and Cloud Run Functions. I expected that after years of horror stories the defaults would flip. They haven't. The AWS limits have limited availability, need configuring and are off unless you turn them on. Google's are in public preview and apply to one project and one service at a time. AWS is generous at the front door, with no card required for most new customers and $100 in free credits, and still leaves the cap as opt-in.
The serious objection is that caps break production. AWS says it can pause the biggest cost drivers among EC2, RDS, Lambda, Bedrock and SageMaker around four days before a projected limit, and some resources may need a manual restart afterwards. Google keeps the capped service paused until a human lifts the cap. Fasthosts CEO Simon Yeoman warns that downtime brings "significant financial losses, reputational damage and diminished customer trust". All true. I still think the trade favours the cap. You can size the cost of a paused service, plan for it and set different ceilings per workload, high for the customer-facing app and low for the agent experiments. Google says its caps don't delete data or resources, so a pause is recoverable. An open-ended invoice is a number the vendor's meter picks for you, and your only appeal is the vendor's goodwill.
The incentives explain the foot-dragging. Overage is revenue. A vendor that bills without limit and forgives selectively keeps the upside of every runaway job and spends refunds only where public embarrassment demands it. Buyers have accepted this because the hyperscalers set the norm and everyone copied it. Now that AWS and Google have shown hard caps are technically possible, no AI vendor can claim they aren't.
So for every AI API or agent platform agreement you renew this year, add a clause stating that usage above the agreed monthly ceiling is not billable unless someone on your side approved it in writing beforehand, and that the service pauses at the ceiling rather than running on. Send it to your vendors this quarter. Whoever pushes back hardest on that single paragraph is the one whose margins depend on your mistakes, and I would move the next workload elsewhere.
Prompted by We’re going to need default hard budget caps on pretty much everything, Simon Willison’s Weblog.