The logical layer that lets a half-integrated roll-up still answer one question consistently — model once, federate the data, generate insights anyway.
Pavion can't wait for every acquired ERP to migrate before it gets answers. The fix isn't one warehouse — it's a shared ontology (so everyone means the same thing) over a data mesh (each brand owns its data as a product), with a semantic layer that federates them. Insights generate today; they just carry a confidence flag where a brand isn't integrated.
Ten classes everything maps to. The Office is the keystone: it's where brand, leader, entity and geography reconcile.
86% of revenue is already office-grain actual; the rest is read in place from legacy systems and reconciled — no big-bang migration required.
Every metric has one definition and a grain. The layer federates it across integrated and legacy domains, flagging where a value is allocated.
| Metric | Definition | Grain | How it federates across brands |
|---|---|---|---|
| Revenue | Σ recognized revenue | office · job | actuals where integrated; allocated from area where not |
| Adjusted EBITDA | revenue − COGS − SG&A (+ add-backs) | BU · entity | entity P&L normalized to one chart of accounts |
| ARR | recurring contract value | contract | from monitoring/PX systems across all brands |
| Recurring mix | ARR ÷ revenue | BU | federated — same formula, many sources |
| DSO | AR ÷ revenue × 365 | entity · office | legacy entities measured at area grain, flagged |
| Gross margin | (revenue − COGS) ÷ revenue | job · BU | mapped via canonical cost categories |
| Net retention | expansion − churn on base | customer | resolved across duplicate customer records |
AI matches legacy entity / brand / office codes to one canonical node — so RFI's data lines up with everything else.
Query reads each brand's data product in place; the semantic layer maps native fields to canonical metrics.
Where a brand reports at area level, AI disaggregates to office on learned drivers and marks it an estimate with a confidence band.
Allocated parts must tie back to the source total; anomalies and duplicate customers/suppliers across brands are surfaced.
This is not theoretical — it's how this cockpit already works. The Story, Briefing and 360 views read the same governed metrics over integrated and non-integrated brands alike; 86% of the numbers are office-grain actuals and the balance is AI-allocated and labelled. As each brand integrates, its data product's grain rises and estimates flip to actuals — the mesh closes itself.