SQL Server, Fabric, Power BI,
built by someone who knows what a routing is.
You need one person who can read your ERP’s schema, stand up a data layer in SQL Server or Microsoft Fabric, build the semantic model, and write the Power BI measures so they agree with the controller. Julian Bergquist has built data systems for 28 years. He leads every engagement and brings in a small, named team when a build needs it.
Any of these is a reason
to bring in a specialist.
- The refresh that feeds the board deck is owned by a vendor who no longer answers.
- The one person who knew the SQL left, and the queries left with them.
- Fabric is licensed and nobody has built in it yet.
- Three plants on three systems feed one deck, by hand, every month.
- You are changing ERPs, and the history has to survive the move.
In each case the work is a defined build that your own team runs afterwards, not a standing dependency.
What gets built,
layer by layer, in your tenant.
| Layer | What it is | Where it lives |
|---|---|---|
| Raw | ERP extracts, untouched, by mirroring, pipeline, gateway, or ODBC, depending on what the ERP allows. | A Fabric lakehouse or a SQL Server you run |
| Conformed | One layer that settles site, company, calendar, cost basis, and promise date. | The same lakehouse or database |
| Model | One semantic model. Each measure written down once and documented. | Your Power BI or Fabric workspace |
| Views | Reports for the controller, the plant, and the board, drilling to the same transactions. | Your workspace, under your logins |
| Operations | Refresh, monitoring, and runbooks your team can follow. | Your repository and your tenant |
| Job | Actual cost | Margin |
|---|---|---|
| J-4483 | $39,200 | 38.8% |
| J-4471 | $32,300 | 33.0% |
| J-4476 | $23,900 | 24.1% |
| J-4489 | $18,000 | 34.3% |
| J-4480 | $17,300 | 8.5% |
| Plant, all jobs | $283,800 | 31.2% |
One page per measure,
written before it is coded.
Each measure gets a record: the table, the filter, the cost basis or the date, the owner, and when it was last reconciled. Your controller and your IT lead are in the room when it is written. The model is built from these records, and so is the handoff documentation, so the two cannot drift apart.
The example is constructed. Yours will name your tables.
- Measure
- Margin by job
- Definition
- (Revenue − actual cost) ÷ revenue
- Cost basis
- Current unit cost, at job close
- Includes
- Material, labor, overhead absorbed, outside services
- Site
- One per report, stated in the title
- Owner
- Controller
- Reconciled
- Against the ERP’s job cost report, 2026-10-14
Five numbers,
each with a decision waiting on it.
| Number | The question it settles | The decision it supports |
|---|---|---|
| Margin | What did this job, part, and customer earn, on one cost basis? | Requote, reprice, or stop taking the work |
| Delivery | What shipped late against the date we promised, and what caused it? | Expedite, reschedule, or change how dates are promised |
| Inventory | What is on the shelf, what is it worth, and what has not moved? | Reorder points and the excess and obsolete reserve |
| Quality | What did scrap and rework cost, by job, part, and work center? | Where the engineer goes first |
| Capacity | What is loaded on each work center against what it can run? | Overtime, outsourcing, and quoted lead times |
Any ERP for the data layer.
Two for the ERP itself.
The data layer is built on whatever ERP you run, as long as its database can be reached: a SQL Server application database, Actian Zen over ODBC, a vendor’s data lake. Work inside the ERP itself is taken only on Infor CSI/Syteline and Global Shop Solutions, where we arrive knowing the tables. On another ERP the walkthrough starts with its schema and the people in your shop who know it, and the audit says plainly whether the data can be reached well enough to build on. The conditions state the same line.
Start with the audit.
Two weeks, fixed price, the same four steps on any ERP. It ends in one of three recommendations: build the model, convert the ERP, or do nothing yet. If it recommends a build, the scope and price are in the report, and the report is yours to take anywhere.
- 01 Walkthrough Documented review of how the ERP is actually used, in the system and in the spreadsheets around it.
- 02 Reconcile Find where margin, delivery, and inventory numbers disagree, and why.
- 03 Grade Report card by module: healthy, misconfigured, abandoned.
- 04 Recommend The next step, priced. You keep the report either way.
- Graded report card by module
- Reconciliation of conflicting numbers
- Priced recommendation
- On-site option, priced by size and location
Or write to hello@mfg-analytics.com. We reply with a short intake and two or three session times.
The person who scopes the work is the person who writes the SQL and the person who sits with your controller to agree the definitions. That is the whole reason this practice is small. At the end your team holds the source and the runbooks, and I come back ninety days later to see whether the model is holding.
Julian Bergquist · Principal, MFG Analytics · About the practice