How to Create a Waffle Chart in Tableau

Cody Schneider8 min read

Tired of the same old bar charts and pie charts? A waffle chart is a visually engaging way to show progress toward a goal or represent parts of a whole. Built from a 10x10 grid, it uses color to represent a percentage or completion rate, making complex data incredibly easy to understand at a glance. This tutorial will walk you through creating a stunning 10x10 waffle chart in Tableau, step by step.

GraphedGraphed

Build AI Agents for Marketing

Build virtual employees that run your go to market. Connect your data sources, deploy autonomous agents, and grow your company.

Watch Graphed demo video

What is a Waffle Chart (And Why Should You Use One)?

A waffle chart, also known as a square pie chart or matrix chart, consists of 100 small squares arranged in a 10x10 grid. Each square represents 1% of the whole. You can use it to visualize a single key performance indicator (KPI) and how close you are to achieving it.

For example, if your team has reached 82% of its quarterly sales target, 82 of the 100 squares would be colored in, leaving 18 grayed out. This provides an immediate and intuitive understanding of your progress.

So, why choose a waffle chart over a traditional pie or donut chart?

  • Better for Precision: The human eye is not great at accurately comparing the angles in a pie chart. It's much easier to count squares or estimate a percentage from a 100-point grid, making waffle charts feel more precise.
  • High Visual Impact: Waffle charts are clean, modern, and stand out on a crowded dashboard. They can break up the visual monotony of endless bar and line charts.
  • Ideal for KPI Dashboards: They are perfect for displaying single, important metrics like goal completion, market share, or customer satisfaction scores.

Preparing Your Data

Unlike most charts in Tableau, a waffle chart isn't built from your primary dataset (like sales transactions or marketing leads). Instead, it requires a simple scaffolding file to create the 100-square grid. This new data source will have a single column with numbers from 1 to 100.

Creating this is simple. You can do it in any spreadsheet tool like Excel or Google Sheets.

Here’s how to create the data scaffold in Excel or Google Sheets:

  1. Open a new sheet.
  2. Name the first column in cell A1 "Path".
  3. Enter the number 1 in cell A2.
  4. In cell A3, enter the formula =A2+1.
  5. Click on cell A3, grab the small square (fill handle) in the bottom-right corner, and drag it down until you reach cell A101. This will create a list of numbers from 1 to 100.
  6. Save the file as "Waffle Chart Data.xlsx" or a similar name you'll remember.

That's it! This is the only "data" you'll need to create the grid structure. We'll connect to your actual KPI data later on to bring the chart to life.

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 Building a Waffle Chart in Tableau

With our scaffolding file ready, let's open Tableau and start building. This process involves a few calculated fields to define the grid's rows and columns, but don't worry - we'll go through it step by step.

Step 1: Connect to Your Data

First, open Tableau and connect to the "Waffle Chart Data.xlsx" file you just created. Tableau will load your "Path" column, which contains the numbers 1 through 100.

Next, find the sheet where your actual KPI is stored. For this example, let's assume you have a metric you want to track, like a Customer Conversion Rate. A simple way to handle this without complex joins is by using a parameter.

Step 2: Create a Parameter for Your KPI

A parameter in Tableau is a dynamic value that you can control. Here, we'll use it to represent the percentage we want to visualize. This allows you to easily update the waffle chart without changing any calculations.

  1. In the Data pane on the left, click the small dropdown arrow and select Create Parameter.
  2. Name the parameter. Let's call it "KPI Percentage".
  3. Set the Data type to Float. Floats are numbers with decimals.
  4. Set the Current value to something like 0.75 (representing 75%).
  5. Set the Display format to Percentage.
  6. For Allowable values, choose Range. Set the Minimum to 0, the Maximum to 1, and the Step size to 0.01. This allows you to select any percentage from 0% to 100%.
  7. Click OK.

You should now see your "KPI Percentage" parameter in the Parameters section at the bottom of the Data pane. Right-click on it and select Show Parameter to make it interactive on your sheet.

GraphedGraphed

Build AI Agents for Marketing

Build virtual employees that run your go to market. Connect your data sources, deploy autonomous agents, and grow your company.

Watch Graphed demo video

Step 3: Create the Grid Structure (Calculated Fields)

