Why this matters

CDN egress is the single largest variable cost in a streaming product, and the gap between the cheapest plausible bill and the most expensive plausible bill for the same workload is roughly 30×. Get the model wrong, and you either over-pay six figures a month at scale or under-quote a customer contract and erode the margin you sold. Every founder, finance lead, and architect has the same need: a defensible monthly estimate before procurement opens, with numbers you can show a CFO. This calculator returns one in under a minute, and the article below explains the formula, the billing models, and the traps that surprise teams the first time they read a real CDN invoice.

Use the calculator. The rest of this article explains what the numbers mean.

How CDN billing actually works, in one paragraph

A content delivery network — abbreviated CDN — is a chain of edge servers, owned by a provider, that caches your video close to your viewers. You upload a stream once to the CDN's origin; the network delivers it many times to many viewers. The provider bills you on three signals: bytes delivered out of the edge (egress, measured in gigabytes), requests handled (HTTP GETs for manifests and segments, measured in millions or in tens of thousands), and regional surcharges (a byte delivered into Sydney costs more than a byte delivered into Frankfurt because the path is longer and the peering is thinner). On top of those three, the commercial model shapes the invoice: pay-as-you-go bills the raw signals each month with no commitment; a commit-and-overage contract sets a monthly floor in exchange for a discount and bills overage on top; 95th-percentile bandwidth bills your peak sustained throughput, not your total bytes — common for raw-IP transit and for some streaming CDNs. The calculator below works in all three modes.

Figure 1. The four signals that produce a CDN invoice. Egress dominates at every scale; requests and regional surcharges become material as the catalogue grows.

The five inputs the calculator asks for

The calculator's left panel asks five questions. Each one moves the monthly bill by a known multiplier.

Input 1 — Concurrent viewers and viewing minutes

The volume model is the same for every CDN: gigabytes delivered = concurrent viewers × bitrate × hours, with unit conversions. The math is two lines, and the calculator shows it on every recompute so you can audit the result.

bytes_per_viewer_per_second  = bitrate_mbps × 1,000,000 / 8
bytes_per_viewer_per_hour    = bytes_per_viewer_per_second × 3,600
gigabytes_per_viewer_per_hour = bytes_per_viewer_per_hour / 1,000,000,000

For a 4 Mbps average bitrate (typical for 1080p with H.264), one viewer transfers 1.8 GB per hour. Ten thousand concurrent viewers each watching for one hour transfer 18,000 GB — 18 TB. Multiply by your CDN's per-GB rate and you have the bandwidth line.

The calculator splits between two workload shapes. Live is one stream watched concurrently — the headcount in the input box is peak concurrent viewers and the duration is event length. VOD (video on demand) is a catalogue watched at distributed times — the headcount is monthly active viewers and the duration is average minutes per viewer per month. Internally both reduce to "GB delivered per month", but the live model uses 1 GB/viewer-hour at 1080p as a peak-load anchor for capacity planning, while the VOD model uses monthly totals.

Input 2 — Average bitrate (the lever that swings the bill)

The bitrate input is the single largest lever in the model. Doubling bitrate doubles the bandwidth bill linearly. Triple-bitrate sports (15 Mbps for HDR 4K) at one million viewer-hours per month delivers 6.75 PB; a 720p H.264 service at 2 Mbps at the same viewer-hours delivers 900 TB — a 7.5× difference for the same audience. The calculator pre-populates four typical averages — 1.5 Mbps (mobile-heavy SVOD), 4 Mbps (1080p H.264 SVOD), 6 Mbps (1080p HDR or 4K with AV1), 15 Mbps (4K HDR with H.264). Each is reproduced from the Bitmovin 2025 Video Developer Report and Mux's 2025 streaming-cost survey; you can override with your own number.

Input 3 — Region mix

CDNs bill by region, and the gap is wider than first-time buyers expect. Amazon CloudFront's list price in 2026 is $0.085/GB in North America and Europe for the first 10 TB; $0.170/GB in South America; $0.114/GB in Australia and New Zealand; $0.094/GB in Asia-Pacific (Singapore, Japan, India, Korea); and roughly $0.110/GB in Middle East and Africa. Fastly's list runs $0.12/GB in the cheap regions and $0.28/GB in Brazil. The calculator asks you to set the percent of traffic per region, then weights the per-GB rate accordingly. Default mix is 50% North America + Europe, 20% Asia-Pacific, 15% Latin America, 10% Middle East / Africa, 5% Australia. Tilt the slider toward your real audience.

Input 4 — Request count multiplier

