Skip to main content

Vercel's $20 Universal Credit Didn't Kill the Meters — It Just Hid Them Behind One Bill

8 min readDora NodaDora Noda
Share
On this page

A five-seat team shipping a typical Next.js SaaS app on Vercel's Pro plan pays $100/month in seats, gets a single $20 credit to cover overages, and still ends up with a real bill of roughly $486/month once bandwidth, edge requests, and function usage are added up. The identical workload, self-hosted on one Hetzner box, runs about $93/month — a 5.2x gap that has nothing to do with which platform is "simpler" to read an invoice on.

Vercel's September 2025 Pro-plan overhaul replaced a wall of separately-metered limits with a single monthly credit, and the pitch worked: fewer numbers to track, one wallet to watch, a company blog post promising nobody should "have to worry about keeping track of allocations and on-demand rates for 20+ different usage metrics." What it didn't do is remove the metering. Here's the line-by-line recompute that shows exactly where the $486 comes from, and why owning the box still wins even after Hetzner's own 2026 price hikes are priced in.

What Actually Got Collapsed

"20+ metered limits" is not a rhetorical number. Vercel's own pricing documentation lists these as separately billable resources under Managed Infrastructure alone:

  • Active CPU (function execution)
  • Provisioned Memory (function instances)
  • Invocations (function requests)
  • Fast Data Transfer (bandwidth)
  • Edge Requests
  • Image Transformations
  • Image Cache Reads
  • Image Cache Writes
  • Edge Config Reads
  • Edge Config Writes
  • Web Analytics Events
  • Speed Insights Events
  • Drains Volume
  • Observability Events
  • Blob Simple Operations
  • Blob Advanced Operations
  • Blob Data Transfer
  • Microfrontends Routing
  • Microfrontends Projects
  • Bulk Redirects
  • Build CPU Minutes

That's 21 distinct meters, each with its own included allowance and its own per-unit overage rate, before counting ISR reads/writes or Edge Middleware invocations tracked separately in related docs. The September 2025 change didn't delete any of these meters. It changed what happens when you exceed them: instead of hitting a hard per-metric cap, overages against only two of those dimensions — Fast Data Transfer and Edge Requests — draw down a shared $20 credit first, in that priority order, before switching to on-demand billing. Every other line item on that list — invocations, Active CPU, image transforms, build minutes, the paid add-ons — still bills on demand from the first unit past its (often zero) included allowance, credit or no credit.

So "20+ meters collapsed into one credit" is more precisely "20+ meters still running, two of which can spend a shared $20 wallet before the rest of the invoice takes over." That's a real simplification of what a developer has to think about day to day. It is not a reduction in what gets billed.

How the New Model Actually Works

The mechanics, straight from Vercel's plan documentation:

ComponentWhat it costsWhat it includes
Platform fee$20/month1 deploying seat + $20/month usage credit
Additional seats$20/month eachDeploy access only — no additional credit
Fast Data TransferIncluded, then $0.15/GB1 TB/month
Edge RequestsIncluded, then $2/million10 million/month
Invocations$0.60/million, no free tier on Pro
Active CPU$0.128–$0.221/hour by region
Image Transformations$0.05/thousand
Build minutes~$0.0035/CPU-minute

Two details matter more than the headline "$20 credit" framing suggests. First, the credit is team-wide, not per-seat — a five-person team gets the same $20/month pool as a solo developer; only the first seat's platform fee bundles it. Second, the credit expires unused at the end of each billing cycle and resets to exactly $20 the next month, so it never accumulates into a meaningful buffer for a spiky month.

Vercel's own numbers on the rollout: about 7% of teams with usage spread across many products saw their bill go up, "mostly modest," while the rest of its 100,000+ paying teams saw a flat or lower bill. That's a real improvement in predictability for teams whose usage happened to concentrate in the two dimensions the credit actually covers. It says nothing about teams whose usage looks like the one below.

The Worked Recompute: A Typical Team's Real Bill

Take a five-developer team running a mid-size Next.js SaaS — a marketing site plus an authenticated app with API routes, some server-rendered pages, and a moderate amount of user-uploaded imagery. Nothing exotic; this is the shape of usage the credit model was ostensibly built to simplify.

