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.