I do love drawing visualizations in Tableau and every time I see something interesting on a website, PowerPoint deck, magazine or any other presentation tool, the first thing that comes to mind is can I create this in Tableau? This was my thoughts when I saw Process Circles in PowerPoint and this step-by-step tutorial will go through the process of creating a process circle to visualise the number of opportunities at each stage of an Opportunity Pipeline, so let us get started.

Note: As always never choose a data visualisation type and try to fit your data into it, instead, understand your data and choose the best visualization for your data consumers.

## Data

Load the following data into Tableau Desktop / Public.

 Opportunity Stage Path Number of Opportunities Initial Contact 1 100 Initial Contact 204 100 Qualification 1 80 Qualification 204 80 Meeting 1 45 Meeting 204 45 Proposal 1 45 Proposal 204 45 Close 1 90 Close 204 90

Note: we need two records for each stage as we are going to be drawing polygons and using densification to get more points on our canvas.

## Calculated Fields

With our data set loaded into Tableau, we are going to create the following Calculated Fields and Bins:

Path (bin)

• Right click on Path, go to Create and select Bins…
• In the Edit Bins dialogue window:
• Set New field name to Path (bin).
• Set Size of bins to 1.
• Click Ok.

Index

``INDEX()-1``

TC_Stage Number

``WINDOW_MAX(MAX([Number]))``

TC_Total Number

``WINDOW_SUM(SUM([Number]))/2``

TC_Step Size

``[TC_Stage Number]/[TC_Total Number]*3.6``

TC_Starting Point

``````(RUNNING_SUM([TC_Stage Number])-[TC_Stage Number])
*(360/[TC_Total Number])``````

X

``````IF [Index] = 0 THEN
SIN(((([Index]*[TC_Step Size])
+[TC_Starting Point])+10)*PI()/180)*1.25
ELSEIF [Index] <= 101 THEN
SIN(((([Index]*[TC_Step Size])
+[TC_Starting Point])-1)*PI()/180)
ELSEIF [Index] = 102 THEN
SIN(((([Index]*[TC_Step Size])
+[TC_Starting Point])+10)*PI()/180)*1.25
ELSE
SIN((((203-[Index])*[TC_Step Size])
+[TC_Starting Point])*PI()/180)*1.5
END``````

Y

``````IF [Index] = 0 THEN
COS(((([Index]*[TC_Step Size])
+[TC_Starting Point])+10)*PI()/180)*1.25
ELSEIF [Index] <= 101 THEN
COS(((([Index]*[TC_Step Size])
+[TC_Starting Point])-1)*PI()/180)
ELSEIF [Index] = 102 THEN
COS(((([Index]*[TC_Step Size])
+[TC_Starting Point])+10)*PI()/180)*1.25
ELSE
COS((((203-[Index])*[TC_Step Size])
+[TC_Starting Point])*PI()/180)*1.5
END``````

Let us go through Y because it really does deserve our attention:

• We have 4 different points to draw:
• Index is 0 which is the back of the arrow indent.
• Index is 102 which is the tip of the arrow.
• Index is between 0 and 102 which draws the inside line.
• Index is greater than 102 which draw the outside line.
• Multiplying the degrees by PI() and then dividing by 180 converts degrees to Radians.
• We multiply by the Step Size to ensure that we size our arrows correctly.
• We add the starting point so that our arrows align with each other.

So now that we have created a lot of Calculated fields, we will now put this together into a Worksheet.

## Worksheet

We will now build our worksheet:

• Change the Mark Type to Polygon.
• Drag Path (bin) onto Columns.
• Right-click on the pill and make sure that Show Missing Values is selected.
• Drag this object onto the Path Mark.
• Drag Opportunity Stage onto Color.
• Drag X onto Columns.
• Right-click on X, go to Compute Using and select Path (bin).
• Drag Y onto Rows.
• Right-click on Y, go to Compute Using and select Path (bin).

You should now see something like the following:

No need to panic, we just need to adjust the Table Calculations, so now let us:

• Right-click on the X object in Columns and select Edit Table Calculations.
• In Nested Calculations select TC_Stage Number:
• In Compute Using select Specific Dimensions.
• Tick Opportunity Stages and Path (bin) and ensure that Opportunity Stages is on top.
• In At the level select Deepest.
• In Restarting every select Opportunity Stages.
• In Nested Calculations select TC_Total Number:
• In Compute Using select Specific Dimensions.
• Tick Opportunity Stages and Path (bin) and ensure that Opportunity Stages is on top.
• In At the level select Deepest.
• In Restarting every select None.
• In Nested Calculations select TC_Starting Point:
• In Compute Using select Specific Dimensions.
• Tick Opportunity Stages only.
• Right-click on the Y object in Columns and select Edit Table Calculations.
• In Nested Calculations select TC_Stage Number:
• In Compute Using select Specific Dimensions.
• Tick Opportunity Stages and Path (bin) and ensure that Opportunity Stages is on top.
• In At the level select Deepest.
• In Restarting every select Opportunity Stages.
• In Nested Calculations select TC_Total Number:
• In Compute Using select Specific Dimensions.
• Tick Opportunity Stages and Path (bin) and ensure that Opportunity Stages is on top.
• In At the level select Deepest.
• In Restarting every select None.
• In Nested Calculations select TC_Starting Point:
• In Compute Using select Specific Dimensions.
• Tick Opportunity Stages only.

If all has gone well you should now see the following:

Now we need to adjust the visualisation by:

• Editing tooltips.
• Editing colours and adding a white border.
• Editing fonts.
• Removing gridlines.
• Sort the Opportunity manually to be:
• Initial Contact
• Qualification
• Meeting
• Proposal
• Close

And you should then end up with something like the following:

and boom, that is a wrap, we have gone through and drawn ourselves an Interactive and Dynamic Process Chart, seriously, drag Opportunity Stage onto the filter and have a play.

You can see and interact with my visualisation on Tableau Public at: https://public.tableau.com/profile/toan.hoang#!/vizhome/ProcessCycles/ProcessCycle