How To Visualize KPI Progress — Bullet Graph With 3 Measures | by Kiril Yunakov | Towards Data Science

Acouple of months ago, I was tasked to create a new dashboard for my team where the aim was to see what is the status for several key performance metrics compared to our plans and to a forecast. This is how I found the bullet chart type and made some modifications for the purpose of our business case. I believe that, especially if you are a new Tableau user, with this tutorial you will be able to learn and understand the fundamentals of Tableau and how to quickly adjust your visualizations.
Simply put, because it allows you to compare a specific dimension from 3 angles (3 different measures):
Actual performance (how much you have achieved already)
Plan / Target performance (how much you need to accomplish)
Forecast performance (how much you are going to achieve at the end of a period, based on the actual performance)
Also, by default in Tableau you can NOT build such a graph from the predefined options, because they allow you to use only 2 measures, and in our case we need 3 (Actual, Plan & Forecast performance).
As of today, where do we stand according to the plan?Where are we going to end at the end of the month if we keep the same pace?
As of today, where do we stand according to the plan?
Where are we going to end at the end of the month if we keep the same pace?
Level of complexity: Beginner
Time to complete: ~5 min.
Requirements: Formatted data, Tableau Public/Desktop
This is probably the most crucial step about the tutorial. Depending on your data, you might be in a situation where you’ll need first to pivot your data set. This is an important step because it will allow you to use all of the 3 measures (actual / plan / forecast) for each of your KPIs (turnover / new customers / cost) and basically apply them to the bullet graph. Here is the example data set I will be using:
Simply open Tableau and connect to your data source. In my case it is a simple csv file as shown above.
Select the #actual measure and by using drag and drop place it to the column shelf. Repeat for the #forecast and same for [abc] measure name but to the rows shelf.
Select any of the pills (#forecast in my case) on the columns shelf and from the drop down menu choose the Dual Axis option.
From the Marks card, under All, select “Bar”. This will change the type of the graph into a bar chart.
With this step you’ll see how important is the order of the pills at the Columns/Rows shelf. Currently, the #forecast measure is displayed over the #actual measure. This is due to the fact it is on the right of the #actual pill. In order to reverse them, we just drag and drop the #actual pill to the right side at the columns shelf. After you will see a small orange triangle, drop it there.
We have the #actual measure over the #forecast now, but in order to see it we need to change the size of the bars. From the Marks card select the SUM(actual) field and from the Size options, drag the slider to the left.
Right click on any of the axis (in my case it is the #forecast) and select Synchronize Axis.
Drag and drop the #plan measure from the Data pane to the Marks card of the SUM(actual) into the Detail option. This allow you to use this measure without impacting the view of the bullet chart directly.
From the Analytics pane, drag and drop the the Reference Line option over to the bar chart view and be sure to place it over the field per Cell, per sum(actual).
Then, a window will appear and from the options select:
Value — choose SUM(plan), with a calculation Sum
Line — change the color to Black and make it a bit thicker.
From the Analysis menu select Create a Calculated field (or just right click on the Data pane and select it from there). Give it a proper name and use the calculation as shown at the screenshot. With this field we can now see how much of the plan we have achieved as a ratio.
Then drag and drop the #actual to plan measure to the Marks card under SUM(actual) drop-down at the Label option.
Same as at the previous step, with the only difference that you need to drag and drop the new field at the Marks card under SUM(forecast) drop-down menu on the Details option.
With this step you’ll make it easier to identify with which KPI is on track and which needs more attention. Right click on Data pane, Create a Calculated field and use the following code:
IF [forecast to plan] > 1.2 then “Over Plan”ELSEIF [forecast to plan] < 0.8 then “Behind Plan”ELSE “On Plan”END
Once, created you can drag and drop the field at the SUM(forecast) drop-down menu at the Marks card on the Color option. We will adjust the colors later.
In order to add a summary box, you need at a few more measures to the SUM(forecast) drop-down menu at the Marks card. Drag and drop #actual and #plan.
Then right click on any of forecast bars at the view and select Annotate > Mark...
Keep only the actual, plan and forecast to plan measures. Repeat the same step for all of the other measure names (cost/ new customers).
Right click on each of both axis and uncheck Show Header.
Right click on the title Sheet 1 and rename it to KPIs Progress.
Right click on measure name and select Hide Field Labels for Rows.
Right click on the #actual to plan measure, Default Properties, Format Number -> Percentage with 0 decimal places. Repeat the steps for #forecast to plan measure as well.
Select SUM(actual) from the Marks card and choose the Label option. Set the Alignment to Middle Center and set the colour to white from the Font option.
Select SUM(forecast) from the Marks card and choose the Color option to apply appropriate colors for the different Statuses.
Right click on one of the Summary Boxes, select Format and change the Shading to None. Repeat the step for the other boxes.
To download the final Tableau workbook, just go to my Public Tableau page.
If you found this article useful, you disagree with some of the points, have questions or suggestions, please don’t hesitate to leave me a comment below. Your feedback is highly appreciated!