Two GTD tweaks for Todo.txt for Android

I follow a slight variant of GTD, and use my Todo.txt for Android app for task list management. Here are two tweaks I use in the app for parts of the GTD process—quick capture, and easy identification of next actions.

1: Use a special project for quick ‘capture

I use ‘+quicktask‘ as default project for all new tasks to quickly capture them. This allows me to just note the task in plain English and continue with the task at hand. I don’t need to think about their priority, due date and all other things at the time of capture.

Writing the task down closes the loop and frees the mind. Applying the +quicktask project allows me to easily find the task later during the clarification stage.

When I’m in the clarify or organise stage, I filter the task list for +quicktask and process them.

2: Use a special tag to mark the ‘next action

Pending next actions
Pending next actions

I use ‘#next‘ tag to indicate the next task to focus on in a project. During the organise stage, I mark one task in each active project as #next. This ensures that I don’t have to look through the task list for what to focus on next.

My task list widget is now filtered by #next and sorted by due date. What’s on top, is what I need to focus on now.

Availability bias and the remote work advantage

Removal of the easiest to observe input metric – face time – reduces the availability bias in remote work organisations, and helps them focus on the more productive outcome-based metrics.

This switch to emphasis on outcomes can be helpful for individual productivity, but is truly transformative when the whole organisation goes remote-first.

Behavioural biases confuse performance appraisal in office-based organisation culture

The time spent in office looking productive is a key factor in performance appraisals across teams and organisations. Even when time in office is not a formal factor, it unconsciously creeps in and affects rating scores on other factors.

This focus on input factors and ‘visible productivity’ (time spent, sales calls made, lines of code written1, bugs closed) is a result of the availability heuristic and substitution bias in action.

The outcomes of an individual/team’s work are delayed and often diffused – hard to credit exactly. However, the inputs are visible and trivially measurable. In pursuit of productivity metrics, the manager/organisation substitute the hard to measure outcomes with the easily available input factors (time spent in office, calls made, lines of code) etc.
Continue reading Availability bias and the remote work advantage

TIL: Moving average with missing periods in Google Sheets

The short answer:

=AVERAGEIFS(A1:A99, B1:B99,"<="&B2, B1:B99, ">"&B2 - 30)

Values to be averaged are in A1:A99, corresponding dates are in B1:B99.

What the formula does: average the values in the range – Include a value in calculating average for the current date if:

  1. The date for that value is same as or before the date in the current row, and
  2. The date for that value is greator than the date X days before the date in the current row (X is 30 in the formula for a 30-day moving average)

The long one:

I have a spreadsheet with my daily weight log. It has occasional missing days – when I didn’t log my weight.

Yesterday, I wanted to chart this data, and wanted to add a moving average to it. Google sheets’ in-built moving average trend line refused to work – either due to the missing data, or due to the number of entries. So I added a column to the sheet with the calculated (trailing) moving average weight.

My weight and the 30-day moving average
My weight and the 30-day moving average

I’ve never before had to calculate moving average over a non-consecutive data set. So, in case I forget, I’m noting it down here for later…

Continue reading TIL: Moving average with missing periods in Google Sheets

TIL: Conditional sum product in Google Sheets


Just learnt an easy way to do conditional SumProduct1 calculations in Google Sheets2.

In above example, I wanted the SumProduct of values in columns B and C, when the respective cell in column D was empty.

The solution is to simply introduce the conditional column as another input, with the condition stated in the input.

Sheets does the SumProduct calculations, with each true as 1, and false as 0, thus making it a Conditional SumProduct :)

Continue reading TIL: Conditional sum product in Google Sheets

Quick-tip: Moving multiple tabs to a new window in Chrome

Just discovered this by trial (requires tabs to be consecutively located):

  • Open the first tab (click to it)
  • Press shift and mouse-down on last tab to move
  • Drag out of the current window and release mouse


All the selected tabs in the range are moved into a new Window.

Productivity timer & activity tracking

Garmin Fenix 3 & Pomodoro Timer

The Garmin ‘move’ bar & the pomodoro timer

My latest piece of bling, a Garmin Fenix 3 watch, comes with an inbuilt activity tracker. One feature of this activity tracker is the so-called Move bar.

The basic idea is that if you are inactive for one hour, the bar turns red and shows an alert asking you to move around for 2-5 mins. The longer you’ve been inactive, the longer you have to walk to dismiss the bar.

On the non-fitness side of things, a.k.a. work, I use a pomodoro timer app to split my work into manageable bits. For the last year and a half that I’ve used it, I’ve stuck with the default 20 mins work, 5 mins break pattern 1. After every 4 sets, is a slightly longer 15 min break to stretch legs, and pamper Chewie.

Today was my first full day with the new watch, and I’ve already settled on a modified pattern – 25 on (working), 5 off (twitter). Every 2 sets, i.e. every one hour, take additional 10 mins off to walk around to clear the bar, chat with family, and then back again.

Worked well for the half day that I’ve worked today. If this works on Monday too, it’ll be a fun combination of work & walk :)

  1. Most of those 5 mins breaks are used for catching up, or posting, on Twitter :)