Control second derivative of do more goal?

This week I’m going to start swimming some mornings. I plan to set up two beeminder goals to track it. The first will just count how many mornings a week I go (2/week to start out). That one is easy, and I can even set it up as an autodata goal using Tasker. The other goal will be to track how many laps I do per week. This could be a simple do more goal, except the slightly nontrivial part is that I would like to increase the number of laps I do each week. That is, I would like to control the second-order rate of change of my goal — not just the number of laps per week but the rate of change of the number of laps per week. So my yellow brick road should be a parabola.

Of course, I could just dial in a different rate for each week. The problem is that I would either have to (1) remember to do that each week (and be possessed of enough anti-akrasia to not chicken out and actually do it each week), or else (2) tediously set a bunch of different slopes in advance using the “take a break” feature. (2) is too horrible to contemplate especially if I decide that my rate of change is not the right rate (as seems likely). I’d like to just be able to set the second-order rate of change just by changing a single number, like I can change the first-order road slope.

So, is this possible? Perhaps using a custom goal? If it turns out not to be possible I suppose I could also try writing a script that will change the road slope for me, like (1) but automated. That would be better than (1) and (2) above though still not ideal.

Arbitrary differential equations for the generalized road dial, anyone? :wink:


There is a way of doing exponential roads, but I don’t know how to enable it.

Oh, hey, we wrote a whole blog post just for you! Clearing Up Confusion About Exponential Roads. Let me excerpt the important part that actually answers your question: no.

Our contention (so far) is that having to dial in a new rate each week is not that onerous. Wait, we said it better in the post:

What we recommend is that you just manually nudge the rate every week with the road dial. We think you’ll find that’s not as onerous as it sounds and that you’ll want to reassess the steepness of your road weekly anyway. Again, you don’t actually want exponential goals unless the rate depends on the current value being plotted on the y-axis. Which doesn’t make sense when the cumulative total is what’s being plotted.

OK, thanks. Though I should note the part I am most worried about is not so much that it is onerous, but that it leaves much more room for being lazy/akratic. If I am feeling tired or lazy or like this week was kinda hard, etc., I might chicken out and not increase the steepness, because I know it will make next week harder, even though I totally could and should do it. If I could control the second derivative then I could set up my road in a single moment of lucidity, rather than requiring that same lucidity every single week.

Anyway, perhaps I will try setting up a little script to do it for me via the API, which should be almost as good. I’ll report back if I do manage to get that working.


Check out @mary’s autodial script:

Very eager to see other hackery people come up with too!

1 Like

What Danny’s referring to is some of my goals like this for which I have an API script set up that forces me to do at least as well as the last X days. (I have it set to 28 for most goals most of the time, and change it to something shorter during transitional periods in my schedule.)

In the past, this has naturally made the road steeper and steeper, but nice and slowly. (I use the time off and safe days features to tweak that further too.) This auto-dialing + safe days works perfectly to keep me doing something every X days and doing at least as much on those days as I have been able to do in the recent past, and only requires one graph to enforce both the frequency and the gradually increasing rate. The future rate is adjusted every morning in my routine, but you could set it up however you’d like, obv.