Home / Wiki / Timekeeping
Learning
◆◇◇

Metadata

RevisionDateStatus
217/07/21Work In Progress

Introduction

Starting in 2021, I began to track my productivity. I was heavily influenced by Devine Lu Linvega’s Horaire tool, but wanted to set up my own categories and tracking methodology.

Initially, tracking was simply a way to find out exactly how much time I was actually spending on focused work—I know how easy it can be to feel like you’re working but be between tasks. This space between work and play actually occupied a lot of my time, logging was a great reminder that eventually this time would either have to be allocated to a category (in which case I needed to have something to show for it) or it wouldn’t be counted as productive work at all.

Version 1

I knew that I eventually wanted to build out a dashboard view of my time, with some data visualisation software, but started with the basics. Version 1 of my time tracking included a simple, straightforward way to create multiple logs each day. I decided to use a .csv format, as I was very comfortable with the format and believed it was frictionless and universal enough to serve as a raw input format.

The initial format for a log, with added clarity using the Rainbow CSV VSCode extension, is shown below:

DATE,DURATION,TYPE,CATEGORY,NOTES
01-01-21,3.0,Code,Development,Website

Even something as simple as this one entry has a number of decisions built in. I used a DD-MM-YY date format as that is the format I’m most comfortable with; I use a VSCode extension called Insert Date String which allows me to use Ctrl+Shift+I to insert the formatted date. I found that start and end dates were less useful to me (and more work) than simply adding a duration. I use this number and round to the nearest 0.5 hours for each log (less than that is usually not worth recording). I also like that rounding to one decimal point on each duration allows me to quickly see errors, due to the monospace font I use in VSCode.

Categories were basically created through trial and error—once I logged enough activities to see patterns in my work types, I formalised definitions and worked through old logs to unify them and ensure they were adequately captured in my category definitions.

The TYPE column was probably the hardest to decide upon, but each log is classified under one of four types of work:

  1. Code
  2. Writing
  3. Design
  4. Abstract

The first three captured the bulk of my time and abstract was kind of a catch-all for the rest. I was not totally happy with this setup, although it did work fairly well. The initial dashboard used data from an ObservableHQ notebook and initially looked as shown below:

And, after learning more about design and testing repeatedly, ended up with the following:

Version 2

The second iteration of the log was based on a customised version of Rostiger’s Logbook and looked as follows:

I liked this a lot and almost ended up using this as my full-time solution, however having to input every hour of each day was quite an effort. An example of the type of code formatting required is shown below:

I did really like the look of the ‘tags’ section of the logbook, and was looking to use this section with a simplified methodology moving forward. This was the start of iteration 3.

Version 3

Version 3 came about after writing my 2021 Q2 quarterly review. In this summary, my media was controlled purely by summing the individual episodes, movies and podcasts to create an overall duration of time spent on each media type. The skills sections came from version 2 statistics. The result was a simple yet powerful overview of my previous 3 months tracking:

Books
143hrs
Coding
131hrs
Podcasts
119hrs
Movies & TV
41hrs
Writing
31hrs
Research
24hrs
Design
14hrs

Currently, I’m looking to use the (open-source) Loop habit tracking app on Android to add daily entries for each category, in terms of minutes spent on each. The interface has a nice summary system and exports to CSV easily so I believe this is a great fit for capturing the raw data. I will eventually look to build a system which generates summaries based on the raw data but will check for basic functionality before extending this any further.

Note: I feel that these versions may look from the outside as though they are moving backwards. The reality is that the best time tracking system for me is the one with the least amount of friction—I want to be tracking my time every day for many years so any improvements in efficiency can save a tremendous amount of time in the long-term. I’m also a strong believer that simpler is better in design, which is why I have settled on my current design.

Future Work