This guide gives UK SME teams a practical implementation path: start with the business question, check the data or workflow, build the smallest useful version, then document what has changed.
This guide gives UK SME teams a practical implementation path: start with the business question, check the data or workflow, build the smallest useful version, then document what has changed.
Model many-to-many relationships in Power BI with bridge tables, controlled filter direction and total validation.
2026-06-16 10 min read min read Digital Adaption On this pageMany-to-many relationships are where a lot of Power BI models become difficult to trust. They are sometimes necessary, but they need deliberate modelling rather than a quick relationship line between two messy tables. For broader reporting repair work, see the Power BI consultancy and ERP reporting analytics pages.
Practical answerUse a bridge table with one row per shared key where possible, keep filter direction controlled, and validate totals against source extracts before trusting the visual.
A many-to-many relationship means values in both tables can appear more than once. That can happen with customers and buying groups, products and categories, employees and sites, or invoices and projects.
Power BI can create many-to-many relationships directly, but the result is often harder to reason about. In commercial reporting, the safer pattern is usually a star schema with dimensions, facts and bridge tables.
A bridge table contains the distinct keys that connect two sides of the model. It gives Power BI a controlled path for filtering and makes the model easier to explain.
If the relationship includes weighting, ownership percentage or effective dates, the bridge table should include those attributes rather than hiding them in a measure.
Customer Bridge =
DISTINCT (
SELECTCOLUMNS (
CustomerAssignments,
"CustomerKey", CustomerAssignments[CustomerKey],
"GroupKey", CustomerAssignments[GroupKey]
)
)
The danger with many-to-many models is double counting. A customer attached to two groups may be counted twice unless the measure and relationship design match the reporting question.
Validate at the grain the business cares about. If the report is used for customer revenue, test customer totals first. If it is used for group performance, test group totals and explain any allocation rules.
If the source data has accidental duplicates, fix or model the grain first. A many-to-many relationship can hide the underlying data problem.
Bidirectional filters can create ambiguous paths and surprising totals. Use them sparingly and document why.
Grand totals can look right while individual rows are wrong. Trace real examples through the bridge.
Digital Adaption helps UK SMEs rebuild trusted Power BI, ERP and operational reporting after migrations, ownership gaps and model drift.
No. It is sometimes the correct model. The issue is using it casually when a bridge table, cleaned dimension or clearer grain would be safer.
The relationship may be duplicating rows through repeated keys. Check the grain of both tables and validate a single key before reviewing the whole report.
Start with a 30-minute data risk call