white printing paper with numbers

Made with Fable 5.1Operators who need a revenue number they can trust

RevOps

One dashboard that unifies customers, subscriptions, renewals, and revenue across Stripe, AWS Marketplace, GCP Marketplace, and direct invoices, anchored to the general ledger. A Stadil product, white-labeled by Scalr.

Internal tool

Deployed at Scalr on real revenue data, so there is no public instance. The preview above uses illustrative figures. Photo: Mika Baumeister on Unsplash.

RevOps with illustrative figures and fictional customers. The real instance runs on the deploying company's books.

Four billing rails each have their own dashboard and none of them shows the company. RevOps merges them into one entity per customer, keeps committed and on-demand revenue as two streams that are never silently combined, and renders any difference from the books as an explicit reconciliation gap rather than a plug.

Data as code, no database

A Python pipeline pulls each source and builds a single committed JSON file. The web app is a pure function of that file, so every number is diffable in git history and any clone rebuilds from the checked-in inputs.

Identity anchored to the ledger

A customer who leaves Stripe and continues on AWS stays one customer with continuous history, merged by curated references, never by name heuristics. Closed months anchor to the QBO profit and loss.

Recognition is layered

Committed revenue is recognized straight-line over the service window; on-demand usage is recognized in the month billed and never deferred. Deferred revenue waterfalls produce the schedules finance books the close from.

Corrections happen upstream

A wrong figure is fixed in the pipeline or a curated map and rebuilt. Each build writes review files that surface unlabeled customers and unresolved invoice windows for a human to curate.

white printer paper with black text

Photo: Denny Müller on Unsplash

Specifications

Stack
Python 3.12 pipeline, Next.js 16, React 19, Tailwind, TypeScript
Sources
Stripe, AWS Marketplace, GCP Marketplace, QuickBooks Online, Mixpanel, Ramp
Views
Revenue, customers, accounts, receivables, retention, growth, forecast, cash, spend, KPIs, financials
Storage
One committed data file per build; no server, no runtime API calls
Close cycle
Monthly; closed months anchor to the GL, open month from billing sources
Refresh
Operator-run pipeline inside a Claude session, then a commit

Principles

  1. 1The books win. Differences are reported, never resolved by adjusting the dashboard.
  2. 2Two streams stay two streams.
  3. 3Identity is curated, never inferred.
  4. 4Internal does not mean careless. Small audience, full polish.