Data Viz Done Right

July 20, 2017

Visualizing a Profit & Loss Statement

Following my post over the weekend about visualising an income statement, The Information Lab team suggested I have a go at some other finance statements. Yesterday, my visual P&L statement made it's debut on the Death to Spreadsheets webinar that Eva and I hosted.

In the true Tableau spirit, I'd like to share it with everyone. The overall design is very similar to the Income Statement with a few differences/enhancements:

  • The top section serves as a summary with the idea being to give a quick overview. 
  • The bottom section (below the line) are all of the expense categories, which could obviously change based on what a company tracks. 
  • I included BANs for the latest month and the change to prior month. 
  • There's no budget, so the sparklines simply show the raw values.
  • The mobile version only shows the summary section as I couldn't fit all of the expenses within the 4000 pixel height limit and really, who's going to scroll that far anyway?

For this version, I've put together a "how to read" visual to help explain the visualisation.

Ok, so now that you know how to read the viz, here's the full version. Click on the image for the interactive version (or if you're on mobile you will automatically see the mobile version). Scroll a bit farther down for a gif of the mobile version in action.


July 19, 2017

Trump is Historically Unpopular

On the train this morning I was catching up on some reading and ran across this post from FiveThirtyEight about Trump's approval rating compared to past presidents at the 175-day mark. In the article, there's this table of the ratings:

The table is ok in that it lists the presidents in descending order by net approval rating. However, I thought a visual display would be more effective. I used Google Sheets to import the table and quickly connected it to Tableau and built a slope graph to more effectively display the data.

It only took about 15 minutes to build this, so I'm surprised FiveThirtyEight didn't include a visual. I wonder what their reasoning is for including a chart vs. a table. What do you think? Which view works better for you?

Workout Wednesday: Who sits where at the Data School?

This might seem a bit stalkerish, yet I promise this was done as a learning exercise. Since DS2 started, I've been tracking where each person sits around the table every day (well, almost every day). We sit around a table, so the seats are numbered 1-8. I started doing this because I noticed some people in DS1 (ahem Pablo and Damiana) sitting in the same spots EVERY SINGLE DAY, so when DS2 started, I wanted to see if it would continue.

BTW, we also literally tracked how many times Bethany said "literally" just to get to her to stop saying it ALL THE TIME! This is a great way to change behaviours.

