Ping caught me while daydreaming for a few seconds. Should I tag?


Hi, I just started using TagTime (I love the concept) and I’m tracking a study goal on beeminder. I ask this because I think it’s going to happen often:
While studying I lost the thread, for about 10 seconds my mind was wandering to the next day shopping list. I would have probably refocused in a few seconds but the ping caught me sooner.

What do you do in this situations? Tag it as study/work or not?


No, you tag it as daydreaming. Tagtime only works if you are really honest about tagging what you are doing at the exact moment it pings you. Not what you were about to do, not what you are supposed to be doing, but what you are actually doing. If you spend 95% of your time studying and 5% of your time daydreaming, then on average you will get 95% of the pings while you are studying. Sometimes you do get those unlucky pings right in the middle of daydreaming—but in the end it will average out. You say “you think it will happen often”—well, if it does happen often, that means you are daydreaming relatively a lot.

Put another way, the only way you will ever know how much of your time is spent daydreaming (a useful statistic!) is by being honest about tagging it when you get pinged.


I see, you are absolutely right, thanks.
Another question: If you are in danger of derailing does it make statistical sense to close TagTime, study and report the time manually? While being careful not to daydream while doing it of course.


+1 to tagging as daydreaming. It evens out in the long run.

(The long run may be a long time.)


Yes, from a mathematical point of view, reporting time manually when close to derailing instead of using tagtime makes sense. The problem, though, is that it screws up your tagtime data. You either have to turn tagtime off, leaving a gap in your data, or if you don’t turn it off, what do you record if you get pinged while working and recording your time manually? You don’t want to double-count the work, but if you report something else your ping data is now inaccurate. And note it is NOT mathematically OK to do the studying, and report the time manually only IF you didn’t get pinged during your study session! You would have to decide up front that you are now tracking your study time manually, and that if you get pinged while doing so you cannot report it (or turn tagtime off).

In the end I think it is just easier not to play these games. If you are going to use tagtime to track a goal, you have to commit to it completely, including the possibility of derailing if you happen to not get pinged. For this reason, tagtime probably only works well for goals that are large enough (e.g. it would be difficult to use tagtime for something that you only want to do 10 minutes a day). You will probably also want to maintain a bigger safety buffer than you otherwise might—because of the higher variance it’s dangerous to skate the edge of the road with a tagtime-tracked goal.


Great points again. There should really be a comprehensive TagTime FAQ. Another example: You mention a 10 minutes a day activity: What about decreasing the polling interval only while doing it? Again, It should be okay from a mathematical point of view, isn’t it?


Changing the polling interval in and of itself should be fine, with the caveat that if the polling interval is, say, once every ten minutes, then each ping should count for only ten minutes towards your Beeminder goal. There is nothing I know of currently which can automatically adjust the data points it reports to Beeminder based on the polling interval of TagTime. So you would have to code that yourself. Also, keep in mind that polling intervals of much less than 45 minutes tend to be annoying and distracting, because it starts to become likely that you get clusters of pings only seconds apart and so on.


If you use the Android TagTime App linked to the Beeminder App, it does this automatically. A standard ping shows in Beeminder as 0.75 and one at an hourly interval will be recorded as 1.


Likewise, the desktop script uses the ping interval to calculate hours, iirc, but you only get to set one value and then live with it forever.

In general: don’t mess with the polling interval. Remember that it’s stochastic. Even at 45 minutes you’ll get pings that feel ridiculously close together, and pings that feel obscenely far apart.

Setting a 10 minute ping would kill me.

A longer interval is probably more defensible, when combined with a simple tagsonomy (sic) that anticipates and accommodates low variety.

For me, TagTime tells me how I’m actually spending my life, not my time.

When I want to track granular time-spent on something, I use a timer.

Automatic, manual, doesn’t much matter. It’s the difference between measuring the input and the outcome. One of the outcomes of TagTime goals is that you’re relying on the co-incidence of the ping and the doing. I find that randomness stressful on emergency days.

