Short answer
Open the Usage page, pick each project from the dropdown, and review the breakdown by project and region. Then look for the cause behind the metric that grew: an app that polls or refetches data, functions called again and again even when they fail, images transformed without a long cache time, or attack traffic. A spend amount alone only sends alerts, so also turn on pausing production deployments when it is reached.
Rather not fix it yourself? App Fix Ticket starts with a fixed-price diagnosis, then a fixed price for the fix before any fix work.
Where the usage comes from, and the fix
01
Find the project and the metric
“Review the breakdown by project and region to understand the metrics causing the high usage” Vercel, Manage and optimize usage
The Usage page shows every project by default. Pick one from the dropdown and compare the metrics, then check what was deployed or what traffic arrived on the day the line jumped.
02
The credit ran out
“Once you pass an included amount or use your credit, Vercel charges per unit of usage.” Vercel, Pricing
Pro usage draws on the monthly usage credit first. After that, or past a resource’s own allowance, each unit is billed on demand, so the same traffic adds to the invoice once the credit is used up.
03
A spend amount is set but nothing pauses
“Setting a spend amount does not stop usage on its own.” Vercel, Spend Management
A spend amount turns on web and email alerts at 50%, 75% and 100%. To stop spending, also turn on the option to pause production deployments when the amount is reached. The checks are not continuous, so pausing can come a few minutes late, and each project has to be resumed by hand.
04
The app polls or refetches data
“Applications that poll APIs for live updates, or use tools like SWR or React Query to reload data on user focus can contribute to increased requests” Vercel, CDN pricing and usage
An app that polls an API for live updates, or reloads data each time the tab gets focus, adds requests. Poll less, or reload only on a real change.
05
Functions keep running even when they fail
“Counts regardless of request success or failure” Vercel, Fluid compute pricing
A function invocation is counted whether it succeeds or fails, so a retry loop, a webhook that keeps resending, or a crawler hitting an erroring route all add to the bill. Check the function logs for the route that grew.
06
Images are transformed again and again
“set max-age=2678400 (31 days) in the Cache-Control header or set images.minimumCacheTTL to minimumCacheTTL:2678400 to reduce the number of transformations and cache writes.” Vercel, Managing Usage & Costs
With a short cache time, Image Optimization transforms the same image repeatedly. If your images don’t change for a month or more, set a long cache time.
07
The site is under attack
“Attack Mode is available for free on all plans and requests blocked by Attack Mode do not count towards your usage limits.” Vercel, Attack Mode
If the Usage page shows a traffic surge with no matching visitors, and the site is under a DDoS attack, turn on Attack Mode in the Vercel Firewall. It turns off after the 1, 6 or 24 hours you choose, and standalone APIs or services it doesn’t recognize may be blocked while it is on.
Checked against the vendor’s docs on : Vercel docs: Pricing; Vercel docs: Understanding my invoice; Vercel docs: Spend Management; Vercel docs: Manage and optimize usage; Vercel docs: CDN pricing and usage; Vercel docs: Fluid compute pricing; Vercel docs: Image Optimization, managing usage and costs; Vercel docs: Attack Mode.
Rather hand it over?
Fixed scope, fixed price, paid upfront. The work happens in writing; no call needed.
- from $450App Fix TicketOne reproducible bug in an existing mobile or web app, diagnosed and fixed.See scope and start
- from $450AI-Built App RescueA Lovable, Bolt or Cursor app checked end to end in 3 days, then its worst problems fixed at a fixed price.No issues worth fixing, no charge. If the Launch Check finds nothing rated medium or higher, Simon refunds the full $450. You keep the report either way. This applies to the first 10 Launch Checks bought after October 30, 2026.See scope and start
“Very responsive, attentive to fixing bugs, and completed the project as needed! Thank you!”
Related: Vercel function timeout (504) · Vercel FUNCTION_INVOCATION_FAILED · Supabase bill spike · Firebase bill spike