An exploration of how to track ones time using an app that asks a person what they are doing at random times and then statistically computes how they are spending their time. This avoids the need to track every activity in favor of getting an overall, sampling-based perspective of time usage.


I recently watched Randy Pausch’s lecture on time management and, like many time management gurus, he emphasized the need to keep track of how you are spending your time. Once you have an idea of how your time is being spent you can make some adjustments to focus on the most important things first (see “The 7 Habits of Highly Effective People” by Covey).

I have tried keeping track of time using some time logs– essentially clocking in-and-out of every activity that I performed. This got tedious real fast. I also found it hard to keep track of tasks when they were highly interleaved (taking 5 min to answer a personal email when in the middle of working on something I was clocked in to).

To remedy this problem I thought of a simple method that utilizes statistics to minimize the amount of effort and time (fancy that) needed to keep track of your time. The basic idea is that instead of continuously keeping track of how you are spending your time you randomly sample moments in time throughout your day. If you collect enough random samples they will give you a statistically significant estimate of how you are spending all of your time.

The real difficulty in accomplishing this is sampling yourself at random intervals throughout the day. If the samples are not drawn randomly then they will not give a good approximation of how the overall time is being spent. To achieve a good random sample you can use an random number generator with an exponential distribution to determine the amount of time to wait between samples. You can construct the distribution so that the expected value of the number generated will be some reasonable value. For instance, you might want to be sampled every 45 minutes on average. If that is too much then you might instead want to be sampled every 2 hours on average. The more often you get sampled the more accurate your estimates will be.

Once you have randomly collected samples you can then analyze how your time is spent across samples to draw conclusions about how your time is being spent in general. The real trick here is to determine how accurate your estimates are. To do this you can calculate the t-interval around the estimated percentage of time spent on each task or activity. This enables us to make statements like “you spend an estimated 20% of your time sleeping + or - 3% (with 95% confidence)”.

Now performing these calculations with a stop watch and log book would be nearly as tedious as keeping track of my time by clocking in-and-out of tasks. To make things easier, I created a simple android app that, at random times throughout your day, asks you what you are doing and then analyzes the results to give estimates about your time usage along with t-intervals.

If your are interested in the app it is called Timify and is available in the Android store. Here is the app promo video:

Note: it turns out that someone else also had this idea, see TagTime: Stochastic Time Tracking for Space Cadets.