Tableau Funtion: RUNNING_MIN( )
Tableau Function: RUNNING_MIN( )
Category: Table Calculation Functions
Purpose
The RUNNING_MIN() function in Tableau is a table calculation that returns the minimum value encountered so far within a partition. For each row, it evaluates all values from the first row through the current row and returns the smallest value seen up to that point.
In simple terms, RUNNING_MIN() answers:
“What is the lowest value reached so far?”
Type of Calculations
Table calculations
Cumulative (running) calculations
Order-dependent comparisons
Trend floor and low-point analysis
RUNNING_MIN() is evaluated after aggregation and depends on the view’s sort order and table calculation direction.
Practical Use Cases
Tracking record lows over time
Monitoring minimum performance levels
Identifying lowest values reached to date
Comparing current values against historical lows
Analyzing downside risk or performance declines
RUNNING_MIN(expression)
| Parameter | Type | Description |
|---|---|---|
| expression | Aggregate / table calculation | The numeric expression whose running minimum will be calculated. Must be aggregated in the view. |
How It Works?
Mathematical / Logical Principle
For each row n, RUNNING_MIN() calculates:
RUNNING_MIN = MIN(values from row 1 to row n)
This produces a rolling minimum that can only stay the same or decrease as additional rows are evaluated.
Example Formula
RUNNING_MIN(SUM([Sales]))
Returns the lowest Sales value reached up to each point
What Does It Return?
Data Type: Numeric (same type as the expression)
Meaning:
Returns the minimum value from the first row through the current row
The value is non-increasing across rows
Example Output
| Row | Value | RUNNING_MIN() |
|---|---|---|
| 1 | 100 | 100 |
| 2 | 120 | 100 |
| 3 | 90 | 90 |
| 4 | 110 | 90 |
When Should We Use It?
Use RUNNING_MIN() when you need to:
Identify cumulative low points
Track worst performance to date
Analyze downside trends or risk exposure
Compare current values to historical minimums
Build alerts or benchmarks for underperformance
Basic Usage
Running minimum of a measure
RUNNING_MIN(SUM([Sales]))
Displays the lowest Sales value reached so far
Column Usage
Track lowest profit to date
RUNNING_MIN(AVG([Profit]))
Useful for monitoring declining performance
Difference from running minimum
SUM([Sales]) - RUNNING_MIN(SUM([Sales]))
Shows how far current sales are above the historical low
Advanced Usage
Flag new record lows
IF SUM([Sales]) = RUNNING_MIN(SUM([Sales]))
THEN "New Low"
ELSE "Above Minimum"
END
Highlights new minimum values
Running minimum within partitions
RUNNING_MIN(SUM([Sales]))
(with Compute Using set per Category)
Tracks lowest values independently per group
Tips and Tricks
Always define sorting clearly (especially for time series)
Best used with ordered dimensions like Date
Combine with
RUNNING_MAX()for range analysisIncorrect sorting can produce misleading results
Not suitable for row-level or LOD expressions
Related Functions
Functions commonly used alongside or as alternatives to RUNNING_MIN():
RUNNING_MAX()RUNNING_SUM()RUNNING_AVG()WINDOW_MIN()LOOKUP()INDEX()
We’ve got plenty of resources to help you master Tableau functions. For more details, check out the official Tableau documentation. Or, if you’re ready for more practice, let’s dive into related functions and build your Tableau skills further!
If you’re ready to harness the full power of Tableau and elevate your data analytics capabilities, our expert Tableau consulting services are here to guide you. Whether you need support with building advanced calculated fields, creating dynamic visual dashboards, or optimizing your data sources for peak performance, our team of experienced Tableau consultants delivers customized solutions designed for your business needs. Visit our Tableau Consulting page to discover how we can help your organization turn data into impactful, insight-driven decisions.
It returns the lowest value encountered so far within a partition.
Yes, sorting determines the order in which values are evaluated.
Yes, it is evaluated after aggregation and depends on the view layout.
No, the running minimum never increases as more values are evaluated.
RUNNING_MIN() accumulates progressively, while WINDOW_MIN() computes a minimum over a fixed window.