Build vs Buy

    You can vibe-code the dashboard.
    Not the intelligence behind it.

    An honest breakdown of what it actually takes to build SaaS analytics correctly — and where the dashboard you're picturing breaks down.

    The two halves of an analytics tool

    SaaS analytics is roughly 10% dashboard, 90% data system. The dashboard is what you’d ship in two weeks. The data system is what takes the next three months — and what you’ll get wrong without realizing it.

    10%UI shell
    90%Data engine
    Half 1 · The UI shell
    What vibe coding builds
    • Cards, charts, sparklines
    • Filters, date pickers, period selection
    • Layouts, drag-to-reorder
    • Theme tokens, dark mode, polish
    Realistic time
    1–2 weeks
    Looks great. Shows zero data until the engine works.
    Half 2 · The engine
    What it can’t
    • Stripe ingestion · pagination, rate limits, webhooks
    • Storage layer · schema, indexing, reconciliation
    • 30+ correct metric equations · with all edge cases
    • Quality assurance · cross-validation against ChartMogul
    • Production hardening · monitoring, sync recovery
    Realistic time
    13–25additional weeks
    The actual product. vs 1–2 weeks for the UI shell.

    Total to ship correctly: 15–27 weeks of full-time work, then 5–10 hrs/week forever.

    Out of nine phases, AI tooling meaningfully accelerates one

    The realistic timeline

    Phase by phase, what’s vibe-codable and what isn’t. These numbers assume one focused engineer with experience.

    Foundation No

    Stripe API integration · auth, pagination, rate limiting, webhook receiver, retry logic

    Realistic time
    2–4 weeks
    Data layer Partial

    Schema, indexing for time-series, refund / void / plan-change reconciliation

    Realistic time
    1–2 weeks
    Core metrics — MRR No

    5-component decomposition (new / expansion / contraction / churn / reactivation) with edge cases

    Realistic time
    2–3 weeks
    Core metrics — Churn No

    Logo vs revenue, voluntary vs involuntary, mid-cycle handling

    Realistic time
    1–2 weeks
    Core metrics — Other 28 No

    NRR, GRR, LTV, CAC payback, Quick Ratio, ARPA, ARPU, Magic Number, etc.

    Realistic time
    2–4 weeks
    Dashboard UI Yes

    Cards, charts, sparklines, filters, layouts

    Realistic time
    1–2 weeks
    Quality assurance No

    Cross-validate equations against ChartMogul, edge case tests, audit

    Realistic time
    2–3 weeks
    Debugging marathon No

    Customer-specific edge cases, data discrepancies founders catch in production, methodology disputes — the long tail nobody plans for

    Realistic time
    3–5 weeks
    Production hardening Partial

    Monitoring, alerting, sync failure recovery, cost optimization

    Realistic time
    1–2 weeks
    Initial total
    15–27 weeks

    Then 5–10 hrs/week forever.

    What's it really going to cost?

    Move the sliders. The numbers update live.

    $150/hr
    100 days · ~20 wks
    8 hrs/wk
    Where the 100 days go~20 weeks of focused work
    Foundation
    25 days
    Core metrics
    35 days
    Dashboard UI
    10 days
    QA + production
    30 days

    Only the Dashboard UI slice is meaningfully accelerated by AI tooling. The other ~90% is data, equations, and verification.

    Build cost breakdown
    Build time
    $120,000
    Year 1 maintenance
    $62,400
    Year 1 total
    $182,400
    Every year after
    $62,400
    North Metric
    Dashboard
    Free forever
    $0/year
    Pro · agents + benchmarks
    $79/mo
    $948/year
    Cumulative cost · 12 monthsbuild vs North Metric
    Build costNorth Metric
    Your savings · year 1
    $181,452$15,121/month
    Every year after
    $61,452

    This still doesn’t account for: numbers that look right but are wrong (until your board meeting catches them), Stripe API deprecations that break your sync at 2am, the 15–27 weeks you could have spent building your product instead, and the structural problem that benchmarks against 1,400 peers can’t be vibe-coded by one founder for one company.

    Eight reasons it breaks

    Why this is structurally hard

    Four are technical — effort solves them, but slowly. Four are structural — no amount of effort solves them.

    Technical· solvable, slowly
    01

    Stripe data is harder than it looks.

    Pagination (100 reads/sec rate limits), retry with exponential backoff, partial failure recovery, webhook handling, cursor management for incremental sync — every one is a new code path.

    e.g. 24 months of charges for a 200-customer SaaS = ~150K Stripe API calls.

    02

    Stripe doesn't give you metrics. You compute them.

    Stripe gives you raw events: subscription.created, invoice.paid, charge.refunded. None of those are MRR. None are churn. None are NRR. You derive every metric yourself — including all 5 MRR movement components (new, expansion, reactivation, contraction, churn) from those raw events.

    e.g. Get one wrong and every downstream metric — MRR growth, NRR, LTV — is wrong with it.

    03

    Every metric has five edge cases.

    Trials converting mid-month. Plan downgrades with refunds. Metered billing. Free-to-paid conversions. Multi-currency. Pause-and-resume. Each one is a separate code path with its own bugs — and discovering them is what takes the time.

    e.g. A customer who upgrades, downgrades, refunds, and re-upgrades in one billing cycle.

    04

    You won't know your numbers are wrong.

    Until your board meeting catches it. Or your investor update. Cross-validating equations against ChartMogul-style methodology is a 2–3 week project on its own — and most founders skip it until something breaks publicly.

    e.g. You report 5.2% churn to the board. Real churn is 7.8% — you missed pause-and-resume.

    Structural· effort doesn’t solve these

    Benchmark intelligence

    1,400+ Stripe-verified SaaS companies, matched to your MRR tier and category. You'd need to convince 1,400 founders to share their Stripe data with you. We already did.

    Dollar-impact quantification

    Every gap is priced. “Your churn is 2.4 points above the peer median — closing that gap is worth ~$1,800 MRR over 90 days.” No dashboard produces this number.

    AI agents that act on context

    Three agents read your Stripe data daily. Churn Radar finds at-risk accounts. Payment Recovery catches failed charges. Upgrade Finder spots expansion-ready accounts. Each finding priced and ranked.

    The daily briefing (The North)

    Every morning: what matters, in order, priced in dollars. Not a dashboard you have to interpret — a briefing that tells you exactly where to spend your next hour for maximum revenue impact.

    The playbook: how to build it yourself

    If you’re going to build, start with the right foundation. Nine phases — and where each one quietly absorbs more time than you planned.

    01

    02

    03

    04

    05

    06

    07

    08

    09

    And we guarantee it works

    Find 12.6% of your MRRin 14 days, or it’s on us.

    During your 14-day Pro trial, three agents — Churn Radar, Payment Recovery, and Upgrade Finder — read your Stripe data daily and price every risk and opportunity in dollars. If they don't surface at least 12.6% of your current MRR in actionable opportunities, we extend your trial automatically. If we still haven't found it, your first month of Pro is on us.

    Skip the build

    15–27 weeks of build.
    Or 3 minutes of Stripe OAuth.

    Free dashboard, 30+ metrics, drivers, period comparison — forever. Three AI agents finding opportunities you’d never see in a dashboard, yours or anyone else’s.