A stalled Power BI rollout, taken over and brought back on track
Mechanical engineering
A mechanical engineering company whose Power BI implementation had stalled, with inconsistent models and source systems that had never been connected. It now runs on one KPI framework, a report catalogue and a budgeting process built into the model.
One-off files, replaced by a catalogue with owners
The Power BI rollout had stopped halfway. Reports had multiplied as one-off files, the models underneath them disagreed, and several source systems had never been connected. We audited what existed, made it consistent and put one binding set of KPI definitions under all of it, the budget included.
report catalogue, with an owner and a purpose per report
1
binding KPI framework under every report, the budget included
1
steps in the takeover, each built on the one before
4
No outcome figures are published for this engagement: nothing exists that would let you check them, so what was built is described in full instead. Anonymised by sector and size, because the confidentiality that protects this client would protect you too. Sector and outcomes are real; identifying detail is not.
Before and after
One-off files
Reports as one-off filesNo stated owner, no stated purpose
Models that disagreedThe same measure built more than one way
Source systems never connectedData the reporting was meant to cover
Budget in a separate workbookPlan against actual needed reconciliation first
A report catalogue
One catalogue, one owner per reportEach report with its owner and its purpose
One version of each measureCleaned models under a binding KPI framework
The missing systems connectedSources that had never been integrated
Budget inside the modelNext to the actuals it is measured against
Before, reports were one-off files with no stated owner or purpose. Now each report sits in one catalogue with its owner and its purpose.
The engagement in full
Client
A mechanical engineering company of 50 to 250 people, with a Power BI implementation that had been started and then stalled.
Situation
Reports had multiplied as one-off files with no stated owner or purpose, the models underneath them disagreed, and several source systems had never been connected. A report nobody owns is a report nobody corrects.
Mandate
Take over the implementation, make what existed consistent, connect the systems it was missing, and bring the budgeting process into the model.
How the platform is run
Refresh routines are scheduled in a known order, so figures are current when people open them, and changes reach the reports through a defined release rather than ad hoc. Models, measures and reports are named the same way throughout, and the whole of it is written down so the client’s team can run the platform themselves.
How the takeover ran
Each step builds on the one before: nothing new was added until what existed was consistent.
Audit what existsReports with no owner, models that disagree
Clean up models and measuresOne version of each measure
Connect the missing systemsSources that had never been integrated
Put the KPI framework on topDefinitions, time intelligence, variance logic
The budgeting process, end to end
The budgeting process redesigned from data collection through to plan-against-actual reporting.
Data collectionBudget inputs gathered in one routine
Budget in the modelNext to the actuals it is measured against
Plan against actualReported from the same model
The architecture
Existing and newly connected sources feed cleaned models under one KPI framework, which the catalogued reports and the budget reporting both read.
Architecture decisions
Decision
Rejected alternative
Why
Audit before building
Adding new reports on top
The models underneath disagreed, so every new report would have inherited the disagreement.
A catalogue with an owner per report
More one-off files
A report nobody owns is a report nobody corrects, and the sprawl was the original problem.
One binding KPI framework
Definitions kept per report
Time intelligence and variance logic decided once mean every report answers the same way.
Budget inside the model
Budget kept in a separate workbook
Plan and actual read from one place, so plan against actual needs no reconciliation.
What the client has today
A report catalogue in place of the one-off files, with an owner and a purpose for each report.
Consistent models and measures, with the source systems that were missing now connected.
A binding KPI framework as the single source of truth for definitions, time intelligence and variance.
A budgeting process that runs from data collection to plan against actual inside the model.
Refresh and release routines, naming conventions and documentation for a clean handover.
Where it stands
A rollout that had stopped now has one set of definitions, an owner for every report and the budget in the same model as the actuals.
A retailer with Microsoft Fabric already in production, semantic models over Direct Lake and store revenue streaming in, who wanted forecasting, Copilot questions and anomaly detection on top of it.