Your task for Workout Wednesday Week 29 is to visualise the favorite seats of each person in each cohort. Here are the rules:

  1. The cohorts must be listed in ascending ordered top-to-bottom from DS2-DS6.
  2. Within each cohort, the DSers should be ordered by the percentage of time they sit in their favorite seat.
  3. Create a donut chart for each DSer.
    1. The blue slice (Hex #2C5573) represents the time they spent in their favorite seat. 
    2. The grey slice (Hex #D3D3D3) represents the time spent in any other seat.
  4. In the middle of the donut chart, you need to include 3 bits of information:
    1. The time they spent in their favorite seat as a BAN.
    2. Their name.
    3. The seat number of their favorite seat.
  5. Match the title and subtitle.
  6. Match the formatting.
  7. Match the tooltips.
  8. The viz should be 1000x700.

Download the data here.

That's it! Good luck! When you finish, remember to post an image to twitter with the hashtag #WorkoutWednesday and tag @EmmaWhyte and @VizWizBI. 

Click on the image for the interactive version.

July 18, 2017

Tableau Tip Tuesday: Computed Sets vs. LODs

1 comment
While Eva was working on her #MakeoverMonday viz this week, she asked this question:
How can I identify the people that worked in both the Obama and Trump administrations using a calculation?

In this week's video, I show you how to answer questions like this with computed sets and level of detail expressions. I will also show you how to write an LOD to act like a set; I call it a boolean LOD.


July 17, 2017

Makeover Monday: Comparing White House Salaries

Politics is always a risky topic. but what the heck! Why not? This week for Makeover Monday we are looking at the salaries of White House employees for the past two administrations. Let's first review the original visualisation from NPR:

What works well?

  • Binning the salaries makes it easy to see the distribution
  • Colors are consistent across the charts
  • Including summary numbers for context
  • Including a note for the outlier
  • Linking to the source
  • Titles clearly show me that we're only looking at one year for each President
  • Charts are consistently formatted and scaled
  • Light grid lines help guide the eye
  • Good title and subtitle

What could be improved?

  • Are the bar chart colors necessary?
  • Overall, the chart is misleading as the maximum allowable salary has changed.
  • Comparisons are harder than necessary.
  • What does the Y-axis mean?

What were my ideas?

  • Adjust the salaries so that they account for the change in the maximum allowable salary.
  • Bucket the employees by how far they are from the max salary
  • Keep the idea of binned data from the original and play with the bins to see what works well.
  • Use color to highlight
  • How can we add context?

With that, here's my Makeover Monday week 29. Click on the image for the interactive version.

July 15, 2017

A New Way to Visualize an Income Statement

Thursday, as Eva and I were preparing for our next BrightTALK webinar (How data visualization can deliver clearer insights for the Finance industry) we were looking for examples of good finance dashboards. We found a page on Tableau's website with finance dashboards...great! So we thought.

Scroll down on the page and you see a series of examples. I clicked on the first one titled "Track profit and loss with an intuitive CFO dashboard". Yes! Had we found the Holy Grail? Turns out these are for the most part Excel dashboards rebuilt in Tableau, which is sadly how many finance departments choose to use Tableau. Take pity on them I say. Let's have a look at what Tableau created:

Keep in mind, this is billed as an "intuitive dashboard", but is it really? Normally when I write about makeovers, I list out the things that work well. With this dashboard, I can't think of a single thing that works well. Ok, maybe the title is clear and the filters are obvious. I don't see anything else that is even remotely intuitive otherwise.

Let's look at the viz in two separate pieces.


Generally I'm not a fan of dual axis charts that have different measures. I think these confuse the audience more than necessary, which defeats the purpose of using visuals to convey the information in the first place. In my experience, when people see a dual axis chart, they naturally look for correlations where they may not exist.

What else fails?

  • The way this chart is designed, it's too much work to know which axis goes with which metric.
  • Why use a dot plot when this is a time series? Wouldn't a line look better?
  • Why are there separate summaries for the years? When you first look at the top section, your eyes go all the way across before you realize you're now looking at a yearly summary. Poor design.
  • Why the heck is the Profit Margin legend so weirdly aligned?
  • Net profit is stacked in front of net sales. I get that, but then I have to do that math in my head for the difference. Why not just express it as a profit ratio, making it much more intuitive?
  • The dashboard is set to automatic size, which is never, ever a good choice. 


Tables in Tableau annoy me probably more than anything else. Yes, I understand people like tables, especially finance people. However, we all know that all they want to do is copy/paste it into Excel. Just give it to them in Excel if that's what they want.

What's wrong with this table?

  • The table doesn't align with the bar charts.
  • Again, they provided a separate yearly summary way off to the right. Why aren't the year totals after each year? 
  • I have to scroll to see all of the data in the table.
  • There are way too many metrics. Breaking down COGS and OPEX into all of its parts is completely unnecessary.
  • There are absolutely zero actions you can take from the table. It doesn't tell you anything about what's going well nor what needs attention.

I decided to spend some time making this over and creating an intuitive, actionable income statement. I drew inspiration from Lindsey Poulter's DC Metro scorecard to create my design. In my version I take each of the nine metrics that make up the income statement and create a "card" for each of them. Thank you to Tim Ngwena for the idea to add subtle borders around them. 

Overall, the desktop and tablet versions are designed to be read in a Z-pattern, while the mobile version is designed for scrolling (see the video below).

How to read each card:

  1. YTD vs. PY Bullet Graph - The bar chart represents YTD for the given metric and the reference line represented the same period of the prior year (PY). The bar is then colored based on the variance to PY. Blue is good, orange is bad. For some of the metrics, being beyond PY is good, like Gross Sales. However, for other metrics like COGS, being above PY is bad. Hence why you see some bars orange that extend beyond PY.
  2. Variance to Budget Sparklines - Below each bar chart is a sparkline that goes back to January of PY. In this case, the sparklines represent 17 months. As new data comes in, the line grows. The sparklines show the variance to the budget for each metric. A reference line at zero represents being "on budget". The dot on the end of each line is color by the variance to the budget for the most recent month.

With that, I'd like to introduce you to a much more actionable, much more intuitive income statement. Below this image is a video of the mobile version. Click on the image for the interactive version. If you are reading this on a mobile device, you should see the mobile version automatically. Device Designer made this super simple!

I also would like to thank Adam Crahen, Pooja Gandhi, Curtis Harris, Michael Mixon, Eva Murray and the entire Information Lab team for their quick feedback on this yesterday. It's very much appreciated!!


July 12, 2017

Workout Wednesday: Insights & Annotations

No comments
The week 28 challenge is up on Emma's blog. Basically, you need to:

  1. Create a map
  2. Create a barbell chart
  3. Have the map interact with the barbell chart
  4. Include an option for users to add custom annotations

Be sure to check all of the requirements on Emma's blog. I immediately knew how to do all of this, so it was a matter of getting it done. The trickiest bit was the year over year change in the map. Emma and I approached the calculations required differently, as we always seem to do. She chose to use basic expressions while I used LOD expressions. Her way is definitely simpler!

Click on the image for the interactive version. Be sure to post your version to twitter and tag @EmmaWhyte and @VizWizBI so we can see your work.

July 10, 2017

Makeover Monday: The History of Le Tour de France

Tough data set for me this week as I know nothing about cycling. In addition, I raced this clock this week and completed Makeover Monday in an hour with the Data School. We then all presented our work back to Eva.

If you're particularly bored, here's a recording of my screen for the whole hour.

Ok, still awake? Hopefully you enjoyed my Spotify playlist at least. This week's viz that we're reviewing is knomea.

What works well?

  • Clear titles
  • Line chart is easy to understand

What could be improved?

  • Don't use dual axis area charts and not make it clear which is which
  • The dual axis chart implies correlation when there may or may not be any.
  • Why the blue background? This makes me think it means something.
  • Labeling the axis every 33 years is a bit odd (pun intended)
  • The connected lines make it look like race occurred during the World Wars.
  • Tell more of a story. When I ask "so what?", I can't answer it.

I'm pressed on time, so here's my Makeover Monday week 28. Enjoy!

July 5, 2017

Workout Wednesday: The Quadrant Chart

Nothing too complicated this week. The idea for this week's challenge came from a tweet I received.

This week your challenge is to build a quadrant chart, with a few tricks thrown in of course. Download the data here (it's the same version of Superstore Sales I've used for other Workouts).

  • Match the tooltips
  • Match the title (note that it changes as you change the options on the right)
  • Match the colors
  • Match the formatting
  • Include a Region filter
  • Include an option for the user to pick the level of detail in the view
  • Include lines to aid in breaking up the quadrants

Good luck!

July 2, 2017

Makeover Monday: When did Tourism Peak in Berlin?

1 comment
This week #MakeoverMonday on Tour heads to Berlin, so naturally we're looking at a viz and data about Berlin. After a quick Google search, I found the official statistics page for the city and had a poke through their available stats and vizzes. Given that I'm in Berlin for the weekend as a tourist, I thought we'd look at tourism data.

First, let's look at the viz to review:

What works well?

  • Using a continuous, single color palette
  • Legend is clearly labeled; even though it's in German, I can still understand it.
  • Nice interactivity
  • Including options to pick the metric

What could be improved?

  • The callout for Berlin is confusing since there's no indication that's what was done.
  • There's no sense of change over time.
  • Need a more informative title.
  • The color palette is pretty dull.

What were my goals?

  • Think about what would be important to me as a tourist. Things like time of year to visit, places to visit, who visits, all impact my decisions on when to go places.
  • Give an overall historical perspective through the use of a marginal histogram. I was definitely influenced by those created by Sarah Bartlett and Rodrigo Calloni last week. 
  • In only had about 30 minutes to work on it, so I spent about 5 minutes building the viz and another 25 formatting.
  • Go with a black and white theme; actually I used the Facebook grey to black palette.
  • Since some of the values go below 1 million, display those in thousands (e.g., 123K).
  • Include the max values in the title as BANs.

With that, here's my Makeover Monday week 27 viz. See you at Makeover Monday Live in Berlin!

June 28, 2017

Workout Wednesday: UK General Election Slopey Trellis Chart

That Emma! She's quite the sneaky stinker! For Workout Wednesday Week 26, she asked us to build a trellis chart full of slope charts that compares election results by political party by constituency for 2015 vs. 2017.

Fortunately, I have my trellis chart calcs safely saved in my notes, so I didn't have to Google those. The tricky bit for me was the sorting. I'm not going to spoil how I did it for you, but you can download my workbook to see how I did it. As usual, Emma and I took very different approaches for the calculations required for the sorting. She used LODs for all of her calcs, I only used one. They both work though! It all depends on how your brain works I suppose.

The data prep parts were pretty straight forward (thank you Emma for alerting us to the need to do this). Emma loves little tricks in the formatting, but I didn't see any this week.

One thing I did different was to provide a "buffer" for the year labels. I place them 10% above the highest value so that they don't overlap the slope chart lines. Emma's year labels sometimes overlap with the slope chart lines. Just a personal preference for me.

Great fun Emma! Thanks! Took me about 90 minutes including this blog post on the train from Frankfurt to Hamburg. Great use of my time! #AlwaysLearning

Click on the image for the interactive version and to download.

June 26, 2017

Makeover Monday: The Impact of the Global Recession on German Automobile Production

No comments
Congrats on making it to the halfway point of #MakeoverMonday 2017. I don't think I'd have hadthe energy to keep it up this year if Eva hadn't joined me, so special thanks to her for her countless contributions, endless ideas, and infectious energy.

Life will be hectic these next two weeks. I'm off the Germany for 10 days, helping our German team with Zen Master events in Frankfurt and Hamburg before heading to Exasol Xperience in Berlin next week. This week, we're looking at German car production to make it more relevant for the #MakeoverMonday live sessions we'll be running.

What works well?

  • Line charts are generally very easy to understand
  • Including a trend line
  • Great responsiveness for the tooltips
  • Including the Year over Year change in the tooltip
  • Including a BAN in the tooltip
  • Putting the tooltip into a sentence

What could be improved?

  • Needs a better title
  • Remove the car icon from the tooltip
  • Remove the up and down arrows from the tooltip; they're redundant to the text.
  • It's pretty boring. What's the story?

What were my goals?

  • Find a story in the data
  • Create a more informative visualisation
  • Explore the data, particularly with all the ways you can create time series in Tableau
  • Keep the viz to a single worksheet in order to keep it simple
  • Give the viz a meaningful title
  • Use German colors
  • Get it all done in an hour; I'm really pressed for time as I type this.
  • Keep the idea of the tooltips from the original with the BANs.

Ok, that's it. Here's my Makeover Monday week 26 viz.

June 22, 2017

Makeover Monday: Tiled Heatmap of U.S. Air Quality Levels

No comments
Yesterday I was at Exasol HQ trying to help them with their hackathon. I wasn't able to access their data for the hackathon, so I decided to do some testing for them with this week's Makeover Monday data set.

I was very interested in looking at state-level air quality and built lots of heatmaps and originally built them in a single worksheet using table calcs to sort out which states go in which columns and rows.

This didn't work for me, though, because it only helped me see the states alphabetically. It's much more intuitive if they are displayed geographically. An idea popped into my head...

I wonder if I can combine a heatmap that looks at daily max reading by state across all years with a tile map.

I quickly went to Matt Chambers' great post for how build tile maps added the secondary data source, blended it by state and replaced my crazy table calcs with a simple tile map view. What a fun exercise! I learned a ton and feel like I created a much more intuitive view. Does anyone recall every seeing a tiled heat map? Have I come up with a new chart type???

Click on the image for the interactive version. Note that the viz might be slow to load as it's displaying about 460,000 marks.