How-To Tableau

The Most Important Tableau Concept Of All

I don’t care what anyone else says when it comes to the most important Tableau concept. Ok, maybe that’s a little harsh… but for me, there is one that trumps all. This concept drives every single calculation and visualization on a dashboard. If a developer doesn’t understand it, it will cause wildly inaccurate analyses to be published. It’s the most frequent cause with newer developers as to why Tableau is “doing this weird thing”.

It’s the number one issue I come across when troubleshooting other peoples’ dashboards. It’s also the number one thing that beginners struggle with. As soon as a beginner masters this concept, it immediately catapults them into intermediate or expert territory. This is because of the creative options and intentions it opens up. So what is it?

Level of Detail

That’s right, you’ve heard it before. If you haven’t been around Tableau long, you’ll probably think it’s just those fancy expressions you’ve heard about but try to avoid using. Unfortunately or fortunately, it’s actually much bigger than just level of detail expressions. It’s the entire conceptual framework that impacts how and where data is aggregated and rendered in Tableau.

In case you skimmed over it, let me repeat. Level of detail is the entire conceptual framework that impacts how data is aggregated and rendered in Tableau.

The terminology here might be a little different than what is expressed officially by Tableau. Tableau talks more about aggregation, granularity, etc. For me, the level of detail concept encompasses these other concepts. At the finest level of detail, you’ll have no aggregation and the highest possible granularity. At the broadest level of detail you’ll have the maximum possible aggregation (like table calculations) and the lowest granularity. Ironically enough, granularity actually has the words “level of detail” in its second dictionary definition.

So ultimately, level of detail is the result of the combination of aggregation and granularity settings on your dashboard. You can have a row level of detail, an aggregate level of detail, or a table level of detail. Depending on your calculated field, you can force aggregation at a certain level of detail.

Why It’s So Important

There are many subtle and not-so-subtle ways Tableau allows a developer to control the level of detail in which data is aggregated and rendered. Through calculated fields, a developer can make:

  • relatively static calculations using Level of Detail expressions
    • this is explicit control of the Level of Detail displayed by Tableau
  • dynamic calculations that take place at different levels in the data
    • row level
    • aggregate level
    • table level
      • this includes selecting the level in which table calculations compute and are relative to
  • through the “Aggregate Measures” option in the Analysis menu

Knowing exactly how Tableau will handle aggregations and granularity will tell you exactly what level of detail your analysis is taking place. Is your measure being aggregated? Is it aggregated by a specific dimension? Is your dashboard visual being rendered for the entire data set or just the current year? There are tons of situations where you have to know what level of detail will be calculated and displayed on your dashboard. That way you can know that it is time for a fixed level of detail or not.

A common error I see with beginners is a claim that “Tableau is calculating things wrong”. They’ll run a calculation in Excel to check an average or sum after filtering on a column. This won’t match what Tableau is displaying. 99% of the time it’s because Tableau is aggregating at a different level of detail than expected because of the dimensions on the dashboard.

So How Do I Get Better

  1. Look at advanced dashboards on Tableau Public
  2. Practice recreating those dashboards
  3. Check out blogs that have tutorials about Aggregation and Level of Detail expressions
  4. Read the Tableau documentation on Aggregation and Level of Detail expressions

Gimme your thoughts, leave a reply!