One data layer for a group grown by acquisition — built on Microsoft Fabric.
A US industrial distribution group of 30+ operating companies grown by acquisition — on multiple ERPs, with millions of SKUs across catalogs and no unified master data. We built one governed data platform on Microsoft Fabric that gives headquarters a single, group-wide view of inventory, sales and procurement.
- IndustryIndustrial distribution
- Project typeData Engineering & AI
- Team3 + client
- Duration7 months · ongoing
A US industrial distribution group, grown one acquisition at a time.
Each operating company kept its own ERP, its own SKUs, its own customers and its own vendors — and its own monthly reporting pack. Headquarters wanted one picture.
- 30+ operating companies across the group, on multiple ERP systems
- Millions of SKUs across operating companies, before consolidation
- Same product, customer or supplier under unrelated codes across systems
- Portfolio reports reconciled across companies by hand

One entity, a different code in every company.
Every acquisition adds its own ERP, its own SKUs, its own customer and vendor masters — another reporting island. Leadership could see each company on its own; what they could not see was the enterprise underneath.
The same physical product under different part numbers, the same customer under unrelated codes across operating companies, the same supplier as several vendors on separate bills — invisible as one entity in enterprise reports.
Cross-company queries ran in minutes. Reports like profit by product at group and operating-company level for a given period took days to build by hand — and changing the date range meant rebuilding the join logic from scratch.
- Operating companies keep their ERPs — the platform integrates and standardizes; it does not replace local systems of record.
- Global product, customer and vendor identity require business stewardship and exception handling, not a one-time mapping exercise.
- Newly joining operating companies must onboard through a repeatable playbook, not a custom integration project each time.
- Governed gold-layer models precede wide self-service access to raw source data.
- Historical traceability is non-negotiable — finance and operations need to explain every number back to a source ERP transaction.
How the platform works.
One enterprise identity for product, customer and vendor. One governed warehouse everything reports against. A repeatable onboarding path for each new operating company that joins the group.

The customer row is the story: MRDN-482 and 10029841 are Meridian Manufacturing on two operating companies — the mapping layer resolves them to one enterprise ID (ENT-C-00482), so group-wide volume rolls up in enterprise reports.
Global Product, Customer & Vendor Masters
Local codes stay local. Each operating company's SKU, customer and vendor records map to a single enterprise identity — so total on-hand for an equivalent product, group-wide volume for the same account and portfolio-wide spend with the same supplier roll up on one ID.
Medallion on Fabric — reporting reads from gold
Bronze preserves raw ERP extracts; silver cleanses and normalizes to a common enterprise schema; gold consolidates product, customer, vendor, inventory, sales and procurement in one warehouse. Dashboards and reports read from gold — not from multiple ERPs joined at query time.
Repeatable acquisition onboarding
Each new operating company follows the same ingest → standardize → publish path, with shared validation gates and product, customer and vendor cross-reference. The limiting factor on the next onboarding is data quality review, not a greenfield integration project.



On the same platform foundation.
- Predictive analytics
Demand forecasting on the governed history — so procurement stops guessing per region and starts committing to volumes with confidence.
- Pricing and supplier scorecards
Consolidated spend and margin per vendor and product line — so commercial teams renegotiate from a full picture, not a per-company snapshot.
- AI-assisted matching
Rule- and stewardship-driven cross-reference in v1; ML-assisted matching as mapping history accumulates — so each new operating company onboards faster than the last.
Three engineers, one lead, and the client's business team.
A small team delivered end-to-end, alongside the client's business team on the domain calls master data can't answer alone. The stack is standard Microsoft data — Fabric, OneLake, Power BI — patterns any team already using the platform can maintain. Same senior-led shape we describe in how we work.
Team
- Solution architect / tech leadFull-timeArchitecture, Fabric governance, ERP integration, master data design, technical oversight
- Microsoft Fabric engineerFull-timePipelines, OneLake, bronze / silver / gold, transformations, performance
- Power BI developerFull-timeSemantic models, KPIs, executive dashboards, self-service analytics
- Client business teamFull-timeRequirements, classification rules, mapping validation, KPI alignment, UAT
Stack
What changed at headquarters.
Cross-company data stopped being a reconciliation exercise.
Group inventory position: reconciled across companies by hand → one live view of the whole portfolio.
The same customer across operating companies: several accounts on separate books → one enterprise ID with group-wide volume in sales reports.
The same supplier across operating companies: several vendors on separate bills → one enterprise ID with group-wide spend in procurement reports.
Onboarding a newly acquired operating company: bespoke integration project → repeatable playbook — multiple new companies onboarded through the playbook since go-live.
Reporting source of truth: multiple ERP extracts joined at query time → one governed gold layer everything reads from.
Advanced analytics (forecasting, pricing, AI matching): impossible without unified history → a governed foundation to build on.

This is you if…
- Your data lives in too many places to trust one answer.
ERPs, spreadsheets, SaaS tools, regional databases, ad-hoc extracts — each with its own schema and refresh rhythm. Leadership asks a straightforward question; the team spends days joining sources instead of answering it. You don't need another point integration — you need one governed place where the business can query.
- The same thing has different names in different systems.
A customer, product, site or supplier can appear under unrelated codes across sources. Without a master data layer, enterprise roll-ups are manual, approximate or impossible. Whether it's five operating companies or five departments, the fix is the same: map local records to one enterprise identity upstream.
- Getting a report still takes too long — and changing the period means starting over.
Cross-source queries run in minutes; the reports leadership actually needs take days to assemble. When the date range or entity filter changes, someone rebuilds the join logic from scratch. You want a warehouse and semantic layer where those questions are a few clicks, not a new project.
If any of that sounds familiar — that's the problem a governed data warehouse is built to solve. Not another extract. One layer you can actually run the business on.
Have data spread across too many systems to trust one answer?
Multiple ERPs. Spreadsheets on top. A customer or supplier under a different code in every source. Reports that reach leadership already stale. It's exactly the shape of problem we take end to end: a discovery phase to lock the model, then a governed data platform your business can actually run on.