Line itemUsageOverageCost
Team seats5 deploying seats$100.00
Fast Data Transfer3 TB/month2 TB over 1 TB included$307.20
Edge Requests40 million/month30M over 10M included$60.00
Invocations15 million/month15M, no included tier$9.00
Active CPU~208 hours (US region)208 hrs, no included tier$26.67
Image Transformations20,000/month20K, no included tier$1.00
Build minutes~300 CPU-minutes/month300 min, no included tier$2.10
Subtotal (usage)$405.97
Monthly credit−$20.00
Total$485.97

That $405.97 in raw usage overage isn't a worst-case number — it's what a team doing 3TB of monthly transfer and 40M edge requests (page loads, API calls, static asset hits) actually generates, and it's dominated by one line: bandwidth. At $0.15/GB past the included 1TB, the 2TB overage alone ($307.20) is more than 15x the entire monthly credit. The credit draws down against exactly that dimension first — and still can't make a dent, because $20 divides into roughly 133GB of relief on a 2,048GB overage.

The Hetzner Side: One Box, No Meters

Run the identical workload — same app, same traffic — self-hosted on a Cluster API-managed fleet on owned Hetzner hardware, and the arithmetic collapses to one line. A CCX23 (4 dedicated vCPU, 16GB RAM, 160GB NVMe, 20TB traffic included) costs €85.99/month post-Hetzner's June 2026 price adjustment — roughly $93 at current exchange rates.

That single box's included 20TB of traffic swallows the 3TB workload seven times over, with no separate meter for edge requests, function invocations, active CPU, or image transformations, because none of those are billing events on owned hardware — they're just work the box you already paid for does. Image processing (sharp, imgproxy) runs on CPU that's a sunk cost either way. There's no priority order to reason about, no credit balance to watch, no dashboard warning at 75% of a wallet that resets every 30 days.

$485.97 on Vercel vs. $93 on Hetzner — the same workload costs 5.2x more on the platform that just spent a year telling customers pricing got simpler.

Sensitivity Check: Does the Gap Hold at Different Scale?

A single data point invites the objection that 3TB and 40M edge requests were picked to make Vercel look bad. Triple the traffic — a more image-heavy app, or the same app after a traffic spike — to 10TB of transfer and proportionally scaled edge/function usage, and check both sides again:

  • Vercel: 9TB of bandwidth overage alone is 9,216GB × $0.15/GB = $1,382.40, before edge requests, invocations, CPU, or images are added back in. The bill is well past $1,800/month.
  • Hetzner: 10TB still fits inside a single CCX23's 20TB allowance. Push past that ceiling and the next tier up, a CCX33 (8 vCPU, 32GB RAM, 30TB included), costs €138.49/month (~$150) — still one flat number.

The gap doesn't narrow as usage grows; it widens, because Vercel's overage rates apply to every additional gigabyte and every additional million requests, while Hetzner's pricing is a step function that jumps once per tier boundary. The $486-vs-$93 comparison at typical usage is the conservative end of the range, not the flattering one.

What "Simpler" Actually Bought Customers

None of this makes Vercel's September 2025 change a bad decision on its own terms. Replacing 20+ separately-tracked allocations with a shared credit genuinely reduces the cognitive load of reading a bill, and Vercel's 7%-pay-more figure suggests most teams' usage patterns happened to land inside what the new model covers well. For a team whose usage concentrates in bandwidth and edge requests and stays under a few hundred dollars of overage, the credit is a real, if modest, discount.

But "simpler to read" and "cheaper" are different claims, and the $20 credit answers the first one. The other 19 metered dimensions on that list didn't go anywhere — they just stopped being the thing the marketing points at. A team evaluating "usage-based, but simpler" pricing against a self-hosted alternative should price out its own bandwidth and function-invocation numbers against the table above before assuming a single credit line means the meters went away.

Bex.co is the open-source, AI-native Render alternative — push a git repo, get a running HTTPS service on machines you own, with no bandwidth or edge-request meter running underneath it. Star the repo on GitHub or deploy your first app today.

Related articles

Run this on infrastructure you own

bex is the open-source, AI-native Render alternative — push a git repo and get a running HTTPS service on your own machines.

Get started with bex