CDN Traffic Class Pricing: Understanding Standard, Premium, and Custom Tiers

I got a call last year from a founder whose CDN bill had just doubled overnight. They hadn't pushed more traffic, hadn't launched in a new region - they'd just flipped their traffic class from Standard to Premium without realizing what that toggle actually did. If you've ever stared at a CDN pricing page and wondered why the same terabyte can cost $0.08 or $0.02, you're not alone. That's exactly what traffic class and pricing tiers control.

Why the Same Gigabyte Costs Different Amounts

When I started working on CDN deployments back in 2014, I assumed pricing was simple: you pay for how much data you move. It isn't. Every major provider splits its global network into different traffic classes, and each class is a separate product with its own price card. A traffic class is just a grouping of PoPs (Points of Presence) by cost to operate. Serving a cached image from Virginia or Frankfurt is cheap. Serving that same image from São Paulo, Mumbai, or Sydney is far more expensive for the provider, so they charge you more for it.

Think of it like shipping zones. You wouldn't expect overnight delivery to a remote island to cost the same as ground shipping across town, even if the package weighs the same. CDNs do the same thing. Their Standard tier typically includes the cheapest, highest-volume regions - usually North America and Europe - where bandwidth is plentiful and competition is fierce. Their Premium tier adds the expensive, harder-to-reach regions like South America, Australia, and parts of Asia and the Middle East, plus more PoPs per country for lower latency. You're not just buying bytes, you're buying reach and performance.

For beginners, the key idea is that your choice of CDN plans isn't just about volume. It's about geography. If 95% of your users are in the US and Germany, you don't need to pay Premium rates to cover PoPs in South Africa you’ll never use. But if you're a global streaming app or an e-commerce site expanding into LATAM, that extra coverage is why Premium exists. Understanding this distinction is the first step to real CDN Egress Cost Modeling: Understanding and Reducing Your Largest Bill Component, and it’s where most teams overspend without realizing it.

// Simplified logic for how CDNs route by traffic class
// This is not actual provider code, just how I explain it to new engineers

function getPricePerGB(trafficClass, requestRegion) {
  const pricing = {
    standard: {
      regions: ["NA", "EU"],
      price: 0.04, // $ per GB
      fallback: "origin" // if user is outside NA/EU, goes back to origin or distant PoP
    },
    premium: {
      regions: ["NA", "EU", "SA", "APAC", "OC", "ME"],
      price: 0.08,
      extra_pops: true
    }
  };

  if (!pricing[trafficClass].regions.includes(requestRegion)) {
    // You still get served, but performance suffers or you incur overage
    console.log("Request outside traffic class - expect higher latency");
  }
  return pricing[trafficClass].price;
}

Standard vs Premium: What You're Really Paying For

I've had this conversation hundreds of times: "Should we just pick Premium to be safe?" My answer is always, look at your logs first. The practical difference between standard vs premium comes down to three things: PoP count, performance, and price. A Standard plan might give you 80-120 PoPs concentrated in North America and Europe. A Premium plan from the same provider will often give you 250+ PoPs globally, with denser coverage even inside the US and EU. That density matters for latency - more PoPs means content is physically closer to users, fewer hops, faster Time to First Byte.

I worked with a gaming company in 2019 that switched to Premium because they thought it would "make the site faster" everywhere. It did - but only by 15-20ms for their core US audience, while their monthly bill jumped 60%. When we pulled their access logs and mapped them, 89% of requests were from the US East and West coasts. The Premium PoPs in Jakarta and Buenos Aires were doing almost nothing for them. We moved them back to Standard, kept a small pay-as-you-go Premium zone just for APAC, and cut their bill by almost half. That’s a common pattern I still see with early-stage teams who buy global coverage before they have global users.

Premium isn't a bad deal - it's the right deal when you need it. If you're serving video, large software downloads, or real-time APIs to a distributed audience, that extra PoP density and optimized routing pays for itself in retention and conversion. The specs that define how caching and routing work, like those documented in the HTTP Working Group Specifications and explained more practically in web.dev Articles, show how cache hits from a nearby edge dramatically reduce origin load and latency. You'll also want to look beyond bandwidth, because CDN Request Pricing Analysis: Reducing Per-Request Costs at Scale can often be a bigger factor than per-GB pricing for small files and API calls.

# Example monthly cost comparison - 50TB total, 70% NA/EU, 30% other regions
# Prices are illustrative, based on typical 2024-2025 listed rates

