What is Running Total in Power BI?
Tracking performance over time often means looking at spiky, hard-to-read charts that show daily or monthly ups and downs. A running total, or cumulative sum, smooths out this data, helping you visualize growth, track progress towards goals, and spot trends more effectively. This guide will walk you through exactly how to create a running total in Power BI, both with a simple point-and-click method and by writing your own powerful DAX formula.
What is a Running Total (and Why is it Useful)?
A running total simply adds up a series of values as you go. For example, if your sales were $100 in January, $150 in February, and $120 in March, the running total would be:
- January: $100
- February: $100 + $150 = $250
- March: $250 + $120 = $370
Instead of just seeing the performance for each individual period, you see how your total accumulates over time. This is incredibly useful for several reasons:
- Tracking Goals: Are you on pace to hit your quarterly revenue target? A running total chart makes it instantly clear how far you've come and how much is left to go.
- Identifying Momentum: Is your growth accelerating or slowing down? The slope of the running total line can reveal changes in momentum that you might miss in a standard bar chart.
- Visualizing Compounded Growth: It's perfect for tracking metrics that build on each other, like total users acquired, cumulative ad spend against a budget, or the total number of support tickets resolved.
In short, it transforms a series of individual data points into a connected story of your progress over time.
Method 1: The Quick and Easy Way with "Quick Measures"
If you're new to Power BI or just need a running total fast without getting tangled in formulas, the Quick Measures feature is your best friend. It writes the DAX code for you based on a few simple inputs.
Free PDF · the crash course
AI Agents for Marketing Crash Course
Learn how to deploy AI marketing agents across your go-to-market — the best tools, prompts, and workflows to turn your data into autonomous execution without writing code.
Step-by-Step Guide to Using Quick Measures
Let's assume you have a simple sales table with a 'SalesAmount' column and a 'Date' column.
- Locate Quick Measures: In the Home tab of the Power BI ribbon, click on Quick measure. You can also right-click your table in the 'Data' pane and select 'New quick measure'.
- Choose the Calculation: A new window will appear. In the 'Calculation' dropdown, find the Totals section and select Running total.
- Add Your Fields: You'll see two boxes to fill:
- Click OK: Power BI will automatically create a new measure with a DAX formula. You'll see it in the 'Data' pane on the right, usually named something like "SalesAmount running total in Date". You can rename it for clarity.
That’s it! You now have a measure ready to use in any visual. This method is fantastic for its speed and simplicity, though it offers less flexibility than writing the DAX yourself.
Method 2: Gaining Control with a Custom DAX Formula
When you're ready for more control and want to understand what's happening behind the scenes, you need to write your own DAX (Data Analysis Expressions) formula. While it looks intimidating at first, the pattern for a running total is a classic one that’s easy to learn.
We'll again use a 'Sales' table with 'SalesAmount' and a 'Date' table with a 'Date' column.
Step 1: Create a New Measure
In the 'Data' pane, right-click on your 'Sales' table and select New measure. This will open the formula bar at the top of the screen where you'll write your DAX code.
Step 2: Write the DAX Formula
Type the following formula into the formula bar. We'll break it down piece by piece below.
Running Total Sales =
CALCULATE(
SUM(Sales[SalesAmount]),
FILTER(
ALL('Date'[Date]),
'Date'[Date] <= MAX('Date'[Date])
)
)Step 3: Understand the Formula Breakdown
This formula might look complex, but it’s just a few simple pieces working together.
CALCULATE(): This is the king of all DAX functions. Its job is to modify the "filter context" of a calculation. Think of it as saying, "I want you to calculate something, but I need you to change the rules of how you do it." It takes an expression to calculate (our sum) and one or more filters to apply (ourFILTERfunction).SUM(Sales[SalesAmount]): This is the easy part. It's the expression we want to calculate — the total sales amount.FILTER(): This function creates the new set of rules thatCALCULATEwill use. We're telling it to look at a specific table (ALL('Date'[Date])) and only return the rows that meet our condition ('Date'[Date] <= MAX('Date'[Date])).ALL('Date'[Date]): This is the secret ingredient. Normally, if you create a chart by month, each month is its own "context." The February calculation only "sees" February data. TheALL()function effectively says, "Ignore the current month's filter for a moment and give me all the dates in the entire date table." This allows us to sum up values from previous months.'Date'[Date] <= MAX('Date'[Date]): This is our filtering logic. TheMAX('Date'[Date])part finds the very last date in the current context. So, when the chart is calculating the value for February,MAX('Date'[Date])is the last day of February. The entire line then tells the filter to return all the dates (thanks toALL) that are on or before the last day of February.
When you put it all together, the formula tells Power BI: "For each point in my visual, calculate the sum of sales for all dates from the very beginning up to and including the date for this point."
Visualizing Your Running Total
Once you've created your measure, using it is simple. The best way to show a running total is with a combo chart.
- Select the Line and clustered column chart from the 'Visualizations' pane.
- Drag your Date field (e.g., from your 'Date' table) onto the Shared axis.
- Drag your original SalesAmount measure onto the Column values.
- Drag your new Running Total Sales measure onto the Line values.
You’ll get a beautiful chart showing your monthly sales as bars, with an upward-trending line overlaid that represents your cumulative total for the year. This format makes it incredibly easy to see both individual monthly performance and the overall trend at the same time.
Common Issues and Bonus Tips
My Running Total Resets Every Year. How Can I Fix That?
If your running total line restarts at the beginning of each year, it's likely because your date filter from the ALL function is still being affected by a 'Year' filter. A slight modification to the formula ensures it ignores all date filters. Instead of using ALL('Date'[Date]), simply use ALL('Date') to remove filters from the entire date table.
Running Total Sales =
CALCULATE(
SUM(Sales[SalesAmount]),
FILTER(
ALL('Date'),
'Date'[Date] <= MAX('Date'[Date])
)
)Free PDF · the crash course
AI Agents for Marketing Crash Course
Learn how to deploy AI marketing agents across your go-to-market — the best tools, prompts, and workflows to turn your data into autonomous execution without writing code.
How Do I Make the Running Total Restart Each Year?
Conversely, sometimes you want the running total to reset. This is common for tracking progress toward an annual goal. You just need to add one more condition to your filter to keep the calculation within the same year.
RT Sales (Resets Yearly) =
CALCULATE(
SUM(Sales[SalesAmount]),
FILTER(
ALL('Date'),
'Date'[Date] <= MAX('Date'[Date]) &&
'Date'[Year] = MAX('Date'[Year])
)
)That extra 'Date'[Year] = MAX('Date'[Year]) condition ensures that the calculation only includes data from the current year of context.
Final Thoughts
Creating a running total is a fundamental skill in Power BI that unlocks deeper insights into your data's trends and momentum. Whether you use the simple Quick Measures feature for speed or write your own DAX for greater control, this calculation transforms a list of numbers into a clear, visual story of your performance over time.
Learning business intelligence tools and languages like DAX can often feel like a significant hurdle to getting straightforward answers from your data. We built Graphed because we believe anyone should be able to get business insights without becoming a data analyst. Instead of writing formulas, you can simply connect your data and ask things like, "show me a cumulative chart of my Shopify sales this year versus last year" in plain English, and have a real-time dashboard built for you in seconds.
Related Articles
How to Create Facebook Ads API for Claude Code
Create a Meta Marketing API access token that never expires, using a system user, so Claude Code can pull Facebook ad reports and manage campaigns.
ClickHouse vs Postgres: When to Switch to Columnar
Comparing ClickHouse vs PostgreSQL means matching storage architecture to workload. Row storage wins for transactions. Columnar wins for scan-heavy analytics.
Google Ads for Orthodontists: Get More Booked Consults
Most orthodontic Google Ads campaigns waste money on low-intent searches. The problem is structure, not the platform.