Susie Lu

Re-viz-iting the Receipt

2019

This blog post is also published through the Data Visualization Society's Medium publication.

When you start learning about a field, you are inspired just by gathering your fundamentals, building your skills, and trying out anything you can get your hands on.

But now, having spent many years doing just that, I asked myself: what type of data visualization project would I love to see or read more about? Knowing what I know now, what project would I find inspiring? Instead of continuing to explore deeper into a field becoming more and more specialized, I felt the most refreshing experiment would be to step outside, take a look around, and find new ways of applying the knowledge and skills I’ve already accumulated.

The more I’ve learned, the more the importance of data visualization's applicability and value has grown for me. Data visualization shouldn't be a niche field. It’s design, it’s communication--and given that lens its application can be both broad and impactful.

I wanted to find commonplace data that we take for granted or perhaps ignore completely. That's when I started exploring a remake of the receipt.

Two goals I thought were applicable to a redesign:

The Design

I started by taking a recent grocery receipt and constrained myself to use only the price data and categories. Working with the thermal printer added several physical constraints:

Here is the final design for this exploration:

At the top I've summarized the categories into a bubble chart. I wanted to pick a visualization that separated itself visually from the bar charts below and didn't take up too much space. Bubble charts aren't the most effective for precise comparison, but they can give a good approximation of similar sized items and rank. In this case, Meat & Seafood and Produce stand out as the top two categories, with Seasoning and Eggs & Dairy trailing after.

I added two affordances to enhance comparison and compensate for the more difficult comparison of circle sizes: All the larger bubbles have the percentage labeled and the largest bubbles also include icons. I decided to include icons partially so you could relate the summary section and the list area but mostly because I found the icons fun (remember fun?).

For the list of items, I:

So in this case the ORG GRASSFED RIBEYE STEAK was the most expensive item on the receipt, and so MEAT & SEAFOOD is the first category shown. With the horizontal size limitations in mind, in the bar charts below each label I decided to use the most expensive item to represent a full bar at maximum width. This allowed me to use the same axis across items for easy comparison, without making the bars for lower priced items so tiny that it became difficult to see. Had the bars represented a percentage of the total bill this visibility would have presented an issue.

The Process

These are the steps I took to create the receipt:

  1. Prototyped the visualization designs using D3 in SVG
  2. Took a screenshot of the SVG
  3. Turned it into black and white using a threshold image filter. This removed any grey pixels that were created through antialiasing
  4. Uploaded the black and white image to onto an HTML canvas layer set up with the thermal print driver
  5. Printed the design

This was made easier using a driver ported over by Sam Saccone to JavaScript that allows you to connect a thermal printer to your computer via USB, and through the web USB API send images for printing.

The Reception

I tweeted photos about this project, and the project took off receiving over 7.5k likes on Twitter, was on the home page of Hacker News, and had an article written up about it by Fast Company.

Feedback on the project (primarily via Twitter comments) ranged from very negative to very positive.

Some Critiques:

Some Praise:

The overwhelming interaction and reception of this project was shocking to me. I’ve never had so many people outside of data visualization and programming interact with a project that I've made. The feedback, especially the critique, highlighted areas that could further improve this experiment for anyone interested in turning this idea into a full prototype.

In particular I thought larger font sizes for the total price was a great note, as that value should stand out more as you scan the receipt. I also understood the confusion about the bar charts and agree there needs to be a label explaining the scale is based on the most expensive item. Finally, while I agree that a digital version of the receipt might allow for some extra visualization or the possibility of viewing trends over time, my goal was to limit the concept to the same presentation and data as the original design. I didn’t want a different type of technology to make the concept feel out of reach. Remaking the receipt on an actual receipt with the same kind of printer greatly reduces the reasons for a “Why not / That’s impossible” response and limits the scope to a design problem versus a technological one. In addition, as a rebuttal to going fully digital, one responder also importantly noted that paper receipts are more accessible to low income families.

I don’t have any plans to take this idea further on my own or with any of the companies that reached out, but I would love to see them take this inspiration and move forward. The response and engagement with the idea has far exceeded my expectations, and my next plans are to play with other everyday objects that could also benefit from a data visualization makeover.