Radial Progress Bars

Radial Progress Bars

Since I'm still fairly new to Tableau (less than a year at the time of writing this blog post) I tend to "undercomplicate" things (is that even a word?)  I typically start by trying to find the easiest solution so that it is very repeatable and very consumable to the vast majority of Tableau users.  

This concept is evident in my "no polygons" technique (which employs a creative way of using shapes rather than polygons) and my blog post explaining how to utilize dashboard navigation buttons to simplify a number of difficult tasks such as collapsible menus and sheet swapping.  This blog post will be very much the same.  In fact, 95% of it has already been written by dozens of others; I will just tweak the ending.  

Recently I published a sample viz showing "radial progress bars", which are simply variations of a donut chart.  I should start with a disclaimer and state that this type of visual should be used with care.  Generally speaking, a donut chart is good for showing progress to a goal.  They should contain two slices only where the first slice is the measure of progress and the second is the remainder to the goal.  In addition to this,  I should add that it is great to show a percent to target when you are unconcerned about exceeding the target (I mean, how would you show 150% to target with this chart - you can't).   

I also believe that this chart lends itself very well to visualizing time.  A few weeks after I originally posted the viz, I saw a visual from The Weather Channel where it was being used to show how long you could be outside before getting frost bite.   (This was during the week of Jan 28...folks, this is Chicago and Minneapolis, not Siberia).  

Courtesy of Weather.com
One major advantage of a radial progress bar in comparison to a standard donut chart is that the radial progress bar provides additional context by breaking it up into segments that help you quickly understand the percentages.  

All of this said, I implore you to use this type of visualization sparingly.  

Okay, so how is this created?  Well, it is incredibly simple.  First, let's start out by creating a donut chart using a dual axis.  But first, a Flerlage Confession...when I first started using Tableau, I created donut charts by creating a pie chart then floating a circle over top of it.  I think a lot of people start out that way.  So if you're one of them, it's okay, but please know there is a better way (which we will discuss).  Okay, back to the blog post.  If you don't know how to create a donut chart using a dual axis, it is quite easy.  Please take a look at the KPI Donut Charts from Andy Kriebel.

At Step 5, Andy talks about removing measure names and values from the second axis, changing the color, reducing the size, etc.  For the radial progress bar, we will do the same thing, but we will change that secondary axis to a shape.  The shape that will be added will be one of the custom shapes that I created (or that you can certainly create yourself in PowerPoint).  Yes, you can do this in other ways leveraging calculations (Rajeev Pandey did exactly this in his KPI Donut blog post - a great read), but this method is certainly less complicated.  I created several shapes that provide increments of 2.5%, 5%, 10%, 12.5%, and 25% segments, as well as two shapes used for time in increments of 5 min (or 1 hour) and 10 min.  These shapes are shown below and can be downloaded in either black or white using this download link.

First, download these shapes and add them to your shape repository.  As mentioned, I have provided these in white and black.  Truth is, white would be used more often, but when you try to select a white shape which shows against a white background, it is basically impossible to see...they are invisible.  Therefore, utilizing black may be a bit easier and I'll show you a little trick to change the color to match your background.  

Once you have saved it to your shape repository, click on the Shape card in Tableau, choose More Shapes, click Reload Shapes, then navigate to where you saved the images.  Select the data item on the left, then select the shape you want to utilize and click OK.  This shape will be added to the center.

Now, this doesn't look very good.  You can see the spokes sticking out and it just looks sloppy.  It reminds me of one of those cocktail ice strainers:

Courtesy of Target.com (labeled for reuse)

If you've been using those cocktail ice strainers too often, you might think this black center shape looks good...but it does not.  We really need the black, center shape to match the background.  You can try to simply change the color, but it won't work.  It will do nothing.  However, you can trick Tableau into allowing you to do so.

Below the marks cards, simply double click to show the following:

Type 1 then change it to discrete.

Drag AGG(min(1)) to Color.  

Then click on the Color card.  From here, you can change to color of your shape to match your background color exactly.  

In this case, if we change the color to white, our result will look like the following:

And that is all she wrote!  You can download the radial progress bar template here.  And as always, if you ever have any questions, please feel free to reach out any time.

Kevin Flerlage | March 5, 2019 Twitter | LinkedIn | Tableau Public


  1. Great tutorial good sir and thanks for sharing with us. I've also shared on LinkedIn. Very cool.

  2. Simple , easy and. Super effective.Thanks for this wonderful blogpost

  3. Awesome tutorial! How'd you create those custom shapes in PowerPoint? I need one with seven divisions...

    1. I just created a circle then added a line. I rotated that line several times to get the angles I wanted. In the case where you need seven, it will be a bit trickier, but certainly doable. Could you send me an email and I can put one together for you. flerlagek@gmail.com

  4. Sending email now, appreciate it.

  5. Hi Ken, thanks for sharing this. Is there a way to deselect the highlight action on this shape mark as it looks weird when we hover over it?


Powered by Blogger.