Happy 2026! If you’re still hunting for a New Year’s resolution, here’s a good one: get to know your data model like it’s your best friend! Understanding how your relationships work, especially the sneaky bidirectional ones, can save you hours of head-scratching and help your reports tell the right story from the start.
And to prove the point, I’ve got a story for you. A real-life example of how things can go sideways when relationships go rogue…
The other day I was helping a colleague with some DAX that just wasn’t behaving.
You know that feeling when a measure should work, but the numbers look… off?
Whenever that happens, I go straight to the data model.
Nine times out of ten it gives me the answer.
And this time? Well, it didn’t disappoint… or maybe it did!
I opened the model and there it was: a tangled mess of bidirectional relationships, crisscrossing like spaghetti thrown by a toddler, chaotic, sticky, and impossible to unravel at first glance.
A quick chat about relationships
In Power BI, relationships are basically the roads your filters travel on. A single‑direction relationship is like a one‑way street. You can send filters from your product table down to your sales table, but not the other way round.
A bidirectional relationship is like a two‑way street. Filters can travel from Products to Sales and back again. Sounds useful, right? It is, but sometimes it means your measures start giving you results you didn’t expect.
If you would like to learn more about data modelling in Power BI, try the Microsoft module Model relationships in Power BI Desktop .
Let’s make it simple with an analogy
Think of two neighbourhoods:
Products: a nice list of products and their categories.
Sales: every single transaction.
With a one‑way street, you can start in Products (“Show me Electronics”) and see only those sales.
But you can’t start in Sales (“Show me products that sold more than £200”) and drive back to Products to cut them down.
With a two‑way street, though, that filter will drive back. Suddenly your Products table shrinks because it’s now being filtered by what’s happening in Sales.
Give it a go!
Here’s a small dataset you can play with.
Import these two tables into Power BI and create a relationship from Dim_Products[ProductID] (one) to Fact_Sales[ProductID] (many).
Fact_Sales:
| SalesID | ProductID | Quantity | Revenue |
|---|---|---|---|
| 1 | A | 2 | 200 |
| 2 | A | 3 | 300 |
| 3 | B | 1 | 100 |
| 4 | C | 4 | 400 |
| 5 | C | 2 | 200 |
| ProductID | Category |
|---|---|
| A | Electronics |
| B | Furniture |
| C | Electronics |
Add this measure to your model:
Count of Categories =
DISTINCTCOUNT(Dim_Category[Category])
The fun part, watch the change!
With a single‑direction relationship:
That filter on Sales doesn’t go back to Products.
Your card will still show 2 categories (Electronics and Furniture) even though not both have sales over £200.

Switch to bidirectional:
Now the filter travels both ways.
Your card suddenly shows 1 category (Electronics) because Furniture didn’t meet the filter.

My takeaway
It wasn’t the easiest thing to explain to my colleague, he was convinced the issue was in the DAX. To be fair, he admitted he didn’t know much about dimensional modelling.
So, pretty please: before jumping into the report view, writing measures, or building visuals, take the time to shape your data model properly and understand how your relationships behave. It’ll help you steer clear of unexpected results later on.
And if you’re already working on visuals and your DAX is acting up, don’t just stare at the formula, take a moment to check your data model. The issue might be hiding in plain sight.
Bidirectional relationships can be powerful, but they can also throw a spanner in the works when you least expect it. A small change in the model can completely shift the story your visuals are telling.
So, happy modelling, and here’s to clean relationships, well-behaved filters, and visuals that tell the story you actually meant to tell!
Thank you for joining me on this journey. Until next time, let’s keep crafting accessible insights that make a difference!



