How to Build a Rolling 12-Month Sales Report in Power BI
Rolling 12-Month Reports Explained
A rolling 12-month report shows the last 12 months from TODAY, not from the end of your fiscal year. This is what executives actually want to see.
The DAX Formula
Rolling 12M Sales =
VAR LastDate = MAX('Date'[Date])
VAR FirstDate = DATE(YEAR(LastDate), MONTH(LastDate) - 12, DAY(LastDate))
RETURN
CALCULATE(
[Total Sales],
'Date'[Date] >= FirstDate,
'Date'[Date] <= LastDate
)
Why This Works
1. We find the maximum date in our filter context (usually TODAY)
2. We calculate 12 months back from that date
3. We use CALCULATE to filter our [Total Sales] measure to that range
Making It Dynamic
To show it by month, add a slicer with `'Date'[Month]` and the report updates automatically as you move through the year.
Common Mistakes
Real-World Example
If today is April 22, 2026, this formula pulls sales from April 22, 2025 through April 22, 2026. Perfect for "year-over-year" conversations.
You can extend this for:
Related Articles
10 DAX Mistakes That Are Slowing Down Your Power BI Reports
Most slow Power BI reports share the same root causes. Here are the 10 most common DAX mistakes we see in client files — and exactly how to fix each one.
Star Schema vs Flat Table: Which Should You Use in Power BI?
The data model you choose has a bigger impact on performance than any DAX optimisation. We break down when to use a star schema and when a flat table is fine.