billflare.

Estimating a SaaS bill on Cloudflare Workers by billing unit, not by MAU

李辰 of 小李出海笔记 argues that a Cloudflare SaaS bill cannot be read off monthly active users and walks through Workers, D1, R2, Workers AI and Vectorize by their own billing units, with an estimation template and a checklist.

Products
WorkersD1R2Workers AIVectorize
Source
Author experience小李出海笔记 (xiaoliblog.com)
Author
李辰

Key points

  • The author says an estimate has to separate dynamic Worker requests, CPU ms, D1 rows read and written, R2 Class A and B operations and GB-months, Workers AI Neurons and Vectorize dimensions, because the same MAU can produce very different bills; he says the prices were rechecked against the official pages on May 24, 2026 and that older MAU-based bill ranges without sources were removed.
  • For Workers he treats $5 as the base and bills extra requests and CPU ms separately, citing Cloudflare’s example of 15 million requests at 7 ms each costing about $8 a month, and notes static asset requests are not billed as invocations. Cloudflare’s current Workers pricing page shows the same example totaling $8.00.
  • For D1 he warns that scanned rows, not returned rows, are billed, so index the filter and sort combinations you use, prefer cursor pagination, and pre-aggregate reports with Cron; for R2, egress is free but operations are not, so images or downloads that bypass the cache keep generating Class B reads, and Infrequent Access adds retrieval fees, higher operation prices and a 30-day minimum. Cloudflare’s current R2 pricing page lists Standard at $0.015 per GB-month, Class A at $4.50 and Class B at $0.36 per million.
  • His checklist: track dynamic requests separately from static ones, sample real CPU ms, find the queries with the highest rows_read from the D1 meta object, put a cache in front of R2, log the model, tokens and Neurons of each Workers AI call, write down Vectorize dimensions and topK, and keep a column with the date each price was checked against the pricing pages.

Original sources

  1. Last updated

    Estimating a SaaS bill on Cloudflare Workers by billing unit, not by MAU

    Open original source

    李辰 of 小李出海笔记 argues that a Cloudflare SaaS bill cannot be read off monthly active users and walks through Workers, D1, R2, Workers AI and Vectorize by their own billing units, with an estimation template and a checklist.

Community resourceWorkers +3

Cloudflare Cost Guard: a read-only agent skill for runaway-billing audits

Layer Cache’s open-source agent skill, announced by Domenico (@purposelyblnk), audits a Cloudflare codebase from source alone for paths that can run up uncontrolled billable usage, and reports findings without changing code or calling Cloudflare.

D1

CloudPrinters.sa: an auth refresh-token bug drove about 2 billion D1 writes and a ~$2,078 charge.

Community user salman1 says D1 normally costs CloudPrinters.sa nothing, but over the August 16 to September 15, 2026 cycle an auth bug rewrote one account's entire refresh-token history every time a stale token was retried, generating roughly 2 billion D1 writes. He says the revoke logic and retry loop were fixed and that a billing ticket requests a courtesy credit for the D1 write overage of about $2,078.

Author experienceWorkers +10

How I keep Cloudflare under $5: where surprise bills come from

Ashish Sharma (@sarmaasis) runs several sites on the $5 Workers Paid plan and lists, product by product, the usage patterns he says quietly run up a Cloudflare bill, ending with a 12-item checklist.