5.2 FIXED LOD Expressions: Scoping & Baseline Benchmarks

Key Takeaways

  • FIXED LOD expressions calculate an aggregate using strictly the dimensions specified in their declaration list, completely ignoring what dimensions are present or absent on the visualization shelves.
  • Table-scoped LOD expressions omit dimension declarations entirely ({FIXED : SUM([Sales])}), computing an absolute scalar grand total across the entire filtered dataset.
  • FIXED calculations can function as either Dimensions or Measures in the Data pane, allowing them to slice views, partition table calculations, or form bins.
  • In Tableau's Order of Operations, FIXED LOD expressions evaluate BEFORE standard Dimension Filters, meaning dimension filters do not affect FIXED calculations unless promoted to Context Filters.
  • Benchmarking and market share calculations divide row-level or view-level values by a FIXED baseline (e.g., SUM([Sales]) / ATTR({FIXED [Region] : SUM([Sales])})).
Last updated: September 2026

5.2 FIXED LOD Expressions: Scoping & Baseline Benchmarks

Among the three Level of Detail expression types, FIXED is the most widely utilized and conceptually powerful. A FIXED LOD expression computes an aggregate using exclusively the dimensions declared in its syntax, operating in complete isolation from the dimensions present on the visualization canvas.

Mastering FIXED expressions requires understanding their unique independence from the view, how table-scoped expressions establish dataset-wide baselines, their ability to function as discrete dimensions, and their critical positioning within Tableau's Order of Operations relative to Context Filters.


The Mechanics of FIXED: Complete Isolation from the VizLOD

When you author a FIXED calculation, you explicitly define the exact dimensional scope of the computation. Tableau executes that aggregation independently and rejoins the result to the main dataset.

Consider the expression:

{ FIXED [Region] : SUM([Sales]) }

When Tableau processes this formula, it instructs the database:

SELECT Region, SUM(Sales) AS Regional_Sales
FROM Orders
GROUP BY Region;

Regardless of what you place on the Rows, Columns, or Marks shelves:

  • If your worksheet shows Region on Rows, {FIXED [Region] : SUM([Sales])} returns the exact same number as SUM([Sales]).
  • If you drill down and add Category and Sub-Category to Rows, SUM([Sales]) fragments to show sales for each individual sub-category. However, {FIXED [Region] : SUM([Sales])} does not change. Every single sub-category row belonging to the 'West' region displays the identical regional total ($725,458).
  • If you remove Region entirely and display only Segment, {FIXED [Region] : SUM([Sales])} continues to evaluate behind the scenes at the Regional grain.

This behavior makes FIXED ideal for creating static benchmarks, regional denominators, and comparative ratios that remain stable during visual exploration.


Table-Scoped LOD Expressions: The Global Dataset Scalar

A special variation of the FIXED syntax is the Table-Scoped LOD expression. A table-scoped LOD omits the dimension declaration list entirely:

// Standard table-scoped syntax
{ FIXED : SUM([Sales]) }

// Shorthand syntax supported by Tableau
{ SUM([Sales]) }

How Table-Scoped Expressions Work

When no dimension is specified before the colon delimiter, Tableau instructs the database engine to aggregate the measure with an empty GROUP BY clause:

SELECT SUM(Sales) AS Grand_Total_Sales FROM Orders;

This produces a single, constant scalar value representing the grand total of the entire dataset (subject only to extract, data source, and context filters). Every single row in the dataset receives this exact same number.

Table-Scoped FIXED vs. Table Calculation TOTAL(SUM([Sales]))

Candidates frequently confuse table-scoped LODs with the table calculation TOTAL(SUM([Sales])). The architectural differences are substantial:

Evaluation Criterion{FIXED : SUM([Sales])}TOTAL(SUM([Sales]))
Calculation EngineDatabase / Hyper Engine (Pre-query subquery)Tableau Client Engine (Post-query cache)
View DependencyIndependent of view dimensions and layoutHighly dependent on compute using / addressing
Availability in CalculationsCan be used in row-level calculations & dimensionsCannot be used inside row-level formulas
Filtering SensitivityBypasses standard Dimension FiltersAffected by all Dimension Filters

FIXED Calculations as Dimensions: Slicing the View

A unique architectural superpower of FIXED expressions is that they can be converted into Dimensions in the Data pane. INCLUDE and EXCLUDE expressions can never become dimensions because their values depend on the active VizLOD. FIXED expressions, however, evaluate independently of the view.

If a FIXED calculation is scoped to an entity (such as Customer ID), each customer has an unambiguous, single value. Tableau allows you to drag this field into the Dimensions area and set it to Discrete (blue):

Example: Customer Acquisition Cohorts

// Customer Acquisition Date
{ FIXED [Customer ID] : MIN([Order Date]) }

Because every customer has exactly one minimum order date, this expression produces a single date per customer. You can right-click this calculated field, convert it to a Dimension, and drag YEAR([Customer Acquisition Date]) onto the Rows shelf. You can then drag Sales onto Columns to see total revenue grouped by customer cohort year!

Other common dimension use cases for FIXED include:

  • Slicing views by customer spend tiers (IF {FIXED [Customer ID] : SUM([Sales])} > 1000 THEN 'VIP' ELSE 'Standard' END).
  • Classifying stores by their opening year.
  • Grouping patients by their first diagnosis date.

The Critical Order of Operations Interaction: Context Filters vs. Dimension Filters

