The logical layer that lets a half-migrated group still answer one question consistently — model once, federate the data, generate insights anyway.
Parle Agro can't wait for every plant and franchise bottler to migrate to SAP 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 segment owns its data as a product), with a semantic layer that federates them. Insights generate today; they just carry a confidence flag where a segment isn't on SAP yet.
Ten classes everything maps to. The Plant / Bottler is the keystone: it's where segment, leader, brand and geography reconcile.
59% of revenue is already site-grain actual; the rest is read in place from legacy plant/franchise systems and reconciled — no big-bang migration required.
Every metric has one definition and a grain. The layer federates it across on-SAP and legacy domains, flagging where a value is allocated.
| Metric | Definition | Grain | How it federates across segments |
|---|---|---|---|
| Revenue (filed) | Σ recognized revenue | site · order | actuals where on SAP; allocated from area where not |
| Adjusted EBITDA | revenue − COGS − opex (+ add-backs) | segment · brand | P&L normalized to one chart of accounts |
| Power-brand revenue | repeat power-brand revenue | brand · contract | from SAP SD / MES across all segments |
| Power-brand mix | power-brand ÷ revenue | segment | federated — same formula, many sources |
| DSO | AR ÷ revenue × 365 | entity · site | legacy/export desks measured at area grain, flagged |
| Gross margin | (revenue − COGS) ÷ revenue | order · segment | mapped via canonical cost categories |
| Repeat-purchase rate | expansion − attrition on base | channel / distributor | resolved across duplicate distributor records |
Entity resolution matches legacy site / segment / brand codes to one canonical node — so the franchise-bottler data lines up with everything else.
Query reads each segment's data product in place; the semantic layer maps native SAP / MES fields to canonical metrics.
Where a segment reports at area level, allocation disaggregates to plant on learned drivers and marks it an estimate with a confidence band.
Allocated parts must tie back to the source total; anomalies and duplicate distributor / channel records & suppliers across segments 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 on-SAP and legacy segments alike; 59% of the numbers are site-grain actuals and the balance is SAP-allocated and labelled. As each segment migrates to SAP, its data product's grain rises and estimates flip to actuals — the mesh closes itself.