Know about the Cloudflare overage before the invoice does — and optionally stop it
A sitemap gets crawled, a Durable Object alarm loops, a migration script reads a table with no index — and the bill is $800, $4,000, $34,000 before anyone looks. Usage Guard is what I'm building for that: it would poll your account's usage every 5–15 minutes, compare it with your baseline, name the spiking metric and, if you let it, flip a switch you picked earlier. It isn't running yet. This page is a waitlist.
Join the waitlist Estimate this month's bill →
Watch
Planned: every 5–15 minutes, per metric, against your own last week: D1 rows read and written, Workers requests and CPU time, Durable Object requests and alarms, R2 Class A / B operations, KV writes, Queues operations, Workers AI neurons. A spike is relative to your baseline, not a fixed number.
Alert
Planned: email plus Slack, Discord or Telegram, with the metric, the Worker or database, and the projected cost at the current rate. Several accounts in one view, so client work and side projects don't need separate logins.
Act (optional)
You choose the stop in advance: disable a Cron Trigger, remove a route, or flip a KV flag your Worker reads to degrade itself. Needs an API token you scope and can revoke. Not in the first version — Watch and Alert ship first.
Not sure what a month of your usage would cost on Workers Paid? Run the numbers — a plain calculator, no login, shareable result.
Prefer to run it yourself? The collector is open source — a read-only Worker that writes your daily Workers / D1 / DO / KV / R2 / Queues counts into your own D1 and flags 10× spikes. MIT. Or deploy it to your account from one form; Cloudflare creates the D1 and asks for the read-only token.
Does Cloudflare already alert me when my bill spikes?
Partly. Cloudflare added Budget alerts in April 2026 and turned them on by default in July. The docs call them “informational only”: one email when spend crosses a threshold. They do not say which meter moved, and they do not pause or cap anything. Usage Guard aims at that gap; if Cloudflare closes it, you'll hear it from me.
Which meter usually causes the surprise: requests or rows read?
Rows read, in the threads I have collected. Of the eight public 2026 bill spikes I logged, seven were D1 rows read and one was a Durable Objects alarm loop; the stated amounts ran from about $176 to about $34,895. D1 meters rows scanned, not queries, so one unindexed lookup on a busy route is enough to move it.
The eight incidents, with sources →
Do I have to give Usage Guard a write token?
No, not for watching and alerting. Usage numbers come from Cloudflare's GraphQL Analytics API, which needs an Analytics token with read permission you create and can revoke. The optional Act step is the only part that needs write scope, you choose that scope yourself, and it is not in the first version. The open-source collector runs the same read-only path.
Pricing (planned)
$12 / month single account · $29 / month up to 5 accounts.
Also exploring
Routing support@ through Cloudflare and reading it in Gmail? See Routed Inbox — a small shared inbox on Email Routing, no seat pricing.
Managing Cloudflare for many clients? See Zone Audit — config drift and baseline checks across accounts.