Back to Blog

How to Build a Rolling 12-Month Sales Report in Power BI

Apr 5, 2026
10 min read
TutorialsBy Emma Rodriguez

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

  • Using a static start date instead of MAX(Date)
  • Forgetting to include both >= AND <= in the filter
  • Not using a proper date table (this formula breaks with custom calendar logic)
  • 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:

  • Rolling 13 weeks (for weekly analytics)
  • Rolling 90 days (for trending)
  • Rolling fiscal year (change the MONTH calculation)
  • Related Articles