A live HLS stream emits four to six segment requests per viewer per second of stream when running at 2-second segments with three to five renditions in flight. A VOD viewer at 6-second segments emits one request every six seconds plus periodic manifest refreshes. The calculator estimates monthly request count as:

requests_per_viewer_per_hour = segments_per_hour × renditions_in_flight + manifest_refreshes
                             = (3600 / segment_duration) × 1.05  (single rendition flight)

For a 2-second-segment HLS workload, that's about 1,890 requests per viewer-hour. At 50 million viewer-hours per month, the model produces 94 billion requests. At CloudFront's HTTPS rate of $0.0100 per 10,000 requests in North America and Europe (May 2026), 94 billion HTTPS requests is $94,000 in request charges alone — comparable in size to a 1 PB egress bill. The calculator surfaces this number on the summary line so request economics never get hidden.

LL-HLS (low-latency HTTP Live Streaming) magnifies the request count further. The protocol splits each segment into 200-400 ms parts, each fetched by a separate HTTP request — so a 6-second segment is now twelve requests instead of one. A naive switch from HLS to LL-HLS triples to quadruples request count without changing bytes. Set the calculator's "Live latency profile" to LL-HLS and see the request line jump.

Input 5 — Commercial model

The calculator runs three commercial models in parallel for each provider:

Pay-as-you-go. Raw price × volume, with the tiered discounts each provider publishes. CloudFront drops from $0.085/GB to $0.080 at 10 TB, $0.060 at 50 TB, $0.040 at 150 TB, etc. The calculator applies the tiered schedule each provider publishes.

Commit-and-overage. You commit to N TB per month at a discounted rate; usage above N is billed at the overage rate. CloudFront's Private Pricing typically discounts list by 30-60% for committed-use plans introduced in late 2025 according to public disclosures. The calculator lets you set a commit volume and applies a 40% list discount as the default — toggle it to your contracted number.

95th-percentile bandwidth. Common at raw-IP transit providers and at some streaming CDNs (notably KeyCDN's "high-volume" tier and Bunny's Volume Network on bandwidth terms). The model bills on your peak sustained Mbps after dropping the top 5% of 5-minute samples in a billing month. The calculator estimates peak Mbps from your concurrent-viewer × bitrate product, then prices it at the per-Mbps rate you set. For a workload with steady audience, 95th-percentile bandwidth is the cheapest model. For a workload with one or two short peaks per month (sports finals, product launches), 95th-percentile is a gift — the top 5% of samples can absorb up to 36 hours of monthly burst without overage charges, per the standard burstable-billing definition.

The seven CDNs the calculator scopes against

The calculator seeds with seven providers, chosen because they cover the realistic decision space for a 2026 streaming product. List prices are published rates as of May 2026; real contracts negotiate off list.

ProviderList rate (NA/EU, first 10 TB)Pricing modelBest fit
Amazon CloudFront$0.085/GB + $0.010/10K HTTPSPay-as-you-go, tiered, commitAWS-native pipelines, integrated origin
Cloudflare StreamBundle ($1/1K minutes delivered)BundledAll-in pricing for SVOD/UGC
Fastly~$0.12/GB + $0.0075/10KPay-as-you-go, tieredEdge compute, live latency-sensitive
Akamai AMDNegotiated, ~$0.04–0.08/GB at scaleCommitTier-1 enterprise OTT, broadcast
EdgioNegotiatedCommitTelcos, sports leagues
BunnyCDN Volume$0.005/GBPay-as-you-goCost-sensitive UGC, mid-tier OTT
KeyCDN$0.04/GB flatPay-as-you-go flatSimple workloads, no procurement overhead
The calculator returns the monthly bill for all seven side-by-side, sorted by cost. The cheapest plausible bill at any scale is roughly 30× lower than the most expensive plausible bill for the same workload. Cloudflare Stream is presented as a bundled minutes model because the published rate is per minute delivered, not per GB; the calculator converts internally. Figure 2. The same workload, seven providers, list prices applied. Real contracts move the bars by 30–60% — this chart sizes the negotiation range.

A worked example: SVOD with one million MAU

Pick a typical 2026 subscription video-on-demand service. One million monthly active viewers, each averaging 90 minutes a day, 30 days a month — 2,700 minutes per viewer per month, or 45 hours. Half the audience streams at 1080p H.264 (4 Mbps), half at 720p H.264 (2 Mbps). Region mix is 60% North America + Europe, 20% Asia-Pacific, 15% Latin America, 5% other. HLS at 6-second segments, three renditions in flight on average. Pay-as-you-go billing.

Plug those into the calculator. It returns:

