All work

Web app Case study

One dashboard instead of three tabs and a spreadsheet.

Every Monday, FlowMetrics' finance team rebuilt the same numbers by hand: Stripe in one tab, the billing system in another, a spreadsheet holding it together. This is the story of replacing that ritual with software.

FlowMetrics Fintech analytics platform

FlowMetrics — project cover
Timeframe
12 weeks to v1, then ongoing
Role
Full-stack build: data model, pipeline, dashboard, forecasting
Scope
  • Real-time revenue dashboard
  • Payment reconciliation engine
  • MRR forecasting model
  • Postgres data pipeline
Stack
  • React
  • TypeScript
  • Postgres

The brief

The Monday numbers took until Wednesday.

The team knew their numbers, eventually. Revenue lived in Stripe, subscriptions in the billing system, adjustments in a spreadsheet only one analyst fully understood. Producing the weekly picture meant hours of export-and-reconcile, and the answer to "what's MRR right now?" was always "as of last week."

Worse, the three sources disagreed. Refunds, currency conversion, failed retries: each tool counted them differently, so every board meeting began with ten minutes of explaining why two charts showed two truths.

The build

First make the numbers agree. Then make them fast.

The unglamorous work came first: a Postgres data model that ingests every payment event and normalises it into one ledger, with reconciliation rules the finance team could read and sign off. We spent two full weeks just on the edge cases: partial refunds, plan changes mid-cycle, the retry that succeeds after the month closes. That's where trust in a dashboard is won or lost.

On top of that ledger sits a React dashboard that answers the Monday questions in real time: revenue today, MRR movement, cohort retention, and a forecast. The forecasting model is deliberately boring, just seasonality plus cohort behaviour with no black box, because a CFO needs to defend a number, not admire it.

Each week I shipped a working slice and watched the analyst use it. Half the final design came from those sessions, including the reconciliation "diff view" that became the team's favourite feature, showing exactly which transactions explain any gap between Stripe and the books.

“We stopped arguing about whose number was right. There's just the number now.”
CFO, FlowMetrics

The result

The forecast the board actually uses.

The Monday ritual is gone: numbers that took two analyst-days a week now update continuously and reconcile to the cent. Over its first two quarters the MRR forecast landed within 6% of actuals, which is 94% accuracy, and it's now the number in the board deck, not the spreadsheet's.

The quiet win is what didn't happen: no more meetings about why two charts disagree. There's one ledger now, and everything draws from it.

What the work moved

94%
MRR forecast accuracy over two quarters
2 days → live
weekly reporting effort
1 ledger
where there were three sources of truth

Have a project like this one?

Book a free 15-minute call and tell me what you're building. If I'm not the right fit, I'll say so and point you somewhere better.

Book a call
Next case study IronForge