Visualizing dynamic data

Here’s a common problem we run into: An organization wants to understand the dynamics of their customers as they interact with marketing channels, change products, and move between active and inactive. Presenting this type of information is tricky and cumbersome, despite the light it can shed on how a business works.

In systems dynamics-speak, this is the world of "stocks and flows." As entities move through a system, they are either in a particular stock (aka bucket, status, state of being) or flowing to another stock. By measuring the speed of flows and levels of the stocks, you can begin to understand how to manage and optimize a system.

For us, the challenge is in finding an elegant way to visualize this dynamic data. I haven’t seen an easy or established way to handle this problem. Excel isn’t very good at it (though we wrote about how it can do the job if pressed). Here are a couple more examples of ways we to tackled the problem:

  • You can show stocks and flows in a simple and intuitive way if you are willing to constrain yourself to a couple snapshots in time. The graphic below was a way we displayed the inflow, outflow, and flow between products for a client. The visual language is straightforward: size of balls represents the number of customers, size of arrows shows the magnitude of the flows.
  • On another project, we tried something completely different: we created a movie (Windows Media only) of the movement of customers into, within, and out of the business. To make the movie, we represented each customer as a point, then took daily snapshots of each customers’ "location" (with a little extra marching between locations to make the flows come alive). It was a fun way to show dynamic data, if nothing else.

These were each custom solutions. I’ve been looking around for analytical tools that address this problem. No luck. Here’s a few interesting things I found along the way:

  • Visitorville is a web analytics tool that shows data in the context of a virtual city with people (site visitors) moving around between buildings (web pages).
  • Information Aesthetics is a great blog to see innovative examples of data visualization. In this post, a reference to Chaomei Chen, information visualization guru and his Top Ten Unsolved Information Visualization Problems. "Number 8: paradigm shift from structures to dynamics: towards time-varying datasets, data streams & immediate trend-detection"
  • Processing is "an open source programming language and environment for people who want to program images, animation, and sound." We’ve played around with the idea of using this as a way to visualize dynamic data.
  • Systems dynamic software like iThink provides mechanisms for modeling stocks and flows. In my experience, these packages are more about creating simulations rather than reporting of historical information.