Skip to content

Year-to-date, month-over-month, rolling twelve weeks — this is most of what business reporting actually asks for, and it is also where DAX fails most quietly. The functions are short. The reason they return the wrong number is almost never the function itself: it is the date table underneath.

Read the calendar table setup before anything else. A marked date table that is contiguous, starts before your earliest fact and ends after your latest one, and is related to every fact table is the precondition for all of it. After that, the YTD/QTD/MTD pattern and the year-over-year comparisons cover the bulk of real requests, with rolling averages as the generalisation once windows stop being calendar-aligned.

Power BI's automatic date/time is the usual culprit in a model that produces plausible but wrong time intelligence. It creates hidden tables that work well enough to hide the problem until you add a second fact table or a fiscal calendar, at which point the numbers drift and nothing in the measure looks wrong.