Currently I have some days-worked goals in which I get a point for every day on which I put in some work on another goal. That is supposed to stop me from leaving big gaps in time between working on a project, over which time I forget what on earth I was doing the last time I was working on it – I’ve often found that I do leave such gaps and then spend the next session just repeating what I did previously or doing some kind of personal archaeology to figure out what past me was thinking.
That does help, but I think I could improve how that works for me significantly: it’s not really the mean number of days worked per unit time I care about, rather it’s more like the maximum number of days between days on which I worked.
So right now, I end up doing a bunch of small stints on a goal to get my safety buffer up, then find I’ve ended up with days or weeks of safety buffer and then leave it for… days or weeks. I sometimes respond to that problem by setting the rate for the days-worked goal higher, but then I end up having to do a bunch of days in a row just to keep that happy – which is not necessarily what I actually want to be doing: there’s an opportunity cost after all.
“Max safe days” has the drawback that… well, that you only have a small safety buffer. I don’t want that because that risks derailing becoming normal and losing its bite. Let’s say I have 5 days of safety buffer, and I’d like to keep it that way. Here’s how I want it to work – in fact I imagine a slightly more complicated scheme that I think would better suit me than this, but to keep it simple to explain: I set my goal up so that if I do the goal every two days, my data points will perfectly follow my target line up the chart so I stay at 5 days forever. If I then leave it any longer than two days, I don’t get any datapoint increase, so I’m losing safety buffer. If I do the task two days after the previous repeat, I head up the chart happily, keeping safety buffer unchanged. If I do the task one day after the previous repeat, I get the same datapoint increase as for two days, so I’m increasing my safety buffer.
Of course you can implement that scheme for yourself by entering a 1 if you did it less than or equal to two days ago and a zero otherwise (and a goal rate of 1/2 per day), or use something like IFTTT to automate that, but those options are a bit of a hassle in one way or another.
I wonder what the most parsimonious / comprehensible / practical way is to support that. I’ve not given this much thought really, but I’m thinking again maybe some function like aggday but that sees previous datapoints also: perhaps only the single previous datapoint? That might also help support habit-building: Beeminder anti-habit-forming
It would also stretch to a scoring system that gave you partial credit if you last did it three days ago, for example – that’s what I’m guessing would suit me for some of my goals.