Posted in Dashboard Spotlight

Tableau Mobile Iron Viz 2016

You are more likely to see a sheep on the cover of a board game box than you are to see a group of women. —Erin Ryan, of the Cardboard Republic

I used this Iron Viz as an excuse to explore some data I’ve been meaning to work with for a long time. A friend of mine shared this article on Gender Representation in Board Game Cover Art‏ a few months ago, and I’ve been looking at my games slightly differently  ever since.

Of course, while the gender stat is somewhat shocking – and it only gets worse for people of color – few people are interested in buying a game simply for the fact that it features a woman on the cover. A lot of the follow-up discussions we’ve had has been about representation more broadly – Do I have any games by female designers? How do I find more stuff created by women?

And finding games you might enjoy is enough of a challenge in and of itself! There are thousands of new games published every year and while Board Game Geek can be a helpful reference, the proliferation of titles like “Top Game of [unit of time],” “help me find a game,” “2-players my wife will enjoy?,” and “Masterpost of [game type] games!” speak to the difficulty of using it as a recommendation tool.

Enter RecommEngine!


In this Tableau visualization, I have experimented with using visual analytics to inform and guide board game selection. Selecting games you know and enjoy at the top (or the top left on desktop) will give you an overview of some of the game designers and game mechanics you enjoy, as well as the ability to see how many of the selected games fall into the various bins of game length and number of players. Each of these categories works as a filter, so you can see which of your games are by a particular designer (are they the really good ones or the kinda meh ones?) or quickly narrow down your options for board game night based on the games available, how many people you have, and the time commitment they’re willing to invest.

As you scroll, you pass a few visualizations that range from informative to comical on the gender representation of your game library. I did quite a bit of digging into the depths of the Board Game Geek website to find how and where women were involved in the back end of game design. I wanted to paint a slightly more nuanced picture of the industry, and to give people the tools to explore that nuance for themselves.

Cause for celebration

In the middle of the dashboard – whichever device you use – you find the radar chart overview. Earlier this year, Edward Kung did a Principal Components Analysis of Board Game Geek rankings and identified four “genes” that mark particular kinds of players. He shared the top 10 positive and negative indicators for each category on his blog, which I applied to the list of games I had compiled to build a high-level overview of the selected games. My visual encoding choice was directly informed by Kung’s original, here, but I also wanted it to have the look and feel of a personality test, which tells you about yourself in a way that you can (theoretically) use to inform your decisions going forward. The graph on the left (“Your Results”) shows the result of the selections and filters that were applied based on your original knowledge and input; the graph on the right (“Selected Game(s)”) gives you an overview of the new recommendations so you can assess the fit (the theory being that it’s a lot easier to compare one shape to another shape than to remember the intersecting sets and filters that inform a recommendation!).


At the bottom – or the right side of the screen on desktop – you can use the information you’ve learned (or already knew) to find new games. Selecting mechanics on this side applies an intersection filter; a selection of “Co-operative games” and “Bluffing” will show you only games that have both mechanics, rather than all co-operative games and all bluffing games. The same filters for designer; number of players; length of game are available here, to minimize the scrolling.

As this was a mobile contest, I wanted to limit the need for filtering as much as possible. While the initial input on both sides is fairly user/filter-intensive, the rest of the interaction is all done through dashboard actions and calculations (…I had to figure out LOD Expressions for this!). In case the number of games or the length of the filter was still too intimidating, I’ve provided a few pre-selected lists as buttons underneath so you can get a feel for how it works before tediously checking and unchecking a preferences list.

Clicking any particular game (whether in the recommendations side or the preferences side) will give you access to the Board Game Geek page as well as a pre-selected tweet with #ironviz 😉


There are some major limitations to this dashboard as a recommendation tool. I’m still disappointed that I could not figure out a way to turn the selection filter at the top into an exclusion filter at the bottom. Because of that, there’s really no way to prevent games you already know and like from appearing as recommendations. While I imagine that makes the preference analysis seem more accurate, it’s can be pretty frustrating if you’re really searching for something new.

