Skip to main content

LODs of Fun: How to Filter Moving Up a Level of Granularity

In my spare time, I’m working on a viz on global immunization rates for 1 year olds from the WHO. The dataset has 2 levels of geography – country and region.

This is quite simple to do in a “top-down” scenario (for instance, region to country), but how do we get this to work the other way around?

What if I wanted to select a country and see what other countries are in the same region? Specifically, for the map to zoom in on its respective region?

First off, there are a couple of clues we can pick up from this problem:

1) We can’t use a filter on country, because it will obviously filter to the selected country.

Rather we need to filter to 1 level above this, region. In my mind, I’m already sensing we’ll have to do an “if” statement of sorts.

2) Since we cannot create a filter and will have to use the if statement, we’ll be using a parameter.

Big thank you to Craig Bloodworth for helping me work through this problem 🙂 

How do we get this action to work?

Step 1: Create a parameter that determines which region was selected.

How to create a parameter:

Step 2: Create the calculation which drives the parameter:

Here’s a close up view of the calculation:

In this instance, when we select a country in the parameter, the IF statement either returns Null or the Region. We can see that working in this “sanity check” table.

You might be wondering why we need the MAX() function. Indeed, if we were to take out the max function we would get the same result in the table. Why even use it to begin with?

The reason why we cannot directly use a calculation where we specify the country, but ask it to return its respective Region is because it will only bring back data on the Region related to it, almost thinking it is the only stance of this Region. i.e. If we only select “Canada”, it will only retrieve regions where country=”Canada”. Since this is at a lower level of granularity, it will only bring back 1 stance of “America” within Region, instead of all instances of “America”.

Therefore, we need to create a scenario where the view is supplemented with extra context, achieved through a FIXED level of detail calculation.

However, Level of Detail calculations can only be done on aggregations and fundamentally, it has to be a measure. That means in order for us to access the ability to use a LOD calculation, we need to turn our parameter control function into an aggregation – our MAX() function. We will build the LOD calc in the next step.

This is the first time I’ve used a traditional dimension and processed it as a measure and aggregation. Totally turned my head upside down!

Step 3: Creating the filter calculation for 1 level above the detail in the view

Our first instinct here might be to create this calculation.

But of course it doesn’t work because our selected region is still an aggregation thanks to our MAX() function. We can remove the aggregation with the { } brackets, creating a FIXED LOD calculation. Remember it has to be fixed in order for the the data to go past the filter. Yay to the order of operations!

Correct calculation

Bring the calculation to filter and voila! The functionality will start working in the table.

It looks even better with a map 🙂


Happy Vizzing!

New Viz: How has the World Responded to the Refugee Crisis?

Whipped this together between my time on the train to work and in my spare time. Quite proud to have figured out how to get around this “can’t sort on a table calc” business with an LOD.  Probably one of the simplest pieces of design I’ve built, but the data speaks for its self.

Check out how your country has responded to the refugee crisis. While I am Canadian, I was definitely surprised to see how the US responded.

Making Sankey Charts with Tableau and Alteryx – Download the Template to Make Your Own

Here’s my first step to making this a scalable viz for anyone interested in building this without all the legwork.

There’s a lot of demand to scale such a viz so I thought I would put my 2 cents in. It only works for visualizations with 5 stages and where each unique ID moves from dimension to dimension (rather than the flow of measures) –  but still a start!

Why 5 Stages?

I’ve chosen to release the first iteration with 5 stages because of its potential application for sales pipelines: lead, prospect, qualified prospect, committed and transacted. Apply this to your Salesforce data to visualize common customer paths and areas of improvement.

With this method, I built this beautiful Sankey below outlining a friends’ job search.

How do you get your hands on such treasures? You’ll need Alteryx Designer and Tableau Desktop (both which offer trial versions in case you are new to either software.)

Step 1: Download my Alteryx workflow from the Alteryx Gallery. 

Run the Alteryx workflow with your dataset, selecting which fields are in Stage 1 through 5. Then set the where you’ll want your .tde to save to on your machine. Note that this method only works for 5 Stage Sankey charts because the table calculations will break otherwise. Also your stages need to be field values before running the Alteryx workflow.

Step 2:  Download the template Tableau workbook

Once downloaded, switch the .tde connection with the new .tde you’ve produced from the workflow.

Here’s where you’ll need to click to switch the .tde files.

Once the switch is made, your viz should magically appear! Just change the alias’s to match your desired results and you’ve got a Sankey chart in 10 minutes!

Let me know what you think of the workflow/workbook or anything else in the post. More than happy to clarify if there are questions. I’m hoping this will be useful to at least someone on the interwebs!

How to Instantly Make Your Vizzes Look Amazing

Use 1 Color for your entire viz

One way to instantly give your viz an upgrade is to change the color palette to be 1 color, and everything else to be a gradient of 1 color. It’s a pretty common piece of advice from Andy Kriebel and Cole Nussbaumer and no doubt it’s effective.

I tried it out here with this viz while I was at the Data School:

However, I immediately found roadblocks with this piece of advice.

What happens when I want to add multiple vizzes to a dashboard– what of those other dimensions? What happens when I want to show good/bad performance, usually encoded with contrasting colors? I can’t use red/green because its not visual best practice, but how many vizzes of blue and orange can one take? As for different dimensions, maybe lighter colors for certain dimensions and darker for the remaining.. but I’m not particularly happy with that solution. It also doesn’t help that I don’t come from a design background and feel hindered at a lack of a sophisticated solution.

Then I found this AMAZING artist – Dave Thompson.

I picked up postcards by him from my local Paperchase and was immediately drawn to the color choices. Its perfect for data visualization because it’s so soothing to look at, yet distinctive even between related dimensions.

I finally found a color inspiration guide for dashboards –  different vizzes with multiple dimensions.

1 color family never made sense to me within this context– people just get confused… here I’ve finally found an instruction guide on how to make that work. You can check out my first viz (a makeover) inspired by the color theory in this piece of his:

My makeover of a NYT article on college majors likely to move back home post graduation. Click on the gif to go to the viz.

The feedback on this viz has been great – even got this back from the guy at TIME.

I’m still going to learn more about color theory and elaborate on this (and hopefully I’ll start to develop my own sense of what works best for UI and story).  For now, I’m gonna be using these training wheels until I get up to speed.

Did you find this useful?

Let me know if this helps you too! It’s my first blog on my own this data viz. Hope you’ll follow along 😀