№ 05 Field manual

Flat-rate vs. usage-based hosting: why your bill keeps surprising you

Pricing · Updated 18 July 2026 · 7 min read

The short version
  1. 01Usage-based billing ties cost to requests and bandwidth, so a traffic spike turns into a bigger invoice at the exact moment nothing else about the business changed.
  2. 02The surprises are rarely budgeted for: bandwidth/egress, per-request charges, idle compute left running, and the guesswork of estimating next month's bill.
  3. 03A flat monthly rate takes the meter out of the equation entirely — one number, agreed before the month starts.
  4. 04Usage-based can still win at genuinely huge, spiky scale or near-zero-traffic side projects — most production sites sit outside both extremes.

The meter is always running

Usage-based billing sounds fair until you realize what it actually ties your bill to: requests served, bandwidth moved, compute-seconds burned. That means cost scales with success, not with a plan you chose in advance. A traffic spike — a good link, a viral post, a busy launch day — turns into a bigger invoice at the exact moment nothing else about the business changed for the worse. You can't quote next month's hosting cost with any confidence, because it depends on how many people show up.

That's the core problem: a cost structure that's supposed to reward growth instead makes growth feel like a risk to budget around.

Where the surprises hide

The line items that spike are rarely the ones anyone budgeted for:

Bandwidth & egress
Every byte served to a visitor is metered — a heavier page, a bigger image, or just more visitors than usual moves this number without warning.
Per-request charges
An API or dynamic route that gets hit more than expected turns "more usage" into "more invoice" on a near 1:1 basis.
Idle compute you forgot
Instances and add-ons left running after a project quiets down still bill by the hour or the second, whether or not anyone's visiting.
The estimate itself
Working out what next month will cost means projecting traffic, averaging request sizes, and modeling worst cases — arithmetic most teams don't have time to redo every month.

None of this is a vendor being dishonest. It's the natural result of a bill that's a function of usage nobody fully controls.

What a flat rate changes

A flat monthly rate takes the meter out of the equation. One number, agreed before the month starts, that doesn't move because a launch went well. It's the same mental model as rent or a utility bill: you budget it once and it stays budgeted — see the rate card for what that looks like plan by plan, or run your own numbers on the self-serve estimator without talking to anyone first.

That's the "run like a utility" thesis in practice: predictable infrastructure cost stops being a variable in the business plan and becomes a fixed line, same as any other utility.

When usage-based actually wins

Flat-rate isn't universally better — it's better for a specific, common shape of workload, and it's worth being honest about where it isn't:

  • Genuinely spiky, huge-scale workloads (a global consumer launch, unpredictable viral traffic at massive volume) can come out cheaper metered, if the peaks are rare enough and the troughs deep enough.
  • Near-zero-traffic side projects sometimes cost less on a pure per-request model than any flat minimum, simply because there's almost nothing to meter.

Most production sites and apps sit well outside both extremes — steady, real traffic that grows over time — which is exactly where a flat number beats a variable one. If you're not sure which side you're on, the static site or dedicated server guide walks through the workload questions that decide it either way.

Iterate without watching the meter

A flat rate has a second effect beyond the invoice: it removes the incentive to leave a site alone. On a per-request or per-deploy model, every change carries a faint cost anxiety — will this add-on, this new route, this redeploy show up on next month's bill? Flat pricing removes that question entirely, which is what makes the Build → Iterate → Run loop work: you brief a change in plain language, CodeHerder's agent opens a pull request against the real repo, and the same pipeline already serving the site ships the merge — human-reviewed, and billed exactly the same as the month before.

Keep shipping without a dev team covers how that loop runs end to end. The short version here is just the pricing half of it: a site you can keep improving costs the same to run whether you change it once a year or once a week.

Ready to start?

Tell us what you're running — one fixed monthly rate, within a business day.

Get a quote