14 Tips to Let Your Tableau Income Statement Shine

Sep 15, 2023

Klaus Schulte

I recently shared my makeover of the Tableau Income Statement (+Budget) accelerator on LinkedIn and on Tableau Public. It’s a pure Tableau viz, without any data preparation or map layers in place.

I have used several tricks here, to achieve this layout in a one sheet view and I’m happy to share them all 🤓.

1 Fake Axis

I create fake axes to being able to bring text columns between my visualizations and to format and design them to my preference. Not possible with default Tableau text tables.

2 Fake Axis with two columns

Building a dual fake axis with different values and a corresponding alignment of the text will allow you to create two sub-columns within one column of your table.

3 Customized Header Tags

I’m using COUNTD([KPI Breakdown] and FIRST() and LAST() to create customized Header Tags from different fields, including customized total tags without the need to duplicate the data.

4 Customized Total Formats

I’m using default total formatting from the format pane to format my totals differently from my other table rows (font size, font style, shading)

5 Fake Field Labels for Columns

I use the title to create fake field labels for my columns.

6 Different Mark Formatting/Font Color for Rows and Totals

Based on my header definition in 3 I’m applying different mark formatting for my rows and my totals.

7 Add Performance Logic to Mark Formatting

I’m also combining my mark formatting with my main performance logic (here: change in margin) to point my audience to the most important rows (smaller share, less efficient).

8 Time Series

That’s the hardest part. To add time series to your table when having two continuous fields on rows and columns, you need to normalize the data first, and then use SIZE() to define a different y-value for the time series than for all your other (one-mark) columns.

9 Multi Metric Time Series

No, this is the hardest part. To create a dual axis chart with two different metrics (current year and prior year), SIZE() is not enough to tell Tableau where to use which metric. Smart people like Ludovic Tavernier and Samual Parsons came up with a dimension test. This is what I used here.

10 Normalizing Across Metrics

To create my dual axis two-metric time series with normalized data I needed to normalize across these two metrics. Did you know that MAX or MIN don’t aggregate in this case, but give your the max-/min value even for aggregates? Fascinating…

11 Waterfall Chart

My favorite part: to create the waterfall chart in this set up with two continuous fields on rows and columns, we need to use the bar mark type instead of the gantt mark type.

12 Fake Zero Lines

Add a reference line to your fake axis with a constant of 0 to create a fake zero line.

13 Custom Sub-Totals

To show normal sums for your table rows and a cumulative result for your totals on sub total level (Gross Profit, EBIT, Net Income), you need to make your metric a running sum, and compute using the sub total dimension (see also this blog).

14 Customized Signs

Since I’m calculating my Totals in the table, I need my values with negative and positive signs. To hide the negative sign in the view, I’m using a custom number format.

That’s a lot, isn’t it?

For a deeper dive, I recommend reading this great blog by Rosario Gauna where she also shares lots of tips and tricks. For a deeper dive into all things “visual table” I can also point you to Steve Adams’ and my “EAT Tables” course materials which are available here.

Thanks for reading! Feel free to add comments here, you can also find me on LinkedIn!