cf-ledger: Where Your Cloudflare Money Goes
Cloudflare bills per account, not per application. When you run a dozen projects in one account like I do, the invoice tells you exactly what you spent and absolutely nothing about where it went.
cf-ledger fixes that. It snapshots your account’s usage daily, attributes it per application in real dollars, and serves a dashboard behind Cloudflare Access.
The useful part is the attribution, not the charts. Workers, KV, D1 and R2 all report usage differently and none of them arrive tagged with “this belongs to project X”. Mapping resources back to applications is the whole job, and being honest about the leftover you can’t attribute matters just as much, because that shared bucket is usually where the cost leak turns out to be hiding.
There are two ways to run it. The hosted version at cf-ledger.klappe.dev needs no install: you paste a read-only API token, it stays in your browser and is never stored on the server. It’s stateless, so no saved history. If you want an always-on instance with month-over-month history, host it yourself.