Now comes the fun part: turning our list of 100 numbers into a visual 10x10 grid. We’ll create a few calculated fields for this.

Create the "Column" Calculation

This calculation will determine which of the ten columns each of our 100 points will land in.

  1. In the Data pane, click the dropdown arrow and select Create Calculated Field.
  2. Name it "Column".
  3. Enter the following formula:
(INDEX() - 1) % 10

What this formula does: The INDEX() function returns the index of the current row (from 1 to 100). The modulo % operator returns the remainder of a division. So this formula creates a repeating sequence of 0, 1, 2, ..., 9 that defines the horizontal position.

Create the "Row" Calculation

This calculation will define which of the ten rows each point will land in.

  1. Create another calculated field.
  2. Name it "Row".
  3. Enter the following formula:
INT((INDEX() - 1) / 10)

What this formula does: It divides the index by 10 and takes the integer part, creating groups for each row (0-9 for the first row, 10-19 for the second, and so on).

Step 4: Build the Basic Visual Grid

Now we'll use these calculations to arrange the 100 data points on our sheet.

  1. Drag the "Column" calculated field to the Columns shelf.
  2. Drag the "Row" calculated field to the Rows shelf.
  3. Drag the original "Path" dimension from the Data pane onto the Detail card under Marks.
  4. Right-click on the "Column" pill in the Columns shelf, go to Compute Using, and select Path.
  5. Repeat for the "Row" pill: right-click it, select Compute Using > Path.
  6. Change the chart type from "Automatic" to Square on the Marks card.

Voila! You should now see a 10x10 grid of squares. If it looks small, you can resize it by pressing Ctrl + Shift + B (Windows) or Cmd + Shift + B (Mac) to make the cells bigger.

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 5: Create the Color Calculation

The last step is to color our squares based on the KPI Percentage we defined in our parameter. We need one more calculated field for this.

  1. Create a final calculated field and name it "Waffle Color".
  2. Enter the following formula:
((INDEX() - 1) / 100) <= [KPI Percentage]

What this formula does: It converts our Path (1 to 100) into its percentage equivalent (0.01 to 1.0) and checks if that value is less than or equal to our KPI Percentage parameter. It will return "True" if a square should be colored and "False" if it should be grayed out.

Step 6: Add Color and Finalize Your Chart

Let's apply our color logic to the grid:

  1. Drag the "Waffle Color" calculated field onto the Color card under Marks.
  2. Tableau will assign default colors to "True" and "False". Click the Color card to edit them. A good practice is to make "True" a bright, engaging color (like blue or green) and "False" a light gray.
  3. Add a border to your squares for better definition. Click the Color card again and, under Effects, select a Border (a thin white or light gray line works well).
  4. Hide the axis headers by right-clicking them and unchecking Show Header.
  5. If you want to add a label showing the percentage in the middle, create a new worksheet, display your formatted "KPI Percentage" parameter as text, and combine the two sheets on a dashboard.

Pro-Tips for Better Waffle Charts

Once you've mastered the basic chart, you can get creative and take your visualizations to the next level.

  • Multi-Category Waffle Charts: You can adapt the color formula to show multiple segments that make up a whole. For instance, you could show the proportion of sales coming from three different regions. This would involve a more complex color calculation with IF/ELSEIF statements.
  • Use Custom Shapes: Instead of squares, you can use any icon as your mark type. Have a customer satisfaction score? Use heart icons. Tracking employee device usage? Use little phone icons. Drag the shape you want to use into your Shapes repository in your Tableau folder, and you can select it from the "Shape" mark type.

Final Thoughts

Building a waffle chart in Tableau requires a bit of one-time setup, but the result is a powerful and intuitive visualization that brings your data to life. With this repeatable process, you can now add a visually compelling, easy-to-read chart to any dashboard, helping your team see progress and understand key metrics in seconds.

While mastering tools like Tableau is rewarding, it often involves a steep learning curve and hours of manual report building for each new request. At Graphed we address this by letting you create stunning dashboards and reports simply by describing what you want in plain English. Instead of navigating calculations and settings, you can ask, "Show me my Q3 customer conversion rate as a percentage of our quarterly goal," and get an instant visualization without writing a single calculated field or creating a scaffolding file.

Related Articles