Vibe-to-Production · Cost

Your Bill Keeps Rising. Your Usage Doesn't. Here's How to Read It

The product works and people use it — but the bill has developed a life of its own. It rises in months when usage didn't, contains line items nobody can explain, and the honest answer to "what do we get for this?" is a shrug. You're not looking to gut the infrastructure; you want spend you can read.

72 hours
01 / TO FINDINGS
2–6 weeks
02 / TYPICAL FIX WINDOW
500+
03 / ENGINEERS
92%
04 / ON-TIME DELIVERY
CostProblem guide

An infrastructure bill that doesn't track anything you recognise means the app has no limits and no attribution — nothing caps what any operation can consume, and nothing connects a line on the invoice to a feature of the product. You can run the attribution exercise yourself tonight with last month's bill, and the fix is limits, alerts and per-feature visibility, not austerity.

How to recognise it

The signs show up before the incident does.

None of these proves you have the problem. Each one raises the odds — and every one of them is checkable in the twenty-minute protocol below.

  • Spend and usage have stopped moving togetherSignups flat, orders flat — bill up again. Whatever is driving the spend, it isn't customers, which means something machine-driven is consuming without anyone deciding it should.
  • Line items nobody can nameThe invoice contains services and charges no one can connect to a feature. Each one is either something the product silently needs or something it silently forgot — and nobody knows which.
  • The bill is the monitoringThe way you find out something ran too hot last month is the invoice. There's no alert, no cap, no earlier signal — cost problems are always discovered fully grown, after they've been paid for.
  • One outlier month nobody explainedThere was a spike — noticeably above normal — and it was paid, grumbled about, and never diagnosed. An unexplained spike isn't an anomaly; it's a mechanism that's still armed.
  • Every feature was allowed to be expensiveAI calls, image processing, emails, storage — each was added because it worked, never sized for what it could cost at volume, or under retry, or in a loop. The bill is the sum of decisions nobody made.
Why this happens

One missing layer explains every symptom above.

Nothing in the system has a limit — every call, retry, upload and job can run as often and as large as it likes.

A working demo gives no signal that an operation is unthrottled — it all just works, so no prompt ever asked for caps, budgets or alerts. That leaves cost coupled to accident and abuse instead of to usage: a retry loop, a scraping bot or one power user can each set your bill, and the invoice is the first place any of it shows up.

This is not a defect of any one tool — it follows from how prompt-built apps come to exist, and the platform guides show how the same gap surfaces on each stack.

What is actually at stake

It isn't a bug count. It's an open door.

Runway is measured in months of spend, so unexplained infrastructure growth is a tax on your company's lifespan paid monthly and compounding quietly. Worse than the amount is the unreadability: margins per customer become unknowable, pricing decisions turn into guesses, and an investor's simplest diligence question — what does it cost you to serve a user? — has no answer. And a bill nobody can read is also where a genuine incident hides best; a leak and a growth story look identical on an invoice you can't attribute.

If something has already gone wrong, the first-response guide covers the first hour. If nothing has — that is exactly the moment this is cheap to fix.

Check it yourself

Run the audit yourself — tonight.

No developer, no tooling, no permission needed — this is your own app. Work through the sheet in order; if a check fails, do it once more before believing it. What you find is yours to act on, with us or without us.

Diagnostic protocolAbout 20 minutesTwo browser windowsNo code required
  1. Can you attribute every line of last month's bill?

    Run it

    Download last month's invoice from each provider you pay. Go line by line and write next to each charge which feature of your product it serves — in plain words, like "stores customer uploads" or "sends the reminder emails". No code, just honesty.

    What the result means

    Every line named is a pass — rare, and worth being proud of. Each line you can't attribute is unmanaged spend: maybe load-bearing, maybe abandoned, and nobody can tell which without this exact exercise. The unattributed fraction of your bill is the measure of this problem.

  2. Did spend rise in a month when usage didn't?

    Run it

    Line up your last few monthly invoice totals against any usage number you trust — signups, orders, active users. You're not doing analysis; you're checking one thing: do the two lines move together?

    What the result means

    Moving together is a pass — cost is tracking customers, which is what healthy looks like. Spend climbing while usage sits flat means something other than customers is consuming: retries, background jobs, bots, or a leak. That divergence is this page's problem, in one picture.

  3. Would anything warn you before a runaway month?

    Run it

    Log into each provider's billing area and look for a budget alert or spending cap. Note, per provider: does one exist, is it set to a number that would actually alarm you, and who receives it?

    What the result means

    Alerts set at meaningful thresholds, reaching a human, is a pass. No alerts means the invoice is your only cost signal — and it arrives after the money is spent. Setting these tonight, wherever the dashboards allow it, is the single fastest improvement on this page.

  4. What happens if someone presses the expensive button ten times?

    Run it

    Identify your costliest user-triggerable action — an AI generation, a big export, a media upload. Trigger it repeatedly, fast, like an impatient user or a simple bot would. Watch whether anything ever slows you down, queues you, or says no.

    What the result means

    Being throttled or refused is a pass — a limit exists. If the tenth request runs as happily as the first, then cost-per-user is unbounded, and your bill belongs to whoever is most enthusiastic — or whoever's script is. Bots find unmetered endpoints; it's what they're for.

  5. Are you paying for anything the product wouldn't miss?

    Run it

    Build the list of every service you pay for — from billing emails, card statements and the password manager, not from memory. For each, ask: if this vanished tonight, what in the product would break tomorrow?

    What the result means

    A short list with confident answers is a pass. Entries met with silence are candidates for spend that outlived its purpose — trials that became subscriptions, services from abandoned experiments. Almost every team that runs this list for the first time finds at least one.

