Data Infrastructure·7 min read·Mar 19, 2026

How to Document a Tableau Workbook (Without Doing It Manually)

Tableau ships with zero documentation tooling. Here's what a properly documented workbook looks like, what's actually inside a .twb file, and how to generate it automatically.

Someone on your team left. They built the company's main Tableau workbook over three years. There are 90 calculated fields. Field names include things like "Rev Adj Final v2," "Customer Count (NEW)," and "Calculation_9182736450192837." Nobody knows what any of them do.

This is the standard Tableau documentation problem. It's not a people problem: it's a tooling problem. Tableau Desktop has no built-in documentation generator. There's no "export field descriptions" button. There's no dependency viewer. There's no way to know which dashboards use which fields without clicking through every single one.

The field knowledge lives in the analyst's head, not in the workbook. When they leave, it's gone.

What's Actually Inside a .twb File

A .twb file is XML. Everything you'd need for documentation is in there: formulas, data source connections, field roles, dependencies, sheet usage, parameters, filters. The information exists. The problem is it's buried in thousands of lines of XML that Tableau's own UI doesn't expose cleanly.

Open any .twb in a text editor and you'll see structures like:

<!-- Inside a .twb file -->
<column datatype="integer" name="[Calculation_163480671]" role="measure">
<calculation class="tableau" formula="SUM([Revenue]) / NULLIF(SUM([Target]), 0)" />
</column>

The formula is there. The datatype is there. The role (dimension vs measure) is there. What's missing is a human-readable view of all of it at once, with dependency chains resolved, formulas syntax-highlighted, and data sources mapped to their connections. That's what documentation tooling provides.

What a Tableau Workbook Documentation Should Cover

Good workbook documentation isn't just a list of field names. It should answer the questions the next person will actually ask:

01

Calculated fields with full formulas

Every field, its formula, its datatype, and its role. Syntax-highlighted so you can actually read nested IIF() chains and FIXED LOD expressions without going cross-eyed. Internal Calculation_XXXX references should be resolved to the human-readable field names they map to.

02

Field lineage: what depends on what

If Field A is used in Field B, which is used in Field C, that chain should be visible. When something breaks upstream, you need to know what's affected downstream. An interactive dependency graph lets you trace this in seconds rather than clicking through formulas manually.

03

Data sources and connections

What databases does this workbook connect to? What server? What schema? What tables or custom SQL is it querying? This is critical for anyone who needs to replicate the setup or understand data freshness.

04

Sheet and dashboard inventory

Which fields does each sheet use? Which data source does it pull from? Which filters apply? This is how you figure out what will break if you rename or remove a field.

05

Parameters

Current values, allowed ranges, data types, and which fields reference each parameter. Parameters are often undocumented business rules in disguise.

How to Read a .twb File Without Tableau Desktop

One question that comes up constantly: how do I open a .twb file without Tableau? The answer is that a .twb is just XML and you can open it in any text editor. But that gives you raw XML, not documentation.

The practical options for reading a .twb file without Tableau Desktop are:

  • Open in a text editor: readable but raw, no resolved IDs, no dependency graph
  • Tableau Public: free but requires a login and doesn't expose calculated field formulas in a searchable way
  • Write a Python script against the XML: works but requires time to build and maintain
  • Use a browser-based workbook tool: parses the XML, resolves IDs, and generates structured documentation without any install

The browser-based approach is what I built into tableautodbt.com/docs. You drop a .twb file. Nothing leaves your browser, and the tool parses the XML, resolves all Calculation_XXXX internal IDs to readable names, and presents the full documentation in a browsable UI.

Automatic Tableau Workbook Documentation

The /docs tool generates documentation across six tabs once you drop a workbook in:

Calculated Fields

Every formula with syntax highlighting, datatype, role, and a dependency list showing which fields reference it and which fields it references.

Field Lineage

An interactive dependency graph. Click any node to expand upstream and downstream connections. This is where you find out a field being used in 12 other calculations before you rename it.

Data Sources

Connection type, server URL, database, schema, and a full inventory of every field in each datasource, including native fields, not just calculated ones.

Sheets & Dashboards

Which datasource each sheet uses, which calculated fields appear on it, and which filters are applied.

Parameters

Current value, allowed domain (list, range, or all), datatype, and which calculated fields reference each parameter.

Filters

Every filter across every sheet: field name, filter type, and included/excluded values.

Export Formats

Documentation is only useful if it lives where people will actually look at it. The tool exports in several formats:

JSON

Full structured output for programmatic use: pipe it into your own tooling, data catalog, or CI check.

Markdown

Clean .md file you can drop into a GitHub repo alongside your dbt project.

Confluence

Pre-formatted for Confluence's storage format. Paste directly into a Confluence page.

Notion

Formatted for Notion's block structure. Works with the paste-as-Markdown import.

Copy for AI

Packages the workbook name, all formulas, data sources, and parameters into a single prompt-ready block for Claude or ChatGPT.

CSV

Available on the Data Sources tab: exports the full field inventory for any datasource.

When Documentation Matters Most

The three moments when workbook documentation goes from "nice to have" to "actually critical":

Before a migration

If you're moving from Tableau to dbt, Power BI, or Looker, you need to know exactly what logic you're migrating. Running documentation first gives you an inventory: what fields exist, what they calculate, what depends on what. Without this, migrations get derailed by mystery fields discovered mid-sprint.

When someone leaves the team

The first thing to do when a Tableau developer leaves is generate documentation before their laptop is wiped. Once you have the formula inventory and lineage graph, the institutional knowledge is recoverable.

Before an audit or review

If you're trying to clean up a workbook, removing unused fields, simplifying nested formulas, and fixing LOD expressions, documentation is the prerequisite. You can't clean what you can't see.

Generate documentation from your workbook

Drop a .twb and get full docs: calculated fields, lineage graph, data sources, and parameters, in under a minute. Nothing leaves your browser.

tableautodbt.com/docs →
Justin Leu

Justin Leu

Data & BI Consultant · San Francisco

17+ years helping companies like Google, Pinterest, Salesforce, and United Healthgroup turn raw data into actionable business intelligence. I write about BI strategy, data infrastructure, and the practical side of analytics.

Work with me →