Visualizing reading

A few nights ago, I came to the realization that I wasn’t really reaping the full benefits of the quantified self part of the quantified self + commitment contracts Beeminder equation. I could barely even answer the question “what books have I read in the past year” without flipping through 15 screens of data points.

A little background about my reading goal is in order: it’s an odometer goal set at 20 pages/day; when I start a new book, I write the title of that book in the comment (otherwise I leave it blank).

To get more insight into my reading, I decided to switch the comments from titles to ISBN numbers, then combine the Beeminder API, Google Books API, and D3 to get a nice picture of what I’ve read.

The outcome lives here:

Some things I’ve realized from this view:

  • Wow, those 1 week lapses when I derail really add up; usually I need a break if I’m derailing, but I doubt I really ever need an entire week.
  • I really only get ~20 books / year at my reading rate; I should be much more careful what I choose to read – the selection process has been fairly haphazard so far.
  • I seem to only derail on technical/dry/math books.
  • This graph looks way cooler when I read every day.

Taking a look at the data for this goal has been pretty valuable for me, and I hope it was an interesting read for you. I recommend others consider doing the same with their data-rich & important goals.


This is awesome.

That’s amazing. Thanks for sharing. Obvious follow-up: is the code shareable?

This we can help with. You can turn on No-Mercy Recommit in the goal’s settings, which re-rails you on the road’s centreline (blue), giving you only two days off.

I’ve got that enabled on most of my goals, with this caveat in my fine print to overcome any reluctance of making that commitment:

No Mercy get-out clause: I can contact support to get my week of flatness or otherwise adjust my road immediately following a derailment.



Any chance we could talk you into tossing this on github? :slight_smile:


I have a thing that is very relevant, although doesn’t actually use beeminder. It’s my bookantt chart. It would be nice to funnel the data from it into beeminder, but I don’t know how to do that and I don’t actually have issues reading a lot. At least, not since I made this chart and the habit of ensuring I read a page of fiction and a page of nonfiction every single day no exceptions no safety buffers no excuses.


Hi, any chance you can share this so we can use it? It’s awesome!

1 Like

Neat, had no idea Google Books had an API! Too bad there is no API for the Kindle :frowning:

1 Like