SafePoint FM: one compliance view across 16 sites.
SafePoint FM manages statutory and governance compliance across a portfolio of managed sites. We turned 16 separate site registers into a single Power BI model and a dashboard their team can filter, drill into and act on.
Sixteen registers, sixteen ways of recording the same thing.
Each site kept its own Excel compliance register. The same check appeared under many different names, some registers started in a different column, and missing dates had been filled with placeholder values from 2001 and 2002.
That made the portfolio picture unreliable. Placeholder dates showed items as long overdue when there was simply no record, and nobody could compare sites or categories without rebuilding the figures by hand.
- 418 different item names across the registers
- Headers in different positions from one workbook to the next
- Placeholder dates hiding the difference between “overdue” and “no record”
- No single view of what is overdue, where, and how safety-critical it is
One model, one set of rules, one dashboard.
We combined every register with Power Query, standardised the item names to 41 statutory and governance checks, and loaded the result into a star-schema model. Compliance status is calculated in DAX against today’s date, so the picture is always current after each refresh.
- Folder-based Power Query load that finds each sheet’s real header row
- Item mapping table: 418 source names to 41 standard compliance items
- Placeholder dates converted to “No record” rather than “Overdue”
- Star schema: compliance fact with site, item, category, contractor, date and status dimensions
- DAX measures for compliance %, overdue ageing, 12-month pipeline and data quality
- Five report pages with synced slicers and cross-filtering
The dashboard, live on this page.
This is an interactive web version of the Power BI report, using the register data as at 5 October 2026. Site references and addresses are anonymised and contractor details are removed. Click the tabs, slicers, bars and heatmap cells to filter it.
What SafePoint FM can now see.
Each page is built around a question a compliance team needs answering.
Portfolio overview
Compliance % by site against the 95% target, status by compliance category, and a 12-month pipeline of what falls due, split by safety-critical items.
Site detail
One site at a time: its compliance score and rank, status mix, items by category and the full register, worst first.
Action tracker
A heatmap of overdue items by site and category, overdue ageing bands, and a prioritised list of overdue safety-critical items.
Data quality
Where records are missing or unverified, how the placeholder dates changed the picture, and the cleansing steps applied.
The Power Query and DAX behind it.
Three small examples of the logic in the model. The full report includes a Model & DAX page documenting every step.
Finding the header row
Some registers start in column B, so the load looks for the “Compliance Type” header instead of trusting fixed positions.
// simplified: find the real header row – some registers start in column B
fxReadRegister = (sheet as table) as table =>
let
HeaderRow = List.PositionOf (
Table.ToRows ( sheet ),
null,
Occurrence.First,
( row, _ ) => List.Contains ( List.Transform ( row, each Text.Clean ( Text.Trim ( Text.From ( _ ) ?? "" ) ) ), "Compliance Type" ) ),
Trimmed = Table.Skip ( sheet, HeaderRow ),
Promoted = Table.PromoteHeaders ( Trimmed, [ PromoteAllScalars = true ] )
in
PromotedStatus against today
Status is recalculated on every refresh, so an item moves from “Due Soon” to “Overdue” without anyone editing a spreadsheet.
Status =
VAR _Due = FactCompliance[Next Due]
RETURN
SWITCH (
TRUE (),
ISBLANK ( _Due ), "No Record",
_Due < TODAY (), "Overdue",
_Due <= TODAY () + 60, "Due Soon",
"Compliant"
)Compliance %
One agreed definition of “in date”, used by every visual, so the figure is the same wherever it appears.
Compliance % =
DIVIDE (
CALCULATE ( [Compliance Items],
KEEPFILTERS ( FactCompliance[Status] IN { "Compliant", "Due Soon" } ) ),
[Compliance Items]
)A portfolio picture the team can trust.
SafePoint FM can now see compliance across all 16 sites in one place, ranked against a 95% target and broken down by category, site and risk.
Separating 118 “no record” items from genuinely overdue ones gave a truer picture of the work outstanding, and shows exactly where records need to be found or inspections booked.
What SafePoint FM received.
- Power BI project (PBIP) with documented model and measures
- Reference tables for sites and item mapping they can maintain themselves
- Five-page report in SafePoint FM’s brand colours
- Refresh-ready folder load: drop in an updated register and refresh
“Our compliance information was spread across sixteen site registers, with the same checks recorded under different names and missing dates that made items look overdue when there was simply no record. Insightmere cleaned and standardised all of it and built a Power BI dashboard that gives us one reliable view of the portfolio. We can see where each site stands against our target, which safety-critical items need attention first, and where records need to be found. The work was clearly explained, and the dashboard was built around the questions we actually ask.”