Understanding how FIXED expressions interact with filters in Tableau's Order of Operations is the single important LOD concept on the certification examination.

+-------------------------------------------------------------+
|                 TABLEAU ORDER OF OPERATIONS                 |
+-------------------------------------------------------------+
|  1. Extract Filters                                         |
|  2. Data Source Filters                                     |
|  3. Context Filters  (Grey Pills)                           |
|=============================================================|
|  >>> 4. FIXED LOD EXPRESSIONS <<<                           |
|=============================================================|
|  5. Dimension Filters (Blue Pills)                          |
|  >>> 6. INCLUDE / EXCLUDE LOD EXPRESSIONS <<<               |
|  7. Measure Filters (Green Pills)                           |
|  8. Table Calculations (WINDOW_AVG, TOTAL, LOOKUP)          |
+-------------------------------------------------------------+

The Fundamental Rule of FIXED and Filters

  • FIXED LOD expressions evaluate BEFORE standard Dimension Filters.
  • FIXED LOD expressions evaluate AFTER Context Filters.

The Real-World Impact: The Market Share Dilemma

Suppose you create a dashboard calculating regional market share:

[Regional Market Share] = SUM([Sales]) / ATTR({FIXED : SUM([Sales])})

Assume total nationwide sales across all four regions (East, West, Central, South) equals $2,000,000, with the West region generating $500,000 (25%).

  1. Without a Filter: The West bar shows $500,000 / $2,000,000 = 25%.
  2. Applying a Standard Dimension Filter: The user adds Region as a standard Dimension Filter (blue pill on the Filters shelf) and selects only 'West' and 'East'.
    • SUM([Sales]) in the view responds to the filter.
    • However, {FIXED : SUM([Sales])} evaluates before the dimension filter! The denominator remains $2,000,000 (the entire nationwide dataset).
    • The West region displays 25%, and East displays 30%. The sum of visible bars equals 55%, not 100%!
  3. Promoting to a Context Filter: The analyst right-clicks the Region filter pill and selects Add to Context (the pill turns grey).
    • Now, the filter executes at Step 3, before the FIXED LOD runs at Step 4.
    • Tableau creates a temporary context table containing only West and East ($1,100,000 total).
    • {FIXED : SUM([Sales])} now computes $1,100,000.
    • The West bar accurately reflects $500,000 / $1,100,000 = 45.45%, and the visible bars sum to 100%.

[!IMPORTANT] Core Exam Rule: If a FIXED Level of Detail expression must change its value when a user interacts with a dimension filter, you must add that dimension filter to Context. If you want the FIXED calculation to remain static regardless of user filtering, leave the filter as a standard Dimension Filter.


Baseline Benchmarking Patterns

FIXED expressions excel at establishing benchmarks against which categories, time periods, or entities are compared.

Pattern 1: Contribution to Regional Total (Category Share of Region)

To show how much each product category contributes to its regional parent total, use a FIXED expression scoped to Region:

// Denominator: Fixed Regional Sales
SUM([Sales]) / ATTR({ FIXED [Region] : SUM([Sales]) })

Note on Aggregation: Because {FIXED [Region] : SUM([Sales])} returns a value for every row, dividing SUM([Sales]) (an aggregate) by an LOD requires wrapping the LOD in ATTR(), SUM(), MIN(), or MAX() to prevent "Cannot mix aggregate and non-aggregate arguments" errors.

Pattern 2: Variance from a Regional Benchmark

Comparing each sub-category's average profit against the overall regional average profit:

AVG([Profit]) - ATTR({ FIXED [Region] : AVG([Profit]) })

Common Exam Traps with FIXED LOD Expressions

Trap 1: Measure Inflation from Replicated Rows

If you author {FIXED [Region] : SUM([Sales])} and place it on a view that is aggregated at the Order ID level, the regional total is replicated across every order in that region. If you drag this field to Columns with the default SUM aggregation, Tableau sums the regional total for every single row, inflating the number by thousands of times! Always verify whether an LOD measure should be aggregated as AVG, MIN, MAX, or ATTR when placed in views finer than its declared scope.

Trap 2: Slicing by Unrelated Dimensions

If you write {FIXED [Category] : SUM([Sales])} and place Region on Rows, every region will display the exact same number (the global sales of all categories combined). A FIXED calculation knows nothing about dimensions outside its brackets unless those dimensions are declared or enforced via Context Filters.

Loading diagram...
Order of Operations: Context Filters vs. FIXED LOD vs. Dimension Filters
Test Your Knowledge

An analyst creates the calculation [Customer First Date] = {FIXED [Customer ID] : MIN([Order Date])} to identify customer acquisition dates. When the analyst adds a standard Dimension Filter for YEAR(Order Date) = 2026 to the worksheet, a customer whose first order was placed in 2024 still displays 2024 as their acquisition date. Why does the 2026 filter fail to restrict the calculation?

A
B
C
D
Test Your Knowledge

An analyst needs to calculate each Region's sales as a percentage of total nationwide sales: SUM([Sales]) / [Nationwide Sales Baseline]. Which calculation correctly computes the nationwide sales baseline as a scalar grand total across the entire dataset regardless of what dimensions are placed on the worksheet?

A
B
C
D
Test Your Knowledge

Why can a calculated field containing a FIXED Level of Detail expression be converted into a discrete Dimension in the Data pane, whereas INCLUDE and EXCLUDE expressions are strictly restricted to Measures?

A
B
C
D