The Bandwidth Bill Quietly Eating Your Margin and How to Cap It
Egress and cache misses scale with growth in ways founders never model; here is where the spend hides and how to claw it back.
There is a line item on your cloud bill that nobody modeled and everybody pays. It is called data transfer, or egress, and it is the charge for moving bytes out of your cloud provider to the internet, to another region, to your users. When you launched, it was a rounding error. As you grew, it scaled with you, quietly, in a way your unit economics never accounted for, until one month the finance team flags a number that has no obvious owner and no clear cause. That number is your bandwidth bill, and for most growing companies it is a larger fraction of margin than they realize. It is one of the quieter line items behind the broader question of how to cut your cloud bill in half without breaking anything.
Egress is insidious because it is invisible at the start and unbounded at the end. You do not provision it, you do not see it accumulate, and it grows precisely as fast as your success. Industry estimates put egress at 15 to 20 percent of total cloud spend, and with cloud spending forecast to reach hundreds of billions, that is tens of billions of dollars a year flowing out as data-transfer fees, much of it avoidable. Here is where the spend hides, and how to claw it back before it eats a margin point you cannot spare.
Why the bill scales the way it does
The mechanics are simple and the consequence is not. Cloud providers charge you to send data out. AWS, for instance, charges around 9 cents per gigabyte for internet egress, with cross-region transfers adding a couple of cents per gigabyte on top. Nine cents sounds trivial until you multiply it by the volume a growing product moves. Every page load, every image, every API response, every video stream, every file download is bytes leaving the cloud, and every one of those bytes is metered.
The reason this surprises founders is that it does not behave like the costs they do model. Compute you provision and watch. Storage you can see growing. Egress just happens, as a byproduct of serving your users, and the bill arrives after the fact with no breakdown that maps cleanly to a feature or a decision. So it grows unmodeled, and because it grows with usage, your most successful months are also your most expensive ones in a category you never budgeted for. The better the product does, the more this quietly costs, which is exactly the wrong incentive to leave unmanaged.
The cache miss is the most expensive byte you serve
The single biggest hidden driver is the cache miss. A content delivery network caches your content at edge locations close to users, so a request for an asset is served from the edge without ever touching your origin. That is the whole point of a CDN, and when it works, egress from your origin drops dramatically, because the same asset is not fetched from your servers over and over.
But every cache miss is different. A miss means the edge did not have the content, so it fetches it from your origin, which incurs origin egress, and then serves it. At low cache hit rates and high scale, the misses add up fast, and low hit rates can generate millions in unnecessary bandwidth spend purely from repeatedly fetching content that should have been cached once and served from the edge thousands of times. A well-configured CDN often lowers egress costs by 60 to 80 percent. A poorly configured one, with short cache lifetimes or cache keys that fragment unnecessarily, leaks most of that saving back out through misses you are paying for.
So the first place to look is your cache hit rate. If it is low, you are paying origin egress for content that should be served from the edge, and the fix is in your cache configuration: longer lifetimes for static assets, cache keys that do not fragment on irrelevant query parameters, and proper cache headers so the CDN actually holds what it should. Pushing your CDN cache hit ratio past 95 percent is often the largest single lever on the bill, and it costs nothing but configuration time.
Compression is free money you are probably leaving on the table
The second lever is even simpler. You are charged per gigabyte transferred, so anything that reduces the size of what you transfer reduces the bill directly. Text-based responses, JSON, HTML, XML, compress extremely well, often by 70 percent or more with gzip or brotli. That is a 70 percent cut in the egress cost of those responses for the price of turning on compression.
Many setups serve uncompressed or under-compressed responses without anyone noticing, because uncompressed bytes work fine, they just cost more. Confirm that compression is on at the edge and the origin, that it covers your API responses and not just your HTML, and that you are using brotli where supported, since it compresses better than gzip. This is one of those checks that takes an hour and pays for itself every month thereafter. We treat it as table stakes on the websites and web applications we build, because shipping uncompressed text in 2026 is leaving a recurring discount on the floor.
Where else the money hides
Beyond cache misses and compression, a few structural choices move the bill meaningfully.
- Cross-region transfer. Moving data between regions costs you, on top of internet egress. If your services and the data they need live in different regions, you pay a transfer fee on traffic that never even leaves the cloud. Keeping related services and data in the same region eliminates that, and can save thousands a month for an architecture that grew across regions by accident rather than design.
- Right-sizing what you serve. An image served at full resolution when the layout renders it small is paying egress on bytes the user never sees. An image pipeline that serves the perfect byte count, in modern formats, cuts both the bandwidth bill and the page weight your users feel, which is the same byte that shows up in what every slow second actually costs you in revenue.
- Provider choice for egress-heavy workloads. Egress pricing varies enormously between providers. Some object-storage offerings, notably Cloudflare R2, charge zero egress fees, which for a workload that moves a lot of bytes out can be the difference between a four-figure monthly bill and nothing. For genuinely egress-heavy storage, the provider you chose for convenience may be costing you far more than one chosen for its transfer pricing.
Make it a number someone owns
The deeper fix is organizational. Egress hides because nobody owns it. Compute has an owner who provisions it, storage has an owner who watches it grow, and egress is everyone's byproduct and no one's line item. Give it an owner. Put the data-transfer cost on a dashboard, broken down by source, so it stops being a mystery total and becomes a tracked metric with a person responsible for it. The moment someone is watching the cache hit rate and the compression coverage and the cross-region traffic, the bill stops drifting upward unchecked.
This is the kind of thing we look at in a consultation when a founder mentions the cloud bill has been creeping in a way they cannot explain. Often the answer is egress, and often a few hours of cache and compression work recovers a margin point that was leaking out byte by byte. The deeper version of this question is self-hosting versus managed cloud and the true cost founders miss, where egress is one of the biggest hidden line items. The spend is real, it is recurring, and it scales with your growth, which makes it exactly the kind of cost worth capping before it becomes a number the board asks about.
The short version
Your bandwidth bill scales with your success and nobody modeled it. The biggest hidden driver is the cache miss, so raise your CDN hit rate, because a poorly cached site pays origin egress over and over for content the edge should serve once. Turn on compression, because text compresses 70 percent or more and you are charged by the byte. Keep related services in the same region to avoid cross-region fees, serve assets at the size they render, and for egress-heavy storage consider a provider that does not charge to move bytes out.
None of these are hard. They are just invisible until someone goes looking, and the someone should be you, before the line item nobody owns becomes the margin point you cannot afford to lose.