There is also no weighting of your selection – every game you select factors evenly into the analysis below. You may kinda like one game and LOVE another, but all of the “Top” categories are determined by number of games that fall into the group, not the strength of preference.

Still want to check it out despite the limitations? Check it out by clicking here or on the image below!


Other Board Game Recommenders

Don’t like RecommEngine? That’s fine! we’re sad to see you go, but here are some other tools that might be more to your liking:

Tools and Data

While the final dataset required a lot of hand-compiling and curation, the following tools and sources were essential for inspiration, technique, and methodology:

Finally, special thanks to everyone who tested the dashboard, gave me feature suggestions and game suggestions, links to compelling articles, and generally kept me playing board games all these years: Matt, Ryan, Brie, other Ryan, Chloe, Andy,  Noah, Jared, Brandon, Keith, Cole…it takes a village – which incidentally looks like a fun game we should try 🙂

Posted in Dashboard Spotlight

Tableau Politics IronViz 2016


Like a lot of people, I struggled to come up with an interesting way into the “Politics” theme for this month’s Iron Viz. I’m much more interested in the subjective and rhetorical aspects of politics than in polling numbers and electoral projections, and rhetoric doesn’t visualize easily. I was researching Tableau cartograms as a possible entry point when I realized the winner of the 2012 Politics IronViz had done precisely that.

And (ugh) it was amazing.

But I’d started looking into distortion as a possible visualization mechanic, and from there – eventually – everything else seemed to come together.

The Facts

This visualization is a set of 3 dashboards, with a little over 50 worksheets feeding them. There are 21 dashboard actions governing the appearance and disappearance of the information and I don’t even want to think about how many hours went into the formatting alone.

I use 9 data sources, though a few of them just populate descriptive fields, and there is a ton of redundancy in the blending and joins. I am positive there is a better way to put this together, but – much like my first cross stitch pattern – I decided I cared more about the presentation side than the back end.

The Data

Because this dashboard was going to be such a subjective project and I was going to have an outsize role in the data transformation, I had a three key criteria for the data:

  • All sources had to support comparison between Clinton and Trump. There was a lot of interesting data about one or the other, but I was not going to use it – however tempting.
  • All data should come from nonpartisan or bipartisan sources. If a nonpartisan source couldn’t be found, the trend, at least, should be confirmed with an outside source and data from an organization with the opposite stance must be used elsewhere.
  • All qualitative information had to be coded by an organization. I could quantify the codes, if necessary, but I would not be doing the initial evaluation and, ideally, neither would any one individual.

The data I ended up using for this visualization was pulled from the following sources:

The Visualization

Design Philosophy

I wanted this dashboard to unfold, like a newspaper, the more you interacted with it. I hoped that the unexpected central visualization would invite more nuanced reaction to political information than we tend to express in debates, and I embraced the subjectivity of the process – using much more emotional language than is perhaps analytically rigorous in the hope piquing interest and curiosity. I also wanted to be able to answer as many surface questions as possible – hence the volume of text within the dashboard and the underlying sources available at a click.

The Distortion Trick

The central effect was achieved by running a photo of each candidate through a cross-stitch generator to get, essentially, a coordinate plane of their faces. I used a color detector to translate thread color to HTML hex codes, which I added to a custom color palate in the Tableau preferences file.

I then decoded the pattern using, essentially, the reverse of Jewel Loree’s “Cross Stitch Viz Art” method – starting with the image and coding the color/symbol in each cell.

Once the normalized data is in Tableau, it’s basically building a scatterplot and assigning the appropriate colors to the appropriate code (protip: alphabetize the colors before you add them to the preferences file).

Playing around with the size and opacity will get you somewhere on the spectrum of photo-realism to uncanny valley, which I found the most reliable way to get the “distortion” effect. It isn’t exactly a data-driven amount of mutation, but I found that 6 rough bins was about as much as people could distinguish – especially since I didn’t want to start from something crystal-clear¹.


From there, I was able to blend each bin with the corresponding bin of the coordinate plane I was using for the primary interaction. It takes a bit of fiddling, but in the end it’s essentially just sheet swapping based on a filter action that triggers on select.


