We want to compute a metric at a fixed level of detail that does not change when the visualization changes.
Example business questions:
- What is total sales per customer regardless of how the dashboard is sliced?
- What is the average order size per region even when the view is filtered by product?
- What is the lifetime revenue of each account while viewing daily transactions?
Key Concept
A Fixed Level of Detail metric means:
Calculate a value grouped by specific dimensions regardless of the dimensions in the current visualization.
This is fundamentally a grouped aggregation that is independent of the view grain.
Example:
| OrderID | Customer | Product | Sales |
|---|---|---|---|
| 1 | A | Bike | 100 |
| 2 | A | Helmet | 50 |
| 3 | B | Bike | 200 |
If the visualization shows Product, we still want:
| Product | Customer Sales |
|---|---|
| Bike | 150 |
| Helmet | 150 |
Because Customer A total sales = 150, even though the view is at Product level.
That is the problem both tools must solve.
What a FIXED LOD Expression Is
In Tableau, Level of Detail (LOD) expressions allow you to control the level at which an aggregation is computed, independent of the visualization.
The most common type is FIXED, which explicitly sets the grouping dimensions.
Syntax:
{ FIXED [Dimension] : Aggregation }
Example:
{ FIXED [Customer Name] : SUM([Sales]) }
This means:
Compute the total sales for each customer regardless of what dimensions exist in the view.
Example
Imagine a dashboard showing Sales by Product.
But we want to display Total Customer Sales alongside each product.
FIXED Calculation
Customer Total Sales =
{ FIXED [Customer Name] : SUM([Sales]) }
Result:
| Product | Customer | Sales | Customer Total |
|---|---|---|---|
| Bike | A | 100 | 150 |
| Helmet | A | 50 | 150 |
The Customer Total stays constant because the grouping dimension is fixed.
Why FIXED Exists
Tableau normally aggregates based on the dimensions in the view.
Example:
SUM(Sales)
If the view contains:
Region + Product
The aggregation is:
SUM(Sales) BY Region, Product
But sometimes analysts need to override the view grain.
That is exactly what FIXED does.
Important Behavior
FIXED calculations operate before dimension filters in Tableau’s order of operations.
Meaning:
Filters applied to the dashboard may not affect the FIXED result unless they are added as context filters.
This behavior is one of the reasons migrations can break.
When Tableau Developers Use FIXED
Common use cases include:
- customer lifetime value
- cohort metrics
- percent of total calculations
- normalized metrics
- ranking logic
- stable denominators in ratios