Sep 182014


A dashboard from Radio Free Europe / Radio Liberty has received a lot of views since it was published earlier this week and for good reason: There’s a lot of important information packed into a compelling story.

There’s a lot I like about the dashboard but two things that I believe desperately need to be corrected.

Before going any further you can see the dashboard here.

What I Like and Don’t Like

Here’s a re-sized snapshot of the dashboard.


What I Like:

  • Colors
  • Hovering over a country provides more information about the country.
  • Syria and Iraq are labelled so I can find the focus of the story quickly.
  • The author has presented normalized data in the bottom chart  to show proportion of fighters from a particular country. This is brilliant and important.

What I Do Not Like:

  • There are two different axes at the bottom of each bar chart with very different values. If I don’t look at the axes I would think that Belgium has the same number of fighters per million as Tunisia. This defeats the brilliance of presenting the data in a normalized form.
  • The fighter icon takes away from the gravity of the story as this should not be a frivolous visualization. The visualization should skew more towards The Economist and less towards USA Today (see this post.)
  • The bars are in alphabetical order.

The Makeover

Here’s what I’ve changed.

  • Clicking a country name in one of the visualizations will highlight that country in the other visualization making it easy to find.
  • The axes for the two sets of bar charts at the bottom are consistent.
  • I’ve replaced the fighter icons with labeled bars.
  • You can switch between displaying normalized data (fighters per million) and the number of fighters.
  • The bars are color coded to reflect the same color legend in the top chart.

Click here or the image below to access the interactive dashboard.


Sep 162014

Finally, a good use for packed bubbles!

The Problem

I recently received a query from a client on how to compare responses to one question with responses to another question when both questions have possible LIkert values of 1, 2, 3, 4, and 5.  That is, if you have a collection of questions like this:


How would you show response clusters when you compare “Good Job Skills” against “Likes the Beatles”?

This question is particularly applicable if you are a provider of goods and services and you want to see if there is alignment or misalignment between “how important is this feature” and “how satisfied are you with this feature”.

Note: There’s a Tableau forum thread that has been looking into this issue as well.  Please see

So, how can we fashion something that helps us understand the data?

Before we get into the nitty gritty here’s a screen shot of one of the approaches I favor.  Have a look to determine if reading the rest of the blog post is worth the effort.


Still reading?  Well, I guess it’s worth the effort.

The Traditional Scatterplot Approach

Consider the set up below where we see how Tableau would present the Likert vs. Likert results in a standard scatterplot.


So, what is going on here?

There are a total of nine Likert questions available from the X-Question and Y-Question parameter drop down list boxes.  Our desire here is to allow us to compare any two of the nine at any time.

The “meat” of the visualization comes from the SUM(X-Value) on the columns shelf and SUM(Y-Values) on the rows shelf where X-Value and Y-Value are both defined as

IF [Wording]=[X-Question] then [Value]+1 END

This translates into “if the selected item from the list is the same as one of the questions you want to analyze, use the [Value] for that question”. Note that [Wording] is the same as [QuestionID] but with human readable values (e.g., “Likes the Beatles” instead of “Q52”)

We use [Value]+1 is because the Likert values are set to go from 0 to 4 instead of 1 to 5, and most people expect 1 to 5.

We can use SUM(X-Value) and SUM(Y-Value) because we have Resp ID on the Details shelf.  This forces Tableau to draw a circle for every respondent.  The problem is that we have overlapping circles and even with transparency you don’t get a sense of where responses cluster. Yes, it is possible with a table calculation to change the size of the circle based on count but we’ll I’ll provide what I think is a better approach below.

A note about the filters: The Question filter is there to constrain our view so that we only concern ourselves with Likert Scale questions.  It isn’t necessary but is useful should we be experimenting with different approaches.  The SUM(X-Value) and SUM(Y-Value) filters remove nulls from the view.

Packed Bubbles to the Rescue

I’m not a big fan of packed bubbles (see this post) but for this situation we can use them and get some great results, as shown below.


I’ve made a couple of changes to the traditional scatterplot visualization the most important being SUM(X-Value) and SUM(Y-Value) are now discrete and we get a trellised visualization instead of a continuous axis.  Note that I had to change the sort order of the Y-axis elements so that they appear in reverse order (5 down to 1).

I got the packed bubbles by placing CNTD(Resp ID) on the size button. This assures that each bubble is the same size and triggers Tableau’s packing algorithm.

Note that I also added an on-demand “Drill down” so that you can color the circles by different demographic dimensions.

I’ve experimented with this with some large data sets and Tableau does a great job with packing the bubbles intelligently.

What About Trend Lines?

Since we are using discrete measures on the rows and columns shelves we cannot produce trend lines.  When I first started this project I experimented with more traditional jittering and was able, with a fair amount of fuss and bother, to produce this.


A special thanks to Jeffrey Shaffer who provided a link on how to create pseudo-random numbers in Tableau (thank you, Josh Milligan).

I prefer the example that doesn’t require the jittering, but if you need to trend lines or if you prefer the jittered look I’ve included the example in the downloaded packaged workbook (see below).

It also occurred to me that the trend line would be based on the jittered values and not the actual values.  The same workbook contains a “home grown” trend line based on the actual values (courtesy of Joe Mako). It turns out the jittered trend line is almost identical to the non-jittered trend line so I suspect you won’t need to take the “home grown” approach.


I received a number of comments here and on LinkedIn about the “drill down / break down” capability and that it is hard to see the percentage of dots by category.  For example, if you break down by generation do the dots for one generation cluster more in one part of the trellis than in others?