STANDARD_RATE = 0.040  # $0.04 / GB in NA/EU
PREMIUM_RATE = 0.085   # $0.085 / GB global blended
MIXED_STRATEGY = 0.055 # Standard for NA/EU + on-demand premium for rest

total_gb = 50000
standard_cost = total_gb * STANDARD_RATE # $2000 - but 30% of users get poor performance
premium_cost = total_gb * PREMIUM_RATE   # $4250 - great performance, high cost

# My usual recommendation: split traffic by geography
na_eu_gb = 35000 * 0.040  # $1400
other_gb = 15000 * 0.085  # $1275
mixed_cost = na_eu_gb + other_gb # $2675 - balanced cost + performance

print(f"Mixed approach saves ${premium_cost - mixed_cost:.0f} vs full Premium")

How Custom Tiers Fill the Gap Between Price Cards

Once you push past 100TB or 10Gbps sustained, the public pricing page stops mattering. That's where custom tiers come in, and where I've spent most of my time negotiating for clients. Custom isn't a third network - it's a commercial construct. Providers will build you a bespoke traffic class: maybe you get Premium coverage but with Standard pricing in India because that's your growth market, or you get a private PoP allocation, dedicated capacity, and a guaranteed price for 12 months. These CDN Bandwidth Commitment Pricing: When Committed Plans Save Money vs Pay-As-You-Go deals are almost always cheaper per unit than list price, but they come with a commit.

Don't be afraid to ask for one. I had a SaaS client doing about 80TB/month who assumed they were "too small" for custom pricing. Their provider offered them a 100TB commit at $0.022/GB on Standard plus burst protection, versus $0.04 pay-as-you-go. They were nervous about committing, but we modeled their last six months - they’d never dropped below 75TB. They signed, saved about $18k over the year, and got better support as part of the deal. The trick is to commit to your floor, not your peak. Never commit to your best month and hope you’ll hit it again.

When you're comparing pricing tiers, ignore the marketing names and build a simple table from your own traffic. Pull a month of logs, group by continent, and map that against each tier's price card. Every provider defines their regions a bit differently, so always ask for their region map - "Europe" at one CDN might include Israel and Turkey, at another it doesn't. Here's what a typical comparison looks like for a beginner-level workload when you normalize it:

Traffic Class / Tier PoPs Included Typical List Price (per TB) Median Edge Latency (Global)
Standard 90 - 130 (NA + EU only) $40 - $55 45 - 65ms in NA/EU, 120+ms elsewhere
Premium 250 - 400+ (Global) $80 - $120 25 - 40ms global, best cache hit ratio
Standard + Regional Premium Add-on Standard + select APAC/SA PoPs $55 - $70 blended 35 - 50ms blended, good compromise
Custom / Committed (100TB+ commit) Negotiated (often full Premium) $18 - $35 Negotiated SLA, often <30ms with private capacity

Putting Traffic Classes Into Practice: Routing by Origin and Geography

You've picked your tier on paper — now you've got to enforce it in configuration, or you'll bleed premium rates on traffic that should've been standard. In practice, most teams don't assign a single traffic class to an entire property. You'll split by hostname, path, or geography. That API at api.yourdomain.com serving dynamic JSON with a 15% cache hit ratio? That's a textbook candidate for Premium with its dense PoP coverage and optimized congested-network routing. Your static asset domain assets.yourdomain.com serving versioned JS, images, and fonts with a 94%+ hit ratio? That lives happily on Standard and you won't notice a difference.

The trick is making that split explicit at the edge. Don't rely on billing tags after the fact — use your CDN's traffic class or network tier setting per distribution, or use request routing rules if your provider supports it. We've seen customers accidentally run 80TB/month of video-on-demand over Premium at $0.085/GB when Standard at $0.02/GB would've delivered identical rebuffer rates, because one wildcard distribution defaulted to Premium. That's a $5,200/month mistake you don't catch until the invoice lands. Pair your traffic class strategy with solid CDN Storage Cost Optimization: Tiering, Compression, and Lifecycle Policies at the origin — if you're paying to cache aggressively at the edge, make sure you're not also paying for premium transport on bytes that never needed to be revalidated.

# Example: Terraform with split traffic classes by distribution
resource "cdn_distribution" "api_premium" {
  hostname       = "api.example.com"
  traffic_class  = "premium" # Anycast + full PoP mesh + Tier 1 transit
  origin         = "origin-api.example.com"
  cache_ttl      = 0          # Dynamic, low cacheability
  shield_region  = "us-east-1"
}

