The logical layer that lets a half-migrated roll-up still answer one question consistently — model once, federate the data, generate insights anyway.
UFlex can't wait for eight overseas entity ERPs and every order desk to land on one ledger 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 an entity isn't on the common ledger yet.
Ten classes everything maps to. The Site / Plant is the keystone: it's where segment, leader, entity and geography reconcile.
100% of revenue is already site-grain actual; the rest is read in place from overseas entity ERPs / desk systems and reconciled — no big-bang migration required.
Every metric has one definition and a grain. The layer federates it across SAP S/4 and the overseas entity ERPs, flagging where a value is allocated.
| Metric | Definition | Grain | How it federates across entities |
|---|---|---|---|
| Revenue | Σ recognized revenue | site · order | actuals where on SAP; allocated from entity where not |
| EBITDA (reported) | revenue − COGS − SG&A (+ FX/derivatives, disclosed) | segment · entity | entity P&L normalized to one chart of accounts |
| Value-Added & Converting revenue | sticky CPG-contract revenue | contract | from SAP SD / order desk across lines |
| Value-added mix | value-added ÷ revenue | segment | federated — same formula, many sources |
| DSO | AR ÷ revenue × 365 | entity · site | overseas entities measured at entity grain, flagged |
| Contribution margin | (income − COGS) ÷ income | order · segment | mapped via canonical cost categories |
| CPG account NRR | expansion − attrition on base | customer / CPG account | resolved across duplicate account records |
Entity resolution matches plant / line / overseas-entity codes to one canonical node — so the Sanand aseptic plant lines up with the films entities and the order desk.
Query reads each line's data product in place; the semantic layer maps native SAP / plant-MES fields to canonical metrics.
Where an entity reports at entity or region level (Russia/CIS, Nigeria, the export desk), allocation disaggregates to site on learned drivers and marks it an estimate with a confidence band.
Allocated parts must tie back to the source total; anomalies and duplicate CPG-account records & suppliers across entities 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 SAP S/4 entities and overseas entity ERPs alike; 100% of the numbers are site-grain actuals and the balance is allocated and labelled. As each entity lands on the common ledger, its data product's grain rises and estimates flip to actuals — the mesh closes itself.