FLAGSHIP · BI PLATFORM & METRIC GOVERNANCE
Retail Analytics Platform
Sixteen pages, forty-two metrics, one definition each — and the basis printed next to the number.
It started as a failure. The demo printed three different HHI values on three pages at once, an empty “Active customers” count beside a card reading 80, and three answers to “what revenue is at risk” in a single viewport. None were arithmetic mistakes — every page had written its own version of the same idea. So the fix wasn’t a formula, it was a layer: each metric now lives once in metrics.py, and a published catalogue gives every one a formula, a grain, a source table, an owner page and a gross-or-net basis — each pinned by a test with a hand-computed expected value.
The demand planner produced a forecast nobody scored. It now reports −18.9% variance, +$881k bias and a 50% hit rate within ±10%, and publishes a 209% MAPE rather than hiding it — the number is inflated by small SKU-month denominators, which is exactly why hit rate and variance sit beside it. A Finance page adds an income statement and balance sheet whose revenue, discounts and COGS are read from the sales fact, so its top line matches the Overview instead of describing a second company. A Marketing page adds acquisition economics, with campaign spend reconciled to the Finance page’s marketing expense line.
Two numbers are deliberately left unflattering. Inventory turnover appears twice — 8.1× cost-basis on Finance, usage-based on Inventory — because they are different measures that will not agree, so each states its basis instead of quietly picking one. And ROMI reads −758%, because the standard formula credits marketing with every dollar of company sales movement and revenue fell for reasons campaigns don’t drive. Metrics needing a source system this business doesn’t have — MRR, NPS, web funnel, HRIS, market share — are catalogued as not implemented, with the system each would require.
The site is prerendered: Playwright walks the real Flask app, freezes 100 charts to SVG, strips every <script>, and a checker then loads each page with networking blocked to prove it needs no server. That is why it opens instantly while the interactive Flask tier sleeps on a free instance.
Commercial
- Revenue / profit$51.0M · $11.7M
- Gross margin23.0%
- Net revenue retention104.4%
- Retention · logo churn94.3% · 5.7%
- ARPA · AOV$92,259 · $2,097
Finance
- Net margin4.6%
- Current ratio2.23×
- Working capital$7.46M
- AR turnover · ROA9.7× · 11.8%
Acquisition & forecast
- CAC · payback$17,655 · 9.1 mo
- CLV:CAC (12-mo basis)1.32×
- Forecast variance · bias−18.9% · +$881k
- ConcentrationHHI 30 (customers)