Back to Blog

Power BI Relationship Troubleshooting - A Practical Guide From the Field

April 9, 20268 min readMichael Ridland

I'd estimate about a third of the Power BI support tickets we handle come down to a relationship problem. Not a broken relationship - Power BI would tell you about that. The sneaky kind. The model looks fine, the data loads, the visuals render... but the numbers are just wrong. Or there are mysterious blank rows. Or a slicer does nothing.

These issues are frustrating because they often surface late. Someone builds a report, presents it in a meeting, and a finance manager says "those revenue numbers don't match what I see in our system." Then the scramble begins.

Microsoft has published a solid troubleshooting checklist that covers the technical detail. But after years of building and fixing Power BI models for Australian organisations, I want to share what we've actually seen go wrong and how to catch these issues earlier.

The Most Common Relationship Problems We See

Wrong Cardinality Settings

This is the number one offender. It happens like this: someone imports a table, Power BI auto-detects the relationships, and it gets the cardinality wrong. A column that should be "many" gets set as "one" because at the time of import, all the values happened to be unique. Then more data flows in, duplicates appear, and things quietly break.

We had a client in the logistics space whose weekly delivery report had been overstating volumes by about 15% for three months before anyone noticed. The root cause was a many-to-many relationship that Power BI had incorrectly inferred as one-to-many during initial development. The test dataset was too small and too clean to expose the problem.

The fix was straightforward - correct the cardinality setting. But the lesson was expensive. Always check cardinality against what you know about the data, not what Power BI guesses.

Inactive Relationships Causing Confusion

Power BI only allows one active relationship between two tables. If you need to relate Sales to Date by both Order Date and Ship Date, one of those relationships has to be inactive. That's fine - you use USERELATIONSHIP() in DAX to activate the inactive one when needed.

The problem is when people forget which relationship is active. Or when someone creates a new measure and doesn't realise it's using the wrong date relationship. The visual looks right - it shows dates and numbers - but the numbers correspond to order dates when the report was supposed to show ship dates.

We always document which relationships are active and which are inactive in our model documentation. It takes five minutes and saves hours of debugging later.

Mismatched Data Types

Here's one that catches people out more than you'd expect. You have a ProductID column in one table stored as a whole number, and the same ProductID in another table stored as text. Power BI will let you create the relationship. It won't even complain about it. But filters won't propagate because "123" the text doesn't match 123 the integer.

I've seen this happen particularly often when teams pull data from multiple sources. The ERP stores product codes as integers, the web platform stores them as strings, and nobody notices the mismatch until the report shows every product with zero sales.

The Blank Row Mystery

This one generates the most confused support emails. A report shows a blank row in a table or a blank item in a slicer, but the source data doesn't contain any blanks. What's happening?

In a regular relationship, Power BI creates a virtual blank row on the "one" side when values exist on the "many" side that don't have a match. So if your Sales table has a CustomerID of "C999" but your Customer dimension table doesn't have a row for "C999", Power BI groups that sale under a blank customer.

This is actually useful behaviour - it prevents data from silently disappearing. But it confuses people who expect their dimension tables to be complete. The real fix isn't to hide the blank - it's to figure out why your dimension table is missing entries.

A Systematic Troubleshooting Approach

When a report shows wrong numbers, resist the urge to start randomly checking things. Work through this sequence:

Step 1: Get to the raw numbers. Switch your visual to a table or matrix. Or use the "See Data" pane. Fancy visuals can mask problems. A bar chart might look approximately right when the underlying numbers are 20% off. A table makes discrepancies obvious.

Step 2: Verify the data loaded. Switch to Data view and check that your tables actually have rows. I know this sounds basic, but we've had cases where a data source connection timed out during refresh and left tables empty. The report still renders - it just shows zeroes everywhere.

Step 3: Check Model view. Open it up and look at the actual relationship lines. Solid lines are active relationships. Dotted lines are inactive. Check the arrow directions - they indicate which way filters propagate. A single arrow means one-directional filtering. Double arrows mean bidirectional.

Step 4: Verify the related columns. Hover over a relationship line to see which columns are connected. We've seen cases where someone accidentally related ProductID to CustomerID. Power BI doesn't know what your column names mean - it just tries to match values.

Step 5: Check filter direction. This is where things get subtle. If Table A filters Table B but not the reverse, you might get unexpected results depending on which table your visual pulls from. Most of the time, single-direction filtering is correct and bidirectional is the exception, but get this wrong and your visuals will show inflated or missing numbers.

Real-World Diagnosis Patterns

Here's a quick reference for the symptoms we see most often and what usually causes them:

Visual shows no data at all. Check whether Row-Level Security (RLS) is filtering everything out for your test user. Also check whether your tables actually loaded. And verify that relationships exist between the tables your visual uses.

Every group shows the same value. This almost always means there's no relationship between the grouping column and the measure column. Power BI is calculating the measure across the entire table instead of filtering it by group.

Numbers are close but not quite right. Look for duplicate values in a column that's set as the "one" side of a relationship. If your Customer table has two rows for "C123", every sale for that customer gets counted twice. This happens more than you'd think, especially with incremental loads that don't properly handle updates.

Blank rows appearing in slicers and tables. Your "many" side has values that don't exist on the "one" side. This is a data quality issue in your dimension tables. Fix it at the source or in Power Query, not by hiding blanks in the visual.

Prevention Is Cheaper Than Debugging

The best relationship troubleshooting is not needing to troubleshoot at all. Here's what we build into our Power BI development process:

Review auto-detected relationships immediately. When you first connect a data source, Power BI tries to detect relationships automatically. Sometimes it does a great job. Sometimes it creates relationships between columns that just happened to share similar names. We always review and manually verify every auto-detected relationship before building any visuals.

Test with realistic data volumes. A model that works perfectly with 1,000 rows can behave differently with 1 million. Cardinality assumptions change. Columns that were unique in testing have duplicates in production. Build your model against production-scale data, or at least a representative sample.

Document your model. We use a simple spreadsheet that lists every relationship, the cardinality, the filter direction, whether it's active, and why it exists. When something goes wrong six months later, you don't have to reverse-engineer the model designer's intent.

Add data quality checks in Power Query. Before data even reaches the model, validate that key columns don't have unexpected nulls, that data types are consistent, and that dimension tables have complete coverage. Catching a data quality issue in Power Query is much cheaper than debugging it in a finished report.

When to Ask for Help

Relationship problems are solvable, but they can be time-consuming if you're not familiar with the patterns. If you're seeing symptoms you can't explain, or if you've been going around in circles for more than an hour, it's worth getting a second pair of eyes on the model.

Our Power BI consulting team spends a lot of time helping organisations untangle model issues. Sometimes it's a five-minute fix that was just hard to spot. Other times it reveals a deeper modelling problem that needs a structural solution.

If you're building Power BI reports on top of Microsoft Fabric data sources, the complexity goes up another notch. Our Microsoft Fabric consultants can help you get the data architecture right so your models are clean from the start.

Wrapping Up

Relationship issues in Power BI are common, but they follow predictable patterns. Wrong cardinality, mismatched data types, incorrect filter directions, and missing dimension rows account for the vast majority of cases we see.

The good news is that Power BI gives you the tools to diagnose these problems - Model view, Data view, and the relationship editor are all right there. The key is knowing what to look for and working through the diagnosis systematically rather than guessing.

If your organisation needs help with Power BI model design or troubleshooting, get in touch with us. We've seen just about every relationship problem there is, and we're happy to save you the headache.