A few notes on how I recorded what I was doing.
At the beginning of the year, I knew that I wanted to track a lot of things, but I didn’t know exactly what they were yet. I also didn’t want to get stuck halfway through the year by coming up with a new metric to track and realizing I hadn’t been recording it for the last however-many months. My solution was to record everything.
I’m a big fan of the iPad Pro and the Apple Pencil for doing computer work that doesn’t feel like you’re using a computer. Every day, I make a new copy of my hourly planner template in my notebook app (Notability). As the day goes on, I’ll scribble what I’m doing in red ink. If I get around to blocking my day out ahead of time, I’ll do that on the same sheet with blue ink, and then fill in my actual activities next to it.
The format of the template limits my maximum precision to about 15 minutes, which works out pretty well. I think it would be difficult to try and record activities down to the minute with this manual method. 15-minute intervals make for a good compromise between data quality and time investment/personal sanity.
As the year went on, I settled into a sort of standard format for the timesheet:
The benefit of the “write down everything that happens” timesheet format is its flexibility: I feel pretty confident that I’ll be able to do a broad range of analyses on my time data if I want to. The downside is that all of the timesheets need to be processed before they’re usable for analysis.
Right now, this happens in a spreadsheet that I’m almost embarrassed to post a picture of:
I processed timesheets once a month, in two passes. On the first pass, I only dump what’s in the timesheets directly into the spreadsheet (no tagging, categorizing, or analysis). On the second pass, I assign tags and projects to each activity.
Data import takes me 1.5-2 hours a month, and tagging/categorizing adds another 2 hours on top of that. This isn’t actually too terrible, but once a month isn’t often enough for me to get fast feedback from my timesheet data. Improving the timesheet data capture process is pretty high on the list of improvements for 2020.
Each 15-minute interval can have up to one project, and as many tags as I want. (The spreadsheet only has four tag columns, but that’s not a hard limit.)
Early in the year, I kinda made up my tags as I went along, mostly according to the things I wanted to be tracking. Later, I realized that I needed to tighten up the tag definitions if I wanted them to be useful for analysis. For example, I originally had a
maladaptive tag that was supposed to represent times when I reacted poorly to a stressful or unpleasant situation (say, by taking a nap instead of fixing what was wrong). But
maladaptive quickly overlapped quite a bit with
nap, and then things got squishy: how do I distinguish naps I took because I was tired, but when I also happened to be facing a tricky problem?
About halfway through the year, I tried to write clear criteria for the tags. Here are some examples:
I won’t get too deep into my toolchain for making plots here - I think it will probably be boring to most of the folks reading this. (If you want to know more about it, I’m happy to share code and such - it’s nothing special.)
<div>elements containing interactive versions of the plots, and I generate those as well (for the plot detail pages).
This is sort of a zombified version of a toolchain that I put together when I was in school for compiling homework assignment reports (back then, it was MATLAB dumping .eps figures into a folder that LaTeX compiled into a PDF). I’m a big fan of automatically-updated report outputs - it means that as I go back through and tweak plot formatting, analysis parameters, etc., the images on the website automatically update themselves to match.