viewer_hours_per_month        = 1,000,000 × 45 = 45,000,000
average_bitrate               = (0.5 × 4) + (0.5 × 2) = 3 Mbps
gigabytes_per_month           = 45,000,000 × 3 × 3600 / 8 / 1,000,000,000
                              = 60,750,000 / 1,000 = 60,750 / 1.0 = 60,750 TB / 1000 — wait
                              = 45,000,000 × (3 × 3600 / 8) / 1,000,000,000 GB
                              = 45,000,000 × 1,350,000 / 1,000,000,000
                              = 60,750,000 GB = 60.75 PB

Wait — the bit-rate-to-byte conversion shows the trap that catches every first-time buyer. Re-derive carefully:

3 Mbps × 3600 s = 10,800 megabits per viewer-hour
10,800 Mb / 8 = 1,350 megabytes per viewer-hour = 1.35 GB per viewer-hour
1.35 GB × 45,000,000 viewer-hours = 60,750,000 GB = 60.75 PB per month

That is 60.75 petabytes per month for a one-million-MAU SVOD service. Apply the CDN bill across providers at list:

ProviderEffective $/GB (volume-weighted)Monthly egressMonthly requestsTotal monthly
BunnyCDN Volume$0.005$303,750$0 (bundled)$303,750
KeyCDN$0.040$2,430,000$0 (bundled)$2,430,000
Cloudflare Stream (minutes)n/a$2,700,000bundled$2,700,000
Fastly$0.060 (tier-blended)$3,645,000$33,750$3,678,750
CloudFront$0.050 (tier-blended)$3,037,500$30,250$3,067,750
Akamai (negotiated commit)$0.030$1,822,500included$1,822,500
Edgio (negotiated commit)$0.025$1,518,750included$1,518,750
The negotiated rates for Akamai and Edgio assume a one-PB-per-month commit, typical for an SVOD service at this scale. The calculator surfaces the same table with your own inputs and lets you flex the commit discount.

Why the gap is so wide

The 30× gap between BunnyCDN's Volume Network and Azure CDN at list isn't an indictment of either provider — it reflects different operating models. Bunny's Volume Network is a "global anycast bandwidth" tier with fewer points of presence and no SLA on per-viewer last-mile quality; it's right for cost-sensitive UGC and short-form catalogues. Akamai's Adaptive Media Delivery and Edgio's premium tier ship via ISP-embedded PoPs with deep last-mile peering and contractual QoS — that quality difference matters when one of your renditions costs more than $0.50 in lost subscriptions per rebuffer. The calculator surfaces the cost difference; the procurement decision still needs a quality conversation.

The four traps every CDN cost model gets wrong

These are the failure modes Fora Soft has seen in scoping conversations with founders, finance leads, and architects. The calculator avoids them by design; this article calls them out so you can defend the number to anyone who challenges it.

Trap 1 — Confusing throughput and volume

A common first guess: "we'll have 10,000 concurrent at 4 Mbps, so we need 40 Gbps of CDN bandwidth, which costs roughly X". That number is right for capacity planning at peak load — but irrelevant for the monthly bill, which charges on the integral of throughput over time, not the peak. The volume-vs-throughput confusion routinely produces 10× errors in either direction. The calculator separates the two: peak Mbps drives 95th-percentile pricing only; monthly GB drives everything else.

Trap 2 — Forgetting requests

A workload with small segments and many renditions can produce a request bill comparable in size to the egress bill. CloudFront's $0.010 per 10,000 HTTPS requests sounds trivial — but at 94 billion requests per month on a typical 2-second-segment HLS service, it's $94,000, the cost of a small Mercedes every month, hidden behind the bandwidth number. The calculator surfaces request count on the summary line. The fix: bigger segments (4-6 seconds is the sweet spot for live; 6-10 for VOD), cache-pinning hot segments, and a CDN that bundles request charges (Cloudflare Stream, BunnyCDN, KeyCDN).

Trap 3 — Mis-weighting the region mix

A US-based founder forecasts traffic with US rates and projects 40% global expansion. The expansion lands; the bill triples instead of growing 40%. Reason: Latin America and Asia-Pacific bytes cost roughly 1.5–3× North America bytes at every CDN that bills by region. The calculator forces you to set the region mix explicitly. The fix: scope international expansion with region-weighted rates from day one, and consider a regional-CDN partner (e.g., a Chinese CDN partner like Alibaba or Tencent if you serve China) instead of paying a tier-1's surcharge to deliver where they're thinner.

Trap 4 — Treating list price as the negotiated price

