← Blog
ConceptsAug 7, 2026

How to Show Period-over-Period % Change in Power BI Without DAX

By Tino Callarisa

The Question Every Bar Chart Eventually Gets Asked

"Bars are fine, but how much did each one change from the last one?" It's one of the most common follow-up questions on any time-series bar chart — month-over-month revenue, quarter-over-quarter headcount, year-over-year units sold — and it's rarely answered by the chart itself.

The Standard Approach — and Why It's Annoying

The usual fix in Power BI is a DAX measure: something like a variance-percent calculation using CALCULATE and a time-intelligence function (PREVIOUSMONTH, SAMEPERIODLASTYEAR, or a manual index-shift pattern), then a second visual element — a label, a callout, or a separate line — to actually display it next to each bar.

This works, but it has real costs:

  • Every new period comparison (month-over-month vs year-over-year vs vs-budget) needs its own DAX measure.
  • The measure breaks silently if the date table, granularity, or filter context changes — a common source of "why is this number wrong" debugging sessions.
  • Positioning the variance label next to the right bar, with the right color and the right arrow direction, is a manual formatting exercise repeated on every report.
  • None of this transfers automatically to Small Multiples — splitting the same chart across categories usually means redoing the calculation logic per panel.

What Good Period-over-Period Display Needs

  • Automatic detection of "previous" — whatever the axis granularity, the visual should know which bar precedes which without a separate configuration step per report.
  • Clear positive/negative encoding — color and arrow direction, consistently applied.
  • Connector or callout style that doesn't clutter a chart with many bars.
  • Compatibility with Small Multiples — comparing variation across several categories side by side, sharing one Y scale, is often the actual point of the analysis.

Bar Chart with Variation % for Power BI

Bar Chart with Variation % calculates and displays the percentage change between consecutive bars automatically — drop in an axis and a measure, and the variation appears with zero DAX, zero calculated columns.

What it adds

  • Automatic variation % between every consecutive bar, with arrows and connector lines showing direction at a glance.
  • Small Multiples with a shared Y scale — 3 panels on Free, unlimited on Pro — for comparing variation across categories or regions side by side.
  • Analytical lines (Pro): average, min, max, median, or a custom reference — overlaid directly on the bars.
  • A reference band (Pro) for acceptable ranges, e.g. budget ± 5%.
  • Conditional formatting per bar via the native Power BI fx button (Pro).
  • Value labels on bars (Pro), for presentations and exports where hovering isn't an option.
  • Drill-down on hierarchies, cross-filtering, and high-contrast accessibility mode included on every tier.

Getting Started

  1. Drag a category or date field to Axis.
  2. Drag a numeric measure to Values — variation % is calculated automatically between every consecutive bar.
  3. Optionally drag a category to Small Multiple to split into side-by-side panels.
  4. Drag any field to Tooltips for additional hover context.

If "how much did this change since last period" is a question your bar chart gets asked constantly, it's worth having the chart answer it by default instead of building a DAX measure for every new comparison.

Related visual
Bar Chart with Variation % →