// CASE_STUDY_2026
TABLEAUANALYTICS

THE FLAWLESS TABLEAU WATERFALL CHART

A step-by-step Tableau project that shows how to build a clean waterfall chart using a single-axis Gantt bar method, with a minimal dummy dataset, calculated fields, and region/year filtering.

The Flawless Tableau Waterfall Chart (Gantt Method)

Most Tableau waterfall chart tutorials work—until your data becomes even slightly realistic.

As soon as you introduce subtotals, multiple business drivers, or filters like region and fiscal year, the chart starts breaking or becoming hard to explain.

This guide shows a cleaner approach.

Instead of forcing Tableau into a bar chart workaround, we will use a single-axis Gantt method. The dataset stays simple, and all logic is handled through calculated fields.

You can explore the full interactive dashboard here:

View Tableau Dashboard

What You’ll Build

By the end of this tutorial, you will have a waterfall chart that is not only visually correct, but also easy to maintain and extend. It will support filtering by region and fiscal year and will behave consistently even with subtotals.

Dataset Design (Keep This Simple)

We are intentionally using a minimal dataset with only five fields:

  • Fiscal Year
  • Region
  • Step Order
  • Waterfall Segment
  • Value

There are no helper columns. No “type” field. No pre-labeling.

This keeps the data easy to understand and shifts all logic into Tableau.

📄 Download Waterfall Dataset (CSV)

Why This Matters

A clean dataset builds trust. If someone opens your CSV and immediately understands it, your project feels far more professional.

Phase 1 — Load and Inspect Data

Start by connecting Tableau to your dataset. Once loaded, confirm that all five fields are present and correctly typed.

Phase 2 — Create a Basic Bar Chart

Before building the waterfall, create a simple bar chart.

Drag:

  • Waterfall Segment → Columns
  • Value → Rows

Then sort using Step Order (ascending).

This chart is not correct yet — it simply shows the raw structure of the data.

Phase 3 — Create the Core Calculated Fields

This is where the waterfall logic is built.

A key principle here:

  • Structure (logic) is handled by one field
  • Color (visual) is handled by another

This separation prevents Tableau from breaking the calculation when color is added.

wf_bar_type

This defines whether a row is a checkpoint (Total) or a movement (Delta).

// Name: wf_bar_type
// Purpose: Classify each segment as Total or Delta

CASE [Waterfall Segment]
    WHEN 'Initial Pipeline' THEN 'Total'
    WHEN 'Mid-Year Forecast' THEN 'Total'
    WHEN 'Final Commit' THEN 'Total'
    ELSE 'Delta'
END

wf_bar_color

This is only used for color.

// Name: wf_bar_color
// Purpose: Assign colors without breaking table calculations

IF ATTR([wf_bar_type]) = 'Total' THEN 'Total'
ELSEIF SUM([Value]) > 0 THEN 'Increase'
ELSE 'Decrease'
END
IMPORTANT

Using `ATTR()` ensures Tableau does not change the calculation context when color is added.

wf_value_to_sum

This controls how the running total is calculated.

// Name: wf_value_to_sum
// Purpose: Feed the running total correctly

CASE [Waterfall Segment]
    WHEN 'Initial Pipeline' THEN [Value]
    WHEN 'Mid-Year Forecast' THEN 0
    WHEN 'Final Commit' THEN 0
    ELSE [Value]
END

The first total starts the waterfall.
Other totals are checkpoints and should not be added again.

wf_running_total

// Name: wf_running_total
// Purpose: Calculate the cumulative balance

RUNNING_SUM(SUM([wf_value_to_sum]))

This represents the actual value after each step.

wf_position_fixed

// Name: wf_position_fixed
// Purpose: Define where each bar starts

IF ATTR([wf_bar_type]) = 'Total' THEN 0
ELSE [wf_running_total]
END

Totals start at zero.
Movement bars start at the current running position.

wf_size_fixed

// Name: wf_size_fixed
// Purpose: Define bar height and direction

IF ATTR([wf_bar_type]) = 'Total' THEN [wf_running_total]
ELSE -SUM([Value])
END

This creates the waterfall effect:

  • totals draw full bars
  • deltas connect visually

wf_label

// Name: wf_label
// Purpose: Show the value after each step

[wf_running_total]

Phase 4 — Build the Waterfall Chart

Now convert the chart.

  • Change Marks → Gantt Bar
  • Replace Rows → wf_position_fixed

Then drag:

  • wf_size_fixed → Size
  • wf_bar_color → Color
  • wf_label → Label

Your chart should now look like a proper waterfall.

Phase 5 — Validate the View

Before formatting, make sure:

  • One Fiscal Year is selected
  • One Region is selected

If not, Tableau will aggregate multiple waterfalls together.

If something looks slightly off, verify:

→ Compute Using → Waterfall Segment

In simple views, Tableau often handles this automatically.

Why Adding Color Broke the Chart

At one point, the chart worked - until color was added.

This happens because Tableau may change how calculations are grouped when a new dimension is introduced.

The fix was:

  • Separate structure (wf_bar_type) from color
  • Use ATTR() inside the color calculation

This keeps the logic stable while still allowing color.

What You Learned

This project shows how to:

  • Keep datasets simple
  • Move logic into calculated fields
  • Build stable waterfall charts
  • Avoid common Tableau pitfalls
  • Separate logic from presentation

Why This Method Works

A normal bar chart only controls height. A Gantt chart controls:

  • starting position
  • bar length

That extra control is what makes the waterfall align correctly.

Final Thought

This approach scales cleanly into dashboards, forecasting models, and executive reporting.

CLEAN STRUCTURE ALWAYS BEATS CLEVER HACKS.