CloudFront, Fastly, Akamai, and Edgio will all discount 30-60% off list at any meaningful volume. A scoping number built from list-only is right for sizing the negotiation range, not for sizing the actual bill. The calculator lets you flex a "discount-off-list" percentage at the top of the panel; default 0% gives you the list-price ceiling, default 40% gives you a reasonable mid-tier commit. Use the ceiling number to scope worst-case; use the discounted number to scope the contract.

Figure 3. The pricing-model decision tree. Most workloads land in pay-as-you-go for the first six months, then move to commit once the audience is predictable; 95th-percentile is right for steady-state heavy workloads and for one-or-two-peak-per-month workloads.

The outputs you can paste into procurement

The calculator emits three downloadable artefacts per recompute.

Provider comparison table (CSV). Seven providers, monthly cost, effective per-GB, request charges, regional breakdown. Drops straight into a finance spreadsheet.

Procurement RFI brief (Markdown). One paragraph per provider with the calculator's input assumptions, the projected monthly volume, the request profile, and the regional mix. Email it to provider sales to start procurement conversations on apples-to-apples terms — most failed CDN RFIs fail because each provider answered a different question.

JSON dump. The full input/output of the calculation, timestamped. Useful for embedding the scoping number in a board deck or a fundraising document with a defensible audit trail.

The CSV and Markdown are downloadable from the panel; the JSON works for any automation pipeline.

Where Fora Soft fits in

Fora Soft has built video streaming, OTT, conferencing, e-learning, telemedicine, surveillance, and live-commerce platforms since 2005. Every one of those workloads ships through a CDN, and every one of them benefits from scoping the bill before procurement opens, not after the first month's invoice lands. We use this calculator at the scoping stage with clients to set the cost ceiling, then drive the actual CDN selection with a quality-and-redundancy conversation. The decision points are always the same: pay-as-you-go or commit, single-CDN or multi-CDN, regional partner or global incumbent. The calculator gives you a number you can defend to the CFO; the architecture conversation gives you a stack you can ship.

What to read next

Talk to us / See our work / Download

  • Talk to a streaming engineer — scope your CDN bill against real architecture, not a list-price estimate.
  • See our case studies — OTT, telemedicine, conferencing, e-learning, surveillance platforms shipped since 2005.
  • Download the CDN Cost Quick-Reference Card — a one-page printable summary of the formula, the four traps, regional surcharges, and 2026 list prices for the seven CDNs the calculator scopes against.

References

  1. Amazon Web Services. Amazon CloudFront Pricing, May 2026 list. https://aws.amazon.com/cloudfront/pricing/ — per-GB tiered rates by region; HTTPS/HTTP request rates per 10,000; Origin Shield and field-level encryption surcharges.
  2. Cloudflare, Inc. Cloudflare Stream Pricing, May 2026. https://developers.cloudflare.com/stream/pricing/ — bundled per-minute pricing for Stream; Worker-paid bundle for raw CDN.
  3. Fastly, Inc. Fastly Pricing, May 2026. https://www.fastly.com/pricing/ — per-GB tiered rates; per-request charges; regional schedule.
  4. Bunny.net. CDN Pricing, May 2026. https://bunny.net/pricing/cdn/ — Standard Network and Volume Network rates; no request fees on Volume; per-region rates.
  5. KeyCDN. Pricing, May 2026. https://www.keycdn.com/pricing — flat $0.04/GB; no request fees; no regional differentiation.
  6. Bitmovin. Video Developer Report 2025, surveying 167 developers across 34 countries. — distribution of monthly egress volumes, bitrate averages by workload, multi-CDN adoption rates.
  7. Mux Inc. Streaming Cost Survey 2025, December 2025. https://www.mux.com/blog — typical bitrate averages by workload class; request-count profile per delivery protocol.
  8. Wikipedia. Burstable billing. https://en.wikipedia.org/wiki/Burstable_billing — 95th-percentile billing definition; 5-minute sampling; top-5% drop; equivalence to ~36 hours of unbilled burst per monthly cycle.
  9. IETF. RFC 8216: HTTP Live Streaming, August 2017. https://www.rfc-editor.org/rfc/rfc8216 — segment-level request model that drives request-count math.
  10. Apple Inc. HLS Authoring Specification for Apple Devices, revision 2025-09 — recommended segment lengths and LL-HLS part durations affecting request count.
  11. Akamai Technologies. Adaptive Media Delivery datasheet, 2026. — list-tier guidance and commit-tier ranges referenced by independent analyst reports.
  12. Streaming Media Magazine. Annual CDN Pricing Survey 2026, January 2026 issue — independent compilation of negotiated rates from buyers, segmented by volume tier.