I thought that in this case having a different-colored bubble per category where the size of the bubble was proportionate to the percentage of responses within that category made sense.

Size by Category

I thought building this would be easy, but I needed to call in the heavy artillery (Joe Mako).

I’ll blog about the solution later. In the meantime the packaged workbook below contains this additional approach.

Sep 032014


In my experience the number one impediment to success with Tableau is getting data in a format that plays nicely with Tableau. Alteryx is a combination ETL (extract, transform, load), geospatial, and statistical modeling solution that just may solve this “getting-the-data-right” problem.

And it plays very nicely with Tableau.

In this blog I will recount some experiences I’ve had with Alteryx and some thoughts on what the future might hold for the two companies.

Client One

In April of 2013 I was working with one of my favorite clients and we ran into a roadblock in that they needed to blend a lot of data from disparate sources and this confluence of data was an absolute monstrosity. I was on the precipice of recommending that they hire a data warehousing consultant when I happened to attend a Tableau road show in New York City. Alteryx sponsored the lunch that day and I paid attention to their presentation.

Fast-forwarding a bit, I received a very compelling demo and product roadmap from Dean Stoecker, Alteryx’s CEO.

I visited my client the next day and told them to hold off on hiring the consultant and look into Alteryx as a better short, mid, and long term solution.  It proved to be a good recommendation as the client is now blending data from a lot of sources and gleaning insights that would have taken much longer had we gone the consultant /consolidated warehouse route.

Client Two

About six months ago I was working with another client that was swimming in data, but that data was missing some key elements.  The client was tracking hundreds of service calls throughout the New York metropolitan area and although they had street addresses for every incident they were only able to produce a map that showed results at the county level, and this didn’t reveal very much.

I asked them to look into seeing if the incidents clustered in particular neighborhoods.  For this we would need latitude and longitude coordinates for each street address.

Six weeks later the client triumphantly called and told me their IT department had finally added zip code information to the database query they used to drive the visualization.  I sighed and politely told them that while having zip code-level data was better than county-level data, zip codes would not give us the granularity we needed.

At this point I asked them to send me a copy of the data and, armed with Alteryx and the Tom Tom US maps, I generated latitude and longitude for 99% of the addresses.

And I did this in about 15 minutes.

The next day I presented the client with a symbol map that contained a different color-coded circle for every incident in the database.  I wish I could tell you that we discovered something truly amazing once we had this (we didn’t) but the critical point is that tools like Alteryx and Tableau allowed us to pursue a hunch in a matter of minutes. The next hunch might yield an incredible insight and with Alteryx and Tableau we can investigate these notions without having to tax an already over-burdened IT department.

Client Three – Me

Any followers of this blog know that I do a lot of work with survey data and to get Tableau to do what it does so well survey data as downloaded from a survey tool needs to be parsed, pummeled, and browbeaten into submission.

For years I’ve been using either Tableau’s free Excel add-in (when the data is in that format) or relying on the kindness of DBAs to render the data in the format I need.

The problem with the Excel approach is that it requires a lot of hand manipulation and if the client decides they want to include responses after they have sworn the survey is closed, well, I end up having to go through the whole error-prone process a second or third time.

Enter Alteryx, which allows me to set up the process once, automate it, and then run it whenever I need.    The icing on the cake is that it generates a ready-to-use Tableau .TDE file. In addition to the process being faster and safer, I can start visualizing survey data way before the survey is closed. This has been a huge time saver for me and I will never go back to hand-massaging the data. Plus, if the data source is a database (vs. downloaded files) I can apply the same tool and the same process without needing the DBA to fashion anything special for me.

Will Tableau Acquire Alteryx?

Given that Alteryx fills a gap that currently exists with Tableau and that the two products play so nicely together, in September 2013 I predicted that within a year Tableau would acquire Alteryx.

So I was wrong.  But will it happen down the road?  I do like how the two tools work together but there are some things about Alteryx that Tableau users may find off-putting, including:

Alteryx is a “heavy lunch”

Alteryx is an ETL, geospatial, predictive modeling, breath mint, candy mint, floor wax, all-in-one tool.  This cornucopia of options can be intimidating.

Alteryx assumes more knowledge

Alteryx assumes a greater level of programming sophistication than does Tableau. For example, Alteryx makes a distinction between equivalence and an assignment. In Alteryx you would write


To assign the value 7 to the variable X.  But if you were performing a comparison in an IF statement you would write

IF X==7 Then [what to do] ENDIF

Tableau does not make the distinction between the single and double equal sign.  Granted, if you attempt to use one equal sign in Alteryx you’ll get an error message with the suggestion that you should use the double equal sign, but there appears to be an assumption that the user comes into Alteryx with an appreciation for standard programming syntax.

It’s Easier to Break Things in Alteryx

If you change the name of a field in Tableau everything that refers to that field also changes.  This is not the case with Alteryx and modifying your Alteryx module to address this field name change can be a pain.

Indeed, I think this example epitomizes the difference in refinement between the two tools.  Don’t get me wrong, Alteryx is a terrific tool and I am very happy to have it in my quiver, but there is a higher degree of user affordance in Tableau, and users accustomed to Tableau’s luxury car feel may find Alteryx a bit of a bumpy ride.

So, while I don’t see Tableau acquiring the Alteryx and supporting the tool in its current form, who knows what will happen as both tools and companies mature?

So, Should You Buy Alteryx?

I can’t answer this question but you should at least download an evaluation copy and try it out.  I will tell you that for my survey data practice the product has been a godsend.