What is a Fact Table in Tableau?
Ever opened a Tableau dashboard and wondered where all the numbers actually come from? The magic of those beautiful charts and KPIs lies in how your data is structured, and at the heart of that structure is something called a "fact table." It’s the engine room of your data model, holding the quantitative information your business truly cares about. This article will break down exactly what a fact table is, how it works with its partner - the dimension table - and how to use them to unlock powerful insights in Tableau.
What is a Fact Table, Really?
A fact table is the central table in a data model that contains the quantitative, numerical data you want to measure. These numbers are called “measures” or “facts.” Think of the core metrics you track: sales revenue, website sessions, ad spend, support tickets created, number of products sold. These are all facts.
A great analogy is a grocery store receipt. The receipt lists every item you bought. The core “facts” are the price of each item and the quantity you purchased. Everything else on that receipt - the date of purchase, the store location, the product name, the customer who bought it - is descriptive context. The fact table holds the numbers, other tables hold the context.
In a database, a fact table has two key characteristics:
- It contains numeric measures. This is its main purpose. These are the values you perform calculations on, like SUM, AVERAGE, MIN, and MAX. Your
SalesAmountcolumn is a measure, as isUnitsSold. - It contains keys to connect to descriptive tables. To give the numbers context, a fact table includes special columns that act like a bridge to other tables called “dimension tables.” For example, a
ProductIDkey connects to a Product dimension table, and aCustomerIDkey connects to a Customer dimension table. We'll dive into this partnership more next.
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.
Fact Tables vs. Dimension Tables: An Essential Partnership
You can’t understand a fact table without understanding its counterpart: the dimension table. While fact tables store the numerical events, dimension tables store the descriptive context related to those events. They answer the crucial "who, what, where, when, why, and how" behind your data.
If the fact table tells you how much was sold, the dimension tables tell you:
- What was sold? (Product Name, Category, SKU)
- Who bought it? (Customer Name, Demographics, Location)
- When was it sold? (Date, Month, Quarter, Year)
- Where was it sold? (Store Location, Region, Country)
Here’s what that looks like in a simple ecommerce example. You might have a fact table for sales and a few dimension tables for products and dates.
An Example Data Model
Sales Fact Table (Fact_Sales)
This table contains one row for every single line item in an order. It’s highly focused on the numbers and the keys needed to link out for more detail.
Product Dimension Table (Dim_Product)
When you want to know what product ProductID=58 is, you look it up in this table.
In Tableau, you’d join Fact_Sales to Dim_Product using their shared ProductID column. This allows you to slice and dice your Sale Amount (a fact) by Category (a dimension), even though those fields live in separate tables. This model keeps your data organized, efficient, and easy to analyze.
Types of Fact Tables You'll Encounter
Not all fact tables are created equal. Depending on the business process you're analyzing, you'll come across a few different types. Here are the three most common ones.
1. Transactional Fact Tables
This is the most common and fundamental type of fact table. Each row corresponds to a single event or transaction, captured at a highly granular level. The Sales Fact Table example above is a perfect transactional table - one row per product sold.
- Example: An online ad Clicks table where each row is a single click on an advertisement.
- Use case: Analyzing individual events in detail. You can easily sum up sales by day or count ad clicks by campaign.
2. Snapshot Fact Tables
A snapshot fact table measures the state of something at a specific point in time, taken at a regular interval (daily, weekly, monthly). Instead of recording an event, it records a status.
- Example: A daily inventory table where each row captures the quantity of a specific product on hand at the end of each day.
- Use case: Understanding trends over time for balance-sheet type metrics. You couldn't just sum up daily inventory levels - it wouldn't make sense. But you could average the inventory level for a month.
3. Accumulating Snapshot Fact Tables
This table type tracks the lifecycle of a business process from beginning to end. A single row follows an item as it moves through various milestones. The row is updated as the item progresses.
- Example: A sales pipeline table that tracks a lead through stages like "Lead Generated," "Contact Made," "Demo Scheduled," and "Deal Closed." Multiple date fields mark the completion of each stage.
- Use case: Analyzing process duration and conversion rates between stages. For example, you can easily calculate the average time it takes to get from "Contact Made" to "Deal Closed."
Using a Fact Table and Dimension Tables in Tableau
So how does this all come together in Tableau? Let’s walk through a simplified example of connecting a sales fact table and a product dimension table.
Step 1: Connect to Your Data
On the Tableau start screen, connect to your data source. This could be a database, a Google Sheet, or even separate CSV files (e.g., sales.csv and products.csv).
Step 2: Drag Your Tables into the Data Source Pane
Once connected, you’ll see your files or tables in the left sidebar. Start by dragging your fact table (sales.csv) onto the canvas. This establishes it as the primary table in your data source.
Step 3: Add Your Dimension Table and Establish the Relationship
Next, drag your dimension table (products.csv) onto the canvas. If your key columns have the same name (like ProductID in both files), Tableau is smart enough to create the relationship automatically. You'll see a line or "noodle" connecting the two tables. This noodle represents the join that links your facts with their descriptive context. If Tableau doesn’t do it automatically, you can click on the join icon and manually tell it which columns from each table to use for the relationship.
This relationship is what allows you to, for example, filter all Sale Amount data by Product Category in your Tableau worksheets.
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 4: Build a Visualization
Now, go to a new worksheet. In the Data pane on the left, you’ll notice Tableau has helpfully sorted your fields into Dimensions and Measures. Your product details (Product Name, Category) are under Dimensions, while your sales numbers (Sale Amount, Units Sold) are under Measures.
To see the power of your data model, drag Sale Amount (from your fact table) to the Rows shelf and Category (from your dimension table) to the Columns shelf. Just like that, Tableau creates a bar chart showing you a full breakdown of sales by product category - an insight made possible by a properly structured fact table and dimension table.
Final Thoughts
A fact table lies at the core of any solid data model, holding the essential numbers you need to measure your business. By combining it with dimension tables that provide context, you create a powerful and flexible foundation for all your analysis in business intelligence tools like Tableau.
Manually structuring fact and dimension tables, managing data models, and then building reports can be incredibly time-consuming. At Graphed we created a way to skip past the technical setup so you can get straight to the insights. You simply connect your data sources - like Shopify, Google Analytics, or Salesforce - and then ask questions in plain English. Instead of manually joining tables to compare sales by product category, you can just ask, "Show me a bar chart of our total sales by product category for the last quarter." We handle the rest, instantly generating the real-time dashboard you described and letting you focus on answering your next great question.
Related Articles
Facebook Ads For Jewelers: The Complete 2026 Strategy Guide
Learn how to run profitable Facebook ads for jewelers in 2026. Discover targeting strategies, visual best practices, and optimization tips to grow your jewelry business.
Facebook Ads for Pressure Washing: The Complete 2026 Strategy Guide
Learn the proven Facebook advertising strategies for pressure washing businesses in 2026. Generate more leads with targeted campaigns, compelling creatives, and proper follow-up systems.
Facebook Ads for Caterers: The Complete 2026 Strategy Guide
Learn how to run effective Facebook ads for caterers in 2026. This complete guide covers campaign structure, creative requirements, budget allocation, and timeline for results.