The grids were built by finding the average/median of each measure (whichever made more sense with the data source) and plotting them on the xy plane. I made sure the bins were approximately equal between candidates, but weighed certain information more heavily. As you can see above, guessing in the right quadrant would get you a more positive result than a “closer” guess in the wrong quadrant (I considered each 0 axis as a tipping point) and guessing one measure correctly would be considered “half right,” even when it’s only a few marks away from “cartoonishly inaccurate.”

If there’s interest (…even if there’s not), I expect to make a much more detailed tutorial of this in the near future.

As I discuss a little more below, these grids and the distortion view were both backed by data, but ultimately created by a subjective author and only meaningful with personal reflection. I kind of imagine the process where you’re clicking around trying to feel your way toward the most accurate point as a space to interrogate not just the the gap between what you perceive and the view you’re seeing, but the data beneath the view, and my own role as the author of the dashboard.

The Rotating Quote

A small detail I’m rather fond of is the rotating quote at the top of the page. I used  Joshua Milligan’s random number generator, which mashes up Microsoft Visual Basic with the NOW() calculation, to give you a new result every time you refresh (in theory. In practice it looks like there’s a cache the server will use for awhile). I assigned the variable to the text and used RANK to pull just a single quote. It’s not half as complicated as the process above, but I hadn’t seen much discussion of random numbers except as a proof of concept, so I was pleased to work this one out.

Everything Else

Because the central visualization was so complex, I wanted to rely on very simple visual encoding for all the supplementary data. The grids themselves are sparsely designed – kind of inspired by Nolan charts. Bar charts, line graphs, and scatterplots pop up beneath the top view as soon as you make a selection, which allow you to view the underlying statements with a click (full text and ranking on hover). Also available is some information about the data, it’s limitations and interpretation, and its sources. If the underlying theme of last week’s Information + Conference hadn’t been “foreground the underlying complexity and messiness of data – for justice!”, I might have favored a cleaner look, but once you bring up data literacy to a librarian…

Anyway, I was definitely grateful to have hit on “newspaper” as a design theme early, because the small font and short columns ended up being absolutely necessary to fit it all in.

I knew exposing the actual data feeding each dashboard was essential to understanding and interpreting your result, but after showing it to a few friends early in the process, their primary comments were about finding and looking into the underlying statements made by each candidate (and the snarkiness of the Politifact comments) – another heartwarming information literacy moment.

On Distortion and Subjectivity

As someone who is building a career on data literacy and visualization, I can’t help but feel a little uneasy submitting for critical review something in which the encoding is so subjective and the primary data sources have been manipulated to the point of near unrecognizability.

In defense of distortion, I want to quote Tamara Munzner, who says “distortion is less problematic with familiar shapes, like geographic maps of known places, because people can interpret the distortion as a change to a known baseline.”² Although she is talking more specifically about fisheye lenses and cartograms, the iconography of this year’s presidential  candidates are incredibly pervasive, and I believe they provide a recognizable baseline from which some approximation of difference can be measured. Especially when, as I’ve been repeating to myself throughout this process, “it’s all so subjective anyway.”

And as to that subjectivity – this dashboard hangs on the premise that perceptual distortion can be quantitatively measured and visualized. I’m not confident in that stance in a scientific way, but I think the value in a more subjective approach is that the meaningful differences and relationships between categories are the ones identified and interpreted by the user. Political discourse in particular can run in deeply entrenched ruts, and questioning a result and having the opportunity to learn more is a process I hope might be less prone to instinctive hostility. Curiosity before defensiveness, perhaps.

In the end, this is as much a rhetorical project as it is a visualization. It’s certainly not free from bias, and while I’ve used widely-available political data to support the results, I deliberately foregrounded subjectivity and emotional language (not “the median value of Hillary’s statements when ranked from most to least truthful” but “honesty”) for effect. I really enjoyed working on it. I hope you like it too.

Click here to view the visualization on Tableau Public.



¹ It’s a political election, and there is record-breaking antipathy between partiespolarization, and dislike of both candidates.

² Munzner, Tamara. (2014). Visualization Analysis and Design. A K Peters Visualization Series, CRC Press.