Each of these maps to a scored item in the production-readiness framework. A pass on all of them rules out the loudest failure class — the full audit covers what a browser can't reach, at a fixed price.

How it gets fixed

Sealed from the data layer up.

The order matters more than the effort: enforcement first, credentials second, proof third. Done in the wrong order, the work gets done twice while the exposure stays open. The same discipline runs through everything we deliver.

Get my scorecard
  1. 01

    Attribute the bill completely

    Engineers map every charge to the feature it serves, flag what's orphaned, and identify what's driving the growth — turning the invoice from a mystery into a document. That attribution arrives with the audit, in 72 hours.

  2. 02

    Set the alarms before changing anything

    Budget alerts and caps on every provider, at thresholds you choose, reaching a human. This goes before optimisation for a reason: from this day on, no cost problem can ever again grow silently to invoice size.

  3. 03

    Cap what any one actor can consume

    Rate limits on expensive operations, size limits on uploads, retry policies that give up instead of looping forever. Cost-per-user gets a ceiling, which makes total cost finally a function of users — not of accidents.

  4. 04

    Take the cheap wins the attribution exposed

    Orphaned services cancelled, oversized resources right-sized, full-resolution processing scaled to what the product actually displays, repeat work cached. This step usually pays for the whole engagement.

  5. 05

    Leave cost-per-feature on a dashboard

    Spend broken down by feature, reviewed on a rhythm, with unit costs you can quote. From here on, pricing conversations and diligence questions get answered with numbers instead of shrugs.

Where it sits in the framework

The framework's heaviest weights sit exactly here.

25 / 100

points of the production-readiness score sit in the categories this problem touches.

See every check and weight
0The full 100-point framework100
  • 15 ptsDeployment & operationsThis is the category prototypes skip entirely, and the one that decides whether a bad release costs you ten minutes or a weekend.
  • 10 ptsPerformance & scalePrototypes are tested by one person at a time. Most performance failures are invisible until concurrency arrives.
Our honest read
Run the attribution exercise tonight — one invoice, one honest label per line — and let the unattributed fraction tell you how big this problem is; then set budget alerts on every provider before you sleep, because that single free step ends the era of silent surprises.
FAQ

The questions that follow.

QIs my hosting platform overcharging me?
Almost certainly not — metered billing means the platform is charging exactly what was consumed. The uncomfortable, more useful framing is that your app is consuming in ways nobody chose: unthrottled operations, retries that never give up, work done at full fidelity when a fraction would do. Platforms bill this faithfully because it happened. That's also the good news — consumption your own app controls is consumption engineering can bound, which is not something you could say if the problem were the pricing.
QCould this be a bug rather than growth?
It genuinely can be — and this is where cost overlaps with security. A retry loop hammering a failing call, a scraper crawling an unmetered endpoint, a scheduled job running far more often than intended: each shows up not as an error anywhere but as money on an invoice. This is why the attribution and the app's own logs get examined together in the audit: a bill nobody can read is where such incidents hide longest, because a leak and a growth story look identical at invoice level.
QWill adding limits and caps degrade the product for real users?
Set well, no — and 'set well' is the actual engineering here. Limits are placed from measured behaviour: real users' patterns define the envelope, the caps sit comfortably outside it, and the only actors who ever meet them are runaways, scripts and mistakes. A legitimate customer hitting a limit is a configuration error, not an inherent cost of having limits. What degrades products is the opposite regime — the unbounded operation that slows or breaks the app for everyone when something runs away with it.
QThe AI-related charges are the scariest part of the bill. Is that normal?
It's common, because per-call AI pricing makes these the charges where unbounded design costs most visibly. The remedies are the same discipline applied specifically: caps on generations per user, caching so identical requests aren't paid for twice, right-sizing so a simple task doesn't invoke the most expensive model available, and per-feature metering so you know what each AI feature costs to serve. AI spend that's bounded and attributed stops being scary and becomes a line item like any other — one you can price against.
QCan't I just downgrade everything to smaller plans and see what breaks?
Tempting, and occasionally people get away with it — but 'see what breaks' means your customers run the experiment for you, and what breaks first is usually the busiest hour of your best day. Downgrades belong at the end of the sequence, not the start: attribute first so you know what each resource actually serves, cap the runaways, then right-size deliberately from measurements. That order captures the same savings without gambling an outage on guesswork — austerity without attribution is how teams cut the load-bearing line and keep the orphaned one.
QWhat does getting cost under control involve, and what does it cost?
The audit ($2K – $5K) delivers the full attribution — every line named, growth drivers identified, orphans flagged — within 72 hours. The remediation is usually the shortest engagement we run, at the near end of 2–6 weeks: alerts and caps are configuration, the cheap wins are quick, and the work has the unusual property of visibly paying for itself on the invoices that follow.
Before you share anything
Your IP · 100% yours, in writing

Nobody has ever regretted sending us their repository.

Handing private code to anyone is a real decision, so everything below is settled before the audit starts rather than on request.

  1. An NDA is signed and returned before you send a linkStep one, every time
  2. Access is read-only, scoped to one repository, and time-boxedRevoked on delivery
  3. Our copy of your code is deleted when the report landsNothing retained
  4. We build for clients and never launch anything that competes with themNever has happened
No-obligation diagnosis

Send us the repository. We'll tell you what's missing.

Fixed price, 72 hours to findings, and a report you can act on with or without us. Nothing is committed until you have read it.

NDA signed before you send anything · read-only access, revoked when the report lands · our copy deleted on delivery.