KV session cache: about $15.00 a month on Workers Paid

A month that looks like the numbers below comes to roughly $15.00, base fee included. The meter that runs out first is KV keys written, at 300% of its included usage. Prices are the public list as of 2026-09-15; the real invoice is the only truth.

Adjust the numbers → ← Usage Guard

Estimated bill

Total per month $15.00

Workers Paid base fee $5.00

Meter closest to (or past) its included usage: KV keys written — 3M / 1M (300%)

Overages

  • KV keys written: 2M → $10.00

Usage assumed for the month

What this setup looks like

A Worker stores each session in KV and rewrites the record on every authenticated request to slide the TTL forward. Reads are cheap and plentiful. The refresh is the problem, because every refresh is a write. I assumed 8 million requests, 6 million KV reads and 3 million writes in a month, which is a refresh on a bit under half of the requests.

Why KV keys written runs out first

Workers Paid includes 1M KV writes a month, one tenth of the read allowance, and a million writes costs ten times a million reads. So a cache that writes on 40% of requests reaches 300% of its write allowance while reads stay comfortably inside theirs. KV is built for data read far more often than it changes; a session store that writes on every hit uses it against the grain.

What to watch in GraphQL Analytics

kvOperationsAdaptiveGroups splits operations by type: read, write, delete, list. Watch writes per namespace per day. If writes track requests one to one, move the refresh to a sliding window and only rewrite when less than a quarter of the TTL is left. Writes then fall to a fraction of requests instead of tracking them.

Prices and included usage copied from Cloudflare's public pricing pages on 2026-09-15. Approximate: some meters round up to the next unit, Workers AI and bandwidth are not included, and the real invoice is the only truth.

Other typical bills

Also exploring

Paying for Workers and wary of a surprise invoice? See Usage Guard — per-metric spike alerts and an optional stop switch.

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.