Decide · Metrics
"What's our active members?" shouldn't have three answers. Flash defines each business metric once, certifies the caliber, and computes it on one engine — so a dashboard, an API call, and an AI agent never disagree.
GMV
$198,862
Active members
purchase · 90d
Open rate
delivered basis
Redemption rate
code-level
"Why did active members dip last month?"
→ picks the certified active_members caliber, breaks it down by store & channel — never invents a number.
The problem
GMV, churn, redemption rate — each gets redefined in every report, so two teams quote two numbers and nobody knows which is right.
Point an LLM at raw tables and it writes SQL against columns it doesn't understand — confident, untraceable, and often wrong.
Letting analysts query raw tables means cross-tenant leaks and hand-rolled filters — one wrong WHERE clause from a data incident.
How it works
80+ business metrics across seven categories, each with a single definition, plain-language guidance, and one computation path — read by every surface from the same source.
GMV, net GMV, orders, AOV, refund & discount rate.
Active members, retention, churn-risk, LTV signals.
New / total / marketable members, tier moves, opt-in rate.
Issued, redeemed, expired, breakage, outstanding liability.
Sent, delivered, open / click / bounce / unsubscribe rate.
Page views, sessions, portal blocks, UGC, abandoned cart.
Referrals, ambassadors, D2C channel orders, coupons.
Add custom metrics with a structured editor or guarded SQL — dry-run first.
One definition · every surface reads the same number
ONE DEFINITION
active_members
Certified caliber, owner-locked. Changed only through a reviewed PR — git is the approval trail.
Dashboards
same number, same caliber
Reports & API
same number, same caliber
SoTag in Slack
same number, same caliber
MCP AI agents
same number, same caliber
A certified metric is locked to its owner; changing its caliber goes through a reviewed PR, so the definition has an approval trail instead of quietly drifting.
Build with a no-SQL structured editor, or write SQL that can only read security-barrier metric_safe_* views — team-isolated by the database, not by your WHERE clause.
Ask a question; Flash picks the right governed metric, applies its certified caliber, and breaks it down by store, channel or tier — grounded, never guessed.
Why it's different
Dashboards let every report invent its own caliber — so the numbers drift. Modeling layers define metrics but don't make them tenant-safe or AI-callable. Flash governs the definition andmakes the same metric the only way AI agents and dashboards can read it.
Typical approach
BI / spreadsheet metrics
Every report redefines GMV or churn — three tools, three numbers.
Flash, by design
One certified caliber, owner-locked, versioned — change it once, everywhere updates.
Typical approach
dbt / LookML semantic layers
Define metrics, but leave AI access and tenant isolation to you.
Flash, by design
The same governed metric is exposed as an MCP tool and isolated by security-barrier views.
Typical approach
Raw-SQL AI copilots
Write queries against tables they don't understand — and hallucinate.
Flash, by design
AI can only call governed metrics; it returns the caliber-correct number or says it can't.
AI & innovation
SoTag in Slack and MCP agents don't query your tables — they call the same governed metrics your dashboard reads. So the number an agent quotes is the number on your screen, by construction.
Metrics are exposed to AI agents as governed MCP tools — scoped, tenant-isolated, and caliber-correct — so agents act on the same truth as your team.
Every built-in metric now computes on one DB-driven engine — so 'ask the AI' and 'open the dashboard' can't return different numbers.
If a question maps to no governed metric, the AI says so instead of fabricating a query — trust over a confident wrong answer.
One number per metric, an approval trail behind it, and AI answers you can actually trust.
80+
governed metrics across 7 categories
1 caliber
per metric — certified & owner-locked
1 engine
every dashboard, API & agent reads the same
0 raw SQL
AI calls governed metrics, never your tables
We'll walk the catalog, certify a metric live, and ask it in plain language — on a real account.