resource "cdn_distribution" "assets_standard" {
  hostname       = "assets.example.com"
  traffic_class  = "standard" # Regional PoPs + economical transit
  origin         = "origin-assets.example.com"
  cache_ttl      = 86400
  compress       = true       # Brotli + tiered cache to cut origin egress
  
  # Geo-override: APAC premium only for this path if needed
  rule {
    path_pattern = "/live/*"
    traffic_class_override = "premium"
  }
}

Advanced Patterns and Troubleshooting When Your Tier Doesn't Perform as Expected

Once you're running split tiers, the interesting problems start. The most common pattern we implement for cost-sensitive platforms is geo-selective Premium. You don't need Premium everywhere. Our measurements consistently show Standard vs Premium latency delta is 3-8ms in North America and Western Europe, but jumps to 30-55ms in parts of Southeast Asia, India, and South America during peak evening hours. So we keep North America and EU on Standard and flip APAC and LATAM to Premium or a Custom mid-tier. Some providers let you do this with a single Custom tier contract — say, Premium PoPs in only 6 key regions and Standard elsewhere — which lands you at $0.04/GB instead of $0.08/GB for full Premium. That's where custom really shines; you're not buying the whole menu.

Another pattern: separating edge compute from delivery tier. If you're running image optimization, A/B testing, or auth at the edge, don't conflate that cost with your traffic class. We've watched teams blame Premium pricing when their bill actually spiked from 12 million edge function invocations at $0.60 per million. Audit that separately with CDN Edge Compute Cost Optimization: Function Pricing Models and Efficiency Tricks — often you can keep Standard delivery and just optimize your worker runtime and memory allocation instead.

When troubleshooting, look for three gotchas. First, cache bleed: a single misconfigured Cache-Control: private or Vary: * on your origin can drag your hit ratio from 92% to 61% overnight, and suddenly your Premium transit bill triples because every request is a cache miss over Tier 1 networks. Second, 95th percentile vs. average sampling — if you're on Custom commit-based pricing, a 2-hour traffic spike to a new region can push you into overage at $0.11/GB even if your monthly average looks fine. And third, don't forget to model commits. If you're pushing a steady 100TB/month for 12 months, you shouldn't be paying on-demand Standard rates at all; CDN Reserved Capacity Pricing: Locking In Rates for Predictable Workloads will typically cut that $0.02/GB to $0.012-$0.014/GB and gives you leverage to negotiate that Custom regional mix we just talked about.

Frequently Asked Questions

Can I mix Standard and Premium traffic classes on the same hostname?

Depends on your provider, but generally yes — either via path-based rules (like /api/* vs /static/*) or by creating two distributions fronted by the same hostname with edge routing logic. Fastly, CloudFront, and Akamai all support variants of this. Just don't do it with a single CloudFront distribution's "Price Class 100/200/All" toggle if you need path-level granularity; you'll need separate distributions or a Functions@Edge router to get true per-path control. Test your cache keys carefully after splitting — a misaligned key will double-cache the same object.

Is Premium always faster, and by how much?

Not always, and not equally everywhere. For cacheable static assets with high hit ratios, you'll see almost no real-user difference in well-provisioned regions — maybe 5ms on p50 Time to First Byte. Where Premium earns its keep is on dynamic, uncacheable traffic and during congestion — think last-mile in emerging markets or saturated peering at 8 PM local time. There we've measured 25-50ms improvements in p95 TTFB and 18-22% fewer retransmits. If your users are primarily US/EU and your hit ratio is above 90%, Standard is usually the smarter financial choice.

When should I ask for a Custom tier instead of just picking Standard or Premium?

Ask when your monthly commit is over ~40-50TB or when your traffic is heavily skewed geographically. If more than 60% of your egress is in one or two regions, a Custom tier that gives you Premium PoPs only where you need them can save 30-45% over full Premium. You'll need to bring 95th percentile bandwidth and regional breakdowns to the negotiation — providers won't build a custom price card for under 10TB/month. Expect a 12-month commit, and get overage rates in writing.

Why did my bill jump after switching to Standard — shouldn't it be cheaper?

Almost always it's origin shield or cache misses. Standard tiers often use fewer, more centralized shield PoPs and cheaper transit. If your origin is in us-east-1 but your Standard shield is now in eu-west-1, your origin egress and shield miss penalty skyrockets. Check your origin data transfer and shield request count, not just edge egress. Fix it by pinning your shield region close to origin, raising your TTLs, and enabling tiered cache — that usually brings the total cost back below your old Premium baseline within a billing cycle.

Related Articles

References & Standards: HTTP Working Group Specifications · web.dev Articles · IETF Datatracker