Edit: Since the below post was first written, back in 2013, Tableau has significantly evolved. Tableau have a page dedicated to showing the order of operations, which is more useful and up to date than the post below.

I was browsing the Tableau forums recently and stumbled across this mammoth post which began out with a complex request of how to count distinct users over a running time period and generated into a lot of detail about the internal workings of Tableau. It’s one of the most useful threads I’ve read, hence I felt I needed to copy the information about the order of events/operations within Tableau and put it here.

Massive thanks to 2 world renowned Tableau experts, Joe Mako and Jonathan Drummey, who put this together.

  • Tableau generates the SQL query/ies (typically one per datasource) and packs as much of the calculation, filtering, & computation as it can into them.
  • Inside Tableau, filters on aggregate calcs are applied.
  • Densification happens. Densification depends on pill type, pill arrangement, whether domain padding is being requested via Show Missing Values, compute using settings of table calcs, mark types, data structure/density, etc.
  • Data blending occurs.
  • Compute blended aggregates – These are aggregate calcs in one data source that use fields from the other data source.
  • Filters on blended aggregates are applied.
  • Compute table calcs.
  • Compute grand totals & subtotals.
  • Compute total-based reference lines on regular aggregates, and percentile distribution reference lines for regular aggs and table calcs.
  • Apply filters on table calcs.
  • Filter latitude (generated) and longitude (generated).
  • Manually hide marks.
  • Compute all other reference lines.
  • Pages Shelf.
  • Compute Tooltips, Title, Annotations.