Measure Killer Measure Killer

These docs are still being polished — a few sections and screenshots are on the way. Spotted something off? Let us know.

Table relations

See every way one table can filter another — through active relationships, inactive relationships, and intermediate tables. Essential for debugging filter context in complex models.

Last updated · May 25, 2026

What it does

Table Relations shows you every path through which one table can filter another in your semantic model. For each path, you see:

  • Every relationship in the chain (from source to target)
  • The direction of each relationship (one-to-many, many-to-one, many-to-many)
  • The cross-filter direction (single, both)
  • Whether each relationship is active or inactive

This is especially useful in complex models with many tables, bi-directional relationships, and auto-detected relationships where manual tracing is impractical.

A complex Power BI model with many tables, relationships, and bi-directional cross filters

When to use it

  • Debugging unexpected filter behavior. A slicer on one table is filtering (or not filtering) a visual on another table in a way you don’t expect. Table Relations shows you exactly which relationship chain is causing it.
  • Understanding USERELATIONSHIP effects. Before writing a USERELATIONSHIP call, check which inactive paths exist between two tables — and what activating one would do to filter propagation.
  • Auditing a model you didn’t build. When you inherit a model with dozens of tables and complex relationships, Table Relations gives you an instant map of how filters flow — faster than tracing arrows in the Model view.
  • Spotting ambiguous filter paths. If two active paths reach the same table through different chains, you have ambiguous filter propagation that can produce incorrect results. Table Relations surfaces these immediately.

How to use it

  1. Run an analysis in Measure Killer (any mode — desktop, online, or tenant analysis).
  2. Click Table Relations in the toolbar.

Table Relations button in the Measure Killer toolbar

  1. Select the source table on the left — this is the table whose filter you want to trace.
  2. Select the target table on the right — this is the table you want to check is affected.
  3. Click Next.

Selecting dimCalendar on the left and trCountries on the right in the Table Relations dialog

Measure Killer displays every valid path between the two tables.

All relationship paths from dimCalendar to trCountries — three paths showing direction, cardinality, and active/inactive status

Direction matters

The left-side table is the filter source: “how can this table filter the right-side table?” Swapping the tables may give different results depending on relationship cross-filter directions and cardinality.

Include inactive relationships

Check the Include inactive relationships option (top-left) to see paths that go through inactive relationships. These paths don’t propagate filters by default but can be activated with USERELATIONSHIP in DAX.

Multi-select

You can select multiple tables on either side for a comprehensive overview of filter paths across the model. This is useful for getting a full picture of how a dimension table reaches every fact table, for example.

What to do with the findings

  • Remove unused inactive relationships. If an inactive relationship is never activated by any USERELATIONSHIP call (check with the DAX expressions search), it can be safely removed to simplify the model.
  • Fix ambiguous active paths. If two active paths reach the same table, consider deactivating one and using USERELATIONSHIP explicitly when needed.
  • Simplify bi-directional relationships. If a bi-directional relationship exists only because of a specific filter requirement, consider replacing it with a single-direction relationship plus a CROSSFILTER call in the measures that need it.