Skip to content

The model is the part of Power BI that is hardest to change later and easiest to get wrong early. A star schema — fact tables of events, dimension tables that describe them, one-to-many relationships flowing downhill — is not a style preference. It is the shape that lets the VertiPaq engine compress well and lets DAX measures stay short enough to read.

Start with the star schema guide and the relationship cardinality explainer, then the many-to-many and bidirectional material. Those two topics account for most of the models that look fine until a filter behaves unexpectedly, and both are easier to reason about once the one-to-many baseline is solid. Incremental refresh and aggregation belong here too, but they are scale decisions rather than design decisions.

The pattern that causes the most trouble is using bidirectional filtering to make a visual work instead of fixing the relationships underneath. It usually does make that one visual work. It also introduces ambiguity into every other filter path in the model, and the cost shows up later, in a report that is slow for reasons nobody can locate.