Beeminder Forum

Incentivizing quality or quantity

I’ve been thinking about quality and quantity in goals where you enter a datapoint when doing a “session” of the thing - sometimes, doing a thing more often is more beneficial than doing it “better” (by whatever metric) (e.g., brushing teeth); sometimes it doesn’t matter, and sometimes quality/a higher datapoint value is more important (e.g. exercising, maybe? not really sure).

I have a brushing teeth goal where I am trying a system to enter “points” instead of a simple +1 each time based on if I flossed/how long I brushed. I like that it has a property where doing a bare minimum of 30 seconds gives me a +1, but 2 minutes or more only gives me a +3, so brushing more times is more valuable (which I feel like mirrors the actual benefit from brushing). The issue is that it’s only this way because the minimum is 30 seconds, otherwise it’s a linear +1/min.

What I’ve realized is that you can map the actual datapoint value to a logarithmic or exponential function to reward more frequent datapoints or higher datapoint values. For example, for my brushing teeth goal, I can use a function like {x < 4.5: y = round(10 · log(x) + 4), x >= 4.5: y = 10} , where y is the points added. This gives a sequence of {1, 4, 6, 7, 8, 9, 9, 10, 10, …} for each 30 second increase in time. I feel like this still rewards quality over quantity too much, so I’m going to continue tinkering with the function to try to something less steep.

That solution also might not be ideal because those units are completely made up, so perhaps you could frame it as more of a bonus or reduction from your actual datapoint. You could also easily automate that to enter the correct value in the datapoint and maybe show the base value and the modifier in the comment.

Anyway, I’m not too sure how well this kind of thing works, but I thought it might be useful to share for certain goals where the effectiveness of a “session” increases or decreases the more you do it.

4 Likes

Various random thoughts:

  • One unfortunate property of a goal with this kind of complicated definition is making a less interesting graph. When you look at the graph, you don’t know what the number means! Whereas at least “times brushed teeth” or “minutes brushing teeth” has a clear meaning. You alluded to this at the end I suppose.

  • A related problem to yours that I have is with binary goals like “don’t eat after 8 pm”, that once you fail there is no incentive to not fail even harder! So maybe that kind of goal should receive a similar system.

  • I’ve also thought about systems like this in the context of “working X amount” goals - it seems like focusing on work for 1 hour is more than twice as good as having two 30-minute work sessions.

  • A simpler system would be to just have two options: say, 1 point for brushing 30 seconds, 2 points for brushing 2+ minutes. This has a bit less friction on the data entry and also rewards quality less.

  • In the specific case of teeth brushing, I would just say it doesn’t count unless it’s at least 2 minutes. Come on. :stuck_out_tongue:

Anyway I feel like more could be said but I’ll post this now so I don’t put it off forever. :slight_smile:

2 Likes

For this kind of goal, I’d be inclined to make it numerical rather than binary. So what you record is something like “number of hours before midnight when last meal eaten”, with the aim to always score 4 or more each day. That way if you eat at 8:30 you still get 3.5 and if you fail really hard you’ll get a miserable 1 or 0 or perhaps even a negative number for those late-night deadline-inspired snacks!

2 Likes