As has been said, pings are sacrosanct or the whole thing is worthless.


Using the android TagTime implementation with the beeminder app.

I do this by voiding any pings that come in while I have a timer on. So if I were studying 20 minutes before derailment and only needed 5 minutes to be safe, I would turn on the timer and study for 5 minutes. When turning the timer on I commit that any pings that appear would be “study-np” and not “study” pings (the np stands for no ping). When the five minutes is up I submit the timer value.

This way I don’t have to close TagTime, reducing the number of steps, and I also can keep my TagTime log relatively accurate without double counting my time toward the beeminder goal.


That’s a laudable goal. Sounds hard to achieve with a mixed measurement method.

I admire the elegance of voiding pings that come in while in manual mode.

Doesn’t your scheme mean that you count 100% of manually-timed time, and also get 45 minutes credit for pings that occur outside any manually-timed times?

Naively, that seems that it would tend toward over-counting time spent on your study goal. But maybe they cancel themselves out fairly well. Any lurking statisticians who could advise?


I believe they do. From the TagTime point of view, it is as if we were doing something else while manually tracking the time. I mean, let us imagine that it is necessary to get 5 minutes for ‘bare min’. The person tracks this time manually and if receives the ping, discards it. Then the timer is stopped, and the person decides to study for 1 more minute. And gets another ping - a credit for 45 minutes. But let’s see, if indeed during the first 5 minutes the person was not studying but daydreaming (and not tracking manually), and then just study for 1 minute, and get that ping, it would still be credit for 45 minutes.
I think what is important is to decide in advance “now I am in the manual mode” and not change the decision if the ping arrives. Only such a post factum change of “manual\automatic” mode would result in over-counting. TagTime is accurate because we believe the accuracy of stochastic pings: whenever it arrives, it is it. If we decide that a certain period of time we are switched to “manual” mode, then TagTime quite accurately doesn’t count that time in.

(Not a statistician, anyway. But I decided at some point to simulate something tagtime-y just for asking me whether I am looking at the monitor, and after that experience, I grew to believe the statistical presumptions behind it.)


Right, I think the accuracy depends on the strategy by which you decide when to manually track. Suppose your strategy was to begin manually tracking whenever you start work, up to 45 minutes. If you get pinged, submit the timer and restart the timer. If you go 45 minutes without a ping, you submit the timer and then keep waiting for the ping before starting the manual tracker again. I think this would over count significantly.


This is a perfectly valid scheme from a mathematical point of view, and here’s why. It all has to do with the memorylessness of the exponential distribution used by TagTime. Since it is memoryless, the expected ping distribution is the same on any subset of time. So imagine simply “deleting” the ten minutes spent manually tracking (and ignoring any pings), that is, imagine that from TagTime’s point of view time simply skips ahead ten minutes. Since the distribution is memoryless, TagTime cannot tell the difference at all. That is, the expected distribution of pings that happens after this skip is exactly the same as it would have been without the skip. So if you manually track time on some interval and ignore any pings, TagTime is still accurately tracking you on everything outside that interval.

As others have pointed out, the one important point is that once you start the manual timer you have to commit to not counting any pings you get, until you have decided you are done manually timing. For example, you cannot start the timer and then as soon as you get a ping, stop the timer, submit the manually timed portion so far, and also count the ping.

Mixed TagTime + manual timer strategies

Fwiw I’ve also considered doing the voiding pings while manually timing thing, though I don’t currently do it. Specifically I’m considering an “active” goal which tracks time doing exercise. Some of my exercise is already timed, and it would be nice to have those more accurate numbers in the system directly.

RE the original question: for me the fact that daydreaming isn’t counted towards the goal is one of the best features of tagtime that is almost impossible to replicate without it.


I justify the voiding by imagining I’m turning off TagTime when I turn on the beeminder app timer.

I have had edge cases where I’d decided to turn on the timer and then got a ping as I was navigating through my phone to turn the timer on. For the sake of the accuracy, I’ve been cautious and counted those very few pings as beeminder overhead rather than goal pings.