Someone shipped a working product last month using mostly prompts. Auth, payments, a decent-looking dashboard, deployed. Genuinely impressive — that used to be a quarter of work.
Then a customer emailed asking why an export failed, and the founder had no way to answer. Not "no answer yet." No mechanism to ever have one. No error log tied to a user. No record of which plan that customer was on when it broke. No idea what that customer costs to serve, so no idea whether keeping them was even a good idea.
The app was finished. The business around the app had no instruments at all.
This is the pattern I keep seeing, and it isn't a skill problem. AI is very good at building the thing users touch. It's terrible at volunteering the thing you touch — the boring internal control panel where operations, cost, revenue and growth actually become visible. Nobody prompts for it, so nobody gets it.
The gap AI opened
Google's 2025 DORA report surveyed close to 5,000 technology professionals and found 90% now use AI at work, with a median of about two hours a day. Throughput went up. So did software delivery instability — and DORA is blunt that the speed gains don't cancel it out. Their summary line is the one worth taping to your monitor: AI is an amplifier. It magnifies whatever your system already is. Successful adoption is a systems problem, not a tools problem.
You can see the same shape in security data. Georgia Tech's Vibe Security Radar, which traces public CVEs back to AI-generated code, logged about 18 cases across the back half of 2025 and 56 in the first quarter of 2026 alone. March 2026 by itself beat all of 2025.
Read those two findings together and the conclusion is uncomfortable: we have collectively increased the rate at which we ship things we don't fully understand. The only defence against that is instrumentation. Not more prompting. Instrumentation.
Why the admin panel gets skipped every single time
It doesn't demo. Nobody screenshots their internal cost-per-user table for the launch tweet. The landing page gets six revisions; the ops view gets zero.
The model gives you what you asked for. Ask for "a SaaS app with subscriptions" and you get subscriptions. The model will not stop and ask "how will you know when your Stripe webhook silently stops firing?" That question comes from having been burned, and the model isn't the one getting burned.
And here's the part that actually costs money: observability can't be backfilled. This is the difference between the admin panel and every other "we'll do it later" item. You can add dark mode later. You can refactor later. You cannot go back to March and log the events you didn't log in March. Your database knows the current state of the world — it does not know how the world got here. When someone finally asks "did activation improve after the onboarding change?", the answer is either sitting in an events table you started writing on day one, or it's gone forever.
Every week without instrumentation is a week of history you're permanently choosing to delete.
The four panels, and the studies that explain why each one matters
Not a dashboard suite. Four questions, and the smallest thing that answers each honestly.
1. Operations: is it working right now, and how would I know if it weren't?
The minimum is embarrassingly small: a list of the last 100 errors with a user ID attached, a count of failed background jobs, and the timestamp of your last successful webhook from each third party you depend on.
That last one catches the failure mode that quietly kills small products. Payment webhooks don't announce their death. They just stop, and you find out three weeks later during reconciliation. One row saying stripe · last event received · 14 minutes ago is worth more than any chart on this list.
2. Cost: what did last month actually cost, and what's driving it?
Flexera's 2026 State of the Cloud report — 753 cloud decision-makers — found estimated wasted cloud spend rose to 29%, reversing five straight years of improvement. Managing cloud spend was the top challenge for 85% of them. These are organisations with FinOps teams and cost dashboards. They're the ones with instruments, and they still leak nearly a third.
If your product calls a model, the spread gets wilder. One analysis of 2.4 billion enterprise API calls put the median blended cost at around $2.31 per million tokens for teams routing work across a tiered model setup, against $18.40 for teams sending everything to a frontier model. Same work, roughly an 8x difference, decided by one architectural choice usually made in week one and never revisited. Meanwhile Mavvrik's 2026 AI Cost Governance report found the most common surprise wasn't tokens at all — it was data platform overages, cited by 47% of organisations, with token costs behind at 43%. Cost tracking is now common; accurate forecasting still isn't.
So: total spend by service, month over month, and cost per active user. One number, one line, updated daily.
3. Money: which customers are actually profitable?
CB Insights analysed 431 VC-backed companies that shut down since 2023. "Ran out of capital" appears in 70% of them, which they correctly call the cause of death rather than the disease. Underneath: poor product-market fit at 43%, bad timing at 29%, and unsustainable unit economics at 19%.
That last one is the failure mode with a dashboard-shaped solution. Unit economics don't collapse loudly. They collapse on your heaviest 10% of users while your blended average looks perfectly healthy. Bessemer's 2026 pricing work and ICONIQ's survey data both land AI-product gross margins around 50–60%, against 80–90% for classic SaaS — a thinner floor, less room to be wrong.
The panel: revenue per customer and estimated cost to serve per customer, sorted by margin, worst first. The bottom of that table is your pricing roadmap.
4. Growth: is this real, or is it launch-day residue?
Signups is the number everyone puts on the dashboard, and it's the least informative one available. It measures curiosity.
Cohort retention measures a business. Of the people who signed up in week N, how many did the core action again in week N+4? Line them up as rows and you'll know within two months whether you have a product or a demo — which is exactly the 43% PMF question above, asked early enough to still do something about it.
The v0 control plane (steal it)
One page. Build it before you need it, because the day you need it is the day it's too late to have historical data.
┌─ OPERATIONS ──────────────────────────────────────────────
│ Errors (24h): 12 · Failed jobs: 3 · Signups today: 8
│ Last webhook: stripe 14m ago · resend 2m ago
│ Recent errors [user_id · route · message · time]
│
├─ COST ────────────────────────────────────────────────────
│ MTD spend: $412 (infra $180 · model API $190 · other $42)
│ Cost per active user: $1.83 ▲ from $1.20 last month
│ Top 5 users by model spend ← where margins go to die
│
├─ MONEY ───────────────────────────────────────────────────
│ MRR: $2,340 · New: $310 · Churned: $190 · Net: +$120
│ Margin per customer, ascending (worst 10 rows)
│
└─ GROWTH ─────────────────────────────────────────────────
Cohort retention W1 W2 W4 W8
Signed up Jan 100% 41% 28% 22%
Signed up Feb 100% 47% 31% —
Four instrumentation rules that make it possible:
-
Append-only events table from day one.
user_id,event_name,properties,created_at. Nothing else. Write to it before you have anywhere to display it. -
Every row gets
created_atand an actor. Not "for auditing." So you can reconstruct sequence later, which is the only way to answer why. - Log the cost of every external call you make — tokens in, tokens out, model, user. Attribution after the fact is guesswork; attribution at call time is arithmetic.
- A nightly rollup job. Aggregate yesterday into a daily-metrics table. Your admin page should read summaries, never scan raw events, or it'll get slow at exactly the moment you start relying on it.
Total: maybe a day of work. AI will write nearly all of it for you, competently, the moment you actually ask for it.
The internal version of the same blindness
Everything above is about the app. The same hole exists in how the team runs, and it's the reason I ended up building in this space.
At Mecverse, we watched service teams answer "who worked on what, for which client, and was it billable?" by reconstructing a week from memory on Friday afternoon. Attendance tools answered "did they show up" — a question nobody was asking. The operating question was never captured at the moment it was answerable, so it got estimated later, badly, and invoices went out based on those estimates.
That's what Workclave exists to fix: every work session is linked to a project and client the moment it starts and approved before it can be billed, so the operator's dashboard reflects what actually happened rather than what someone remembered. Full disclosure, that's our product — but the design principle transfers whether or not you ever use it: capture the operating question at the moment it's answerable, not at the moment you need the report.
Anti-patterns to kill on sight
- "We'll add analytics when we have users." Users arrive; historical data does not arrive retroactively.
- Vanity metrics on the wall. Total signups only goes up. A number that can't go down isn't telling you anything.
- Blended averages with no distribution. Your average user is profitable. Your P95 user may be setting money on fire, and the average is specifically designed to hide that.
- A cost dashboard with no per-user denominator. "$400/month" is meaningless. "$1.83 per active user, up from $1.20" is a decision.
- Charts before data. Thirty days of honest numbers beats a beautiful graph fed by a table you started populating on Tuesday.
The uncomfortable summary
Vibe coding made building the product cheap. It did not make running the product cheap, and it quietly widened the gap between how fast you ship and how well you can see. Flexera says the disciplined organisations still waste 29%. CB Insights says a fifth of dead startups had unit economics that never worked. DORA says AI amplifies whatever system it lands in.
An app you can't observe is one you can only guess about. And every guess is expensive — you just don't get the invoice until later.
What's the one number on your internal dashboard that changed a decision? Or the one you desperately wish you'd started logging six months earlier? I'm collecting these — the cost-per-active-user line above came from someone else's answer to exactly that question.
Top comments (0)