Aggregation type between binary and raw count

Hi,
I’ve been thinking of this feature for some time; I feel would be really helpful for building habits.

It concerns habits that are countable. Right now we have choice between 2 very different ways:

  • either a binary “Did you do X today?”, which is very good for getting us started on every given day, but poor for pushing us to hold on the effort. (as I wrote 100 words today, what’s the point of writing 200?)

  • or an aggregate “How many X did you do?”. This type motivates us to do more. However the loophole is that after a couple of very productive days, it’s possible to get so much advance that on the next days there’s no need / no point to continue, and the habit is broken. Let’s say on some day I pushed hard and wrote 20x my daily goal, now I can rest for 20 days (and tomorrow’s lazy me will do it!). This type of goal is good for getting the global quantity, but not for building the habit.

I was thinking what would be immensely helpful would be an intermediate: allow us to aggregate between binary and the raw sum. I feel that something like adding sqrt(n) (or log(n)?) would do the trick. If I write 1000 words, it can be maybe 2, 3 times better than 100 words, but not give me 10 days to rest. And even at 1000 words I have a inclination to continue.
On the other hand, on a poor day, even if I manage to sit and write just 1 phrase, I’m rewarded a bit more than currently.
It follows (and rewards) the aspect that “the hardest step is the first”. And I took writing as an example, but it could be whatever else, steps walked, distance ran, …

I feel that the ability to have this mixed type of aggregation, could give us both the everyday push to build the habit, and the drive to give more on the days where it’s possible.

What do you think?

2 Likes

I set up a “foo” goal and a “foo_days” goal. I enter all my data into foo, and use IFTTT to add datapoints to foo_days. A custom goal on foo_days lets me set the daily aggregation to “nonzero”, so if i enter “10” “10” “10” into foo on one day, it still only counts as “one day” over on foo_days.

The power here is that all the various types of control I have over foo_days, like auto ratcheting, breaks, various rates, I also have over the “days I’ve done this” goal.

2 Likes

Thanks for the input! I’ll look into IFTT; indeed that might be doable via another service that re-injects data into another goal.

You can turn on auto-ratcheting to solve this problem - it lets you specify the maximum number of days you are able to rest!

Auto-ratcheting would work somewhat, but still has the drawback that after a point, you have no incentive to continue : if I pledged 100 words, and configured to auto-ratchet it at 5 days, then after 500 words there no point to continue writing to 1000 or 2000 words.
With a “decreasing accumulation” (or whatever the name is), every effort counts, albeit decreasingly so.

2 Likes

I struggle with a similar issue for all the goals I have in mind. Doing 10 min exercice each day. If I go for a run for 1h, it gives to much safety. I started to try auto-ratchet today, I’ll see if this solves the issue.