The Part of Data Modelling Everyone Skips (That Breaks Everything Later)
Your measure is right, your data reconciles, and your year-to-date is still wrong - because the model never had a real date table, only a date column pretending to be one.
Posts about DAX.
Your measure is right, your data reconciles, and your year-to-date is still wrong - because the model never had a real date table, only a date column pretending to be one.
A dimension table isn't just a lookup. Why fact-to-dimension relationships have to be many-to-one, why bidirectional filtering always causes problems, and how to build dimensions your DAX can trust.
In a small team, you're the analyst, the engineer, the dashboard designer, and the person who explains what a p-value is at the all-hands.
The analysts who get traction aren't the fastest at pulling data, they're the best at unpacking what was actually being asked. The skill is asking good questions, and nobody trains for it.
Slow reports get blamed on complex measures. Complex measures get rewritten. And the report is still slow — because the actual problem is a flat table with 47 columns, many-to-many relationships, a…
Most dashboards answer the question 'what happened?' Very few answer 'what should we do?' The gap isn't data — it's intent. A dashboard built for the former often actively gets in the way of the la…
SUMX, AVERAGEX, MAXX — these functions bring row context back into a measure, which sounds helpful until they don't behave the way you expect inside a CALCULATE. Part 4 closes the series with the p…
You delivered a clean model, a solid dashboard, a real solution — and got a blank look in the room. The work was right. But explaining technical work to someone who doesn't share your frame of refe…
Time intelligence functions look simple - TOTALYTD, SAMEPERIODLASTYEAR — until they aren't. The reason they break isn't the function. It's that context transition interacts with your date table…
Power Query is a brilliant transformation tool. Most of the M code in production is doing things that belong in DAX, SQL, or Python - and the models are slow and the code is unmaintainable.
CALCULATE is the most powerful function in DAX - and the most misunderstood. Once you see how it deliberately replaces the filter context rather than adding to it, every confusing measure result …
More charts don't mean more insight. Every visual you add is a question your stakeholder has to answer before they understand the point - and most reports ask them to answer fifteen questions bef…
You'll build a clean single-page report: KPI cards, a trend line, and one slicer. The kind that gets opened voluntarily, not just emailed as a screenshot. Starting from a blank canvas, ending with …
DAX's context confusion cost me hours. Turns out, it's just two simple ideas.