The single largest line item on most Cloudflare bills is not Cloudflare. It is the origin egress that Cloudflare never sees — roughly $0.09 per GB from the major clouds as of 2026, charged on every cache miss, every revalidation, every range request that slips past a cold tier. A team paying $250 a month for Business can quietly pay $900 a month to AWS for the privilege. This article gives you the explicit arithmetic behind a Cloudflare pricing calculator: the plan fees, the add-ons that surprise finance, the multipliers that break forecasts, and fully worked monthly bills at 1 TB, 10 TB and 100 TB of delivery.
Cloudflare prices per zone, not per account, and not per byte. That is the structural fact that makes Cloudflare pricing feel cheap until it isn't.
| Plan | Monthly (per zone) | Bandwidth | What actually changes |
|---|---|---|---|
| Free | $0 | Unmetered, HTML-biased | 3 page rules equivalent, no image optimization, shared TLS |
| Pro | $25 (about $20 billed annually) | Unmetered, HTML-biased | Polish, mobile optimization, WAF rulesets, 20-second analytics |
| Business | $250 | Unmetered, HTML-biased | Custom certificates, cache-by-device-type, prioritized support, 100% uptime SLA |
| Enterprise | Custom; public reference points commonly start near $5,000 | Committed, contractually defined | Bandwidth Alliance terms, custom cache keys, log push, named support |
"Unmetered" is a bandwidth policy, not a delivery license. Cloudflare's terms restrict disproportionate serving of non-HTML content — video files, ISOs, game patches, large binaries — on self-serve plans. In practice a workload that pushes tens of terabytes of MP4 or ZIP through a $25 Pro zone does not generate an overage invoice. It generates a sales conversation. That is the discontinuity every Cloudflare cost model has to encode.
Cloudflare's product surface has grown faster than most finance spreadsheets. As of 2026 these are the meters that actually move a Cloudflare bill:
Write it once and stop guessing:
Monthly total = (plan fee × zones) + [origin GB × (1 − cache-hit ratio) × egress rate] + (Argo $5 + origin GB × $0.10) + Workers ($5 + excess millions × $0.30 + CPU) + Cache Reserve (GB stored × $0.015 + ops) + Stream/Images meters + Enterprise commitment
Two inputs dominate the output: cache-hit ratio and egress rate. Everything else is noise below 10 TB. Model the hit ratio per content type, not per zone — an 88% blended number often hides 99% on static assets and 40% on a video manifest path.
Assumptions, 2026 rates: cloud origin egress $0.09/GB, Argo enabled, Workers Paid with the request volume shown, Cache Reserve holding 2 TB at 10 TB and above.
| Delivered | Plan | Hit ratio | Egress + Argo | Estimated total | Effective $/TB |
|---|---|---|---|---|---|
| 1 TB | Pro $25 | 95% | ~$4.60 + $10 | ~$45 (Workers 5M, free tier) | ~$45 |
| 10 TB | Business $250 | 94% | ~$55 + $67 | ~$413 (Workers 40M) | ~$41 |
| 50 TB | Business $250 | 90% | ~$450 + $505 | ~$1,249 | ~$25 |
| 100 TB | Enterprise ~$5,000 | 88% | ~$1,080 + $1,205 | ~$7,329 | ~$73 |
Read the last column, not the fourth. Effective cost per TB falls from $45 to $25 as fixed fees amortize, then jumps to $73 when the Enterprise floor lands. Cloudflare pricing is not a curve, it is a staircase, and the step is roughly where non-HTML volume crosses the policy threshold. If your forecast puts you within 30% of that step in the next two quarters, model both sides of it before signing anything.
Swap a cloud origin for R2 and the entire egress term collapses. At 100 TB delivered with an 88% hit ratio, 12 TB of origin pulls costs about $1,080 from AWS and $0 from R2 — you pay $0.015/GB-month for stored bytes instead. For a 5 TB library that is $75 a month against $1,080 in avoided egress. This is the single highest-leverage optimization in the Cloudflare stack, and it is the one most teams skip because it requires touching the storage layer.
The original version of this analysis compared totals. Totals are not the decision. Workload shape is.
| Workload profile | Dominant cost driver | Best home |
|---|---|---|
| Dynamic API, high RPS, low bytes | Workers requests + CPU | Cloudflare — request-priced model fits |
| Marketing site, HTML-heavy, sub-1 TB | Plan fee only | Cloudflare Free or Pro |
| VOD library, long-tail catalog, 50 TB+ | Delivered bytes, cold-tier misses | Volume-priced CDN |
| Game patch day, spiky, 100 TB in 48 hours | Peak bytes, origin fan-out | Volume-priced CDN with burst headroom |
| Software updates, large binaries, range-heavy | Origin egress from range requests | Split: Cloudflare for control plane, volume CDN for bytes |
| Live streaming, short-window, high concurrency | Stream delivered minutes | Compare Stream minute pricing against per-TB delivery |
For bulk static bytes, the honest comparison set is not Akamai. It is the volume-delivery tier: Bunny.net, CDN77, KeyCDN, Gcore, Medianova, and Fastly for streaming-specific features. Bunny.net's per-region pricing is genuinely hard to beat at low volume. CDN77 and Gcore both compete credibly on committed enterprise contracts, and Fastly's real-time purge and streaming tooling is stronger than most of the field.
Where committed volume pricing pulls ahead is the flat curve. BlazingCDN's volume tiers run $100/month for up to 25 TB (additional GB at $0.004), $350 for up to 100 TB ($0.0035/GB), $1,500 for up to 500 TB ($0.003/GB), $2,500 for up to 1,000 TB ($0.0025/GB) and $4,000 for up to 2,000 TB — $0.002 per GB, or $2 per TB at the top tier. Against the modeled $7,329 Cloudflare total at 100 TB, the same 100 TB of static delivery lands around $350. That is the difference between $73/TB and $3.50/TB, and it comes from an NVMe SSD edge with a 100% uptime record, stability and fault tolerance comparable to Amazon CloudFront, and onboarding measured in about an hour rather than a procurement cycle.
The pattern that works in production is split delivery. Keep Cloudflare where its pricing model rewards you: DNS, TLS termination, security rules, Workers at the edge, dynamic HTML. Move predictable large-object traffic — video segments, installers, patch bundles, model weights — to a per-TB provider where the marginal byte costs a fifth of a cent. Media and software teams routinely cut delivery spend by an order of magnitude without touching the security posture.
Cloudflare publishes per-product pricing pages and a Workers estimator, but there is no single tool that sums plan fees, Workers, Stream, Argo and your cloud egress into one number. The formula in this article is the calculator — plug in delivered GB, hit ratio and egress rate and you get the bill within about 10%.
For HTML-dominant traffic on self-serve plans, yes. The terms of service restrict disproportionate delivery of non-HTML content such as video and large binaries, so heavy static workloads trigger an Enterprise conversation rather than an overage line. Treat "unmetered" as a policy boundary you should model, not a guarantee.
Origin egress, because it appears on the cloud provider's invoice rather than Cloudflare's. A 90% cache-hit ratio on 50 TB still means 5 TB of origin pulls at roughly $0.09/GB, or about $450 a month. Argo at $0.10/GB on that same origin traffic often doubles it.
Practically, when non-HTML bytes dominate delivery, when you need custom cache keys or contractual SLAs, or when you exceed the volume your account team is comfortable serving on Business. Public reference points commonly start near $5,000 per month as of 2026, negotiated against committed volume.
If large static objects dominate your traffic and your blended delivery cost exceeds roughly $10 per TB, run the split-CDN comparison. At $5/TB down to $2/TB for committed volume, the arithmetic usually favors moving bulk bytes and keeping the security and compute layer where it is.
R2 charges no egress fees, which removes the cloud egress term from the formula. You still pay about $0.015 per GB-month for stored data plus Class A and Class B operation charges, so the saving depends on your read-to-store ratio. For catalogs read far more often than they are written, it is decisively cheaper.
Pull 90 days of logs and compute three numbers: delivered bytes segmented by content type, cache-hit ratio per segment, and your actual cloud egress charge attributable to CDN misses. Then rerun the formula above with your real hit ratio instead of the dashboard average. Most teams discover that 5% of their URL space produces 60% of their origin cost, and that the fix is a cache key normalization rule rather than a new contract. If your effective delivery cost lands north of $10 per TB on static assets, model the split architecture and put a per-TB provider in front of the bulk paths for one release cycle. What does your hit ratio look like when you segment by extension instead of by zone?