Bounding second derivatives; or, protecting yourself from getting too ambitious after early success

Prologue: I hope this clearly conveys what I intended it to. I couldn’t find anything quite like it when I searched (related post is here, but I want to apply a bound on it where he wants to use it as a parameter).

Sometimes when beeminding a new goal, I’ll make really good initial progress, e.g., suppose I have a weight loss goal at a modest -0.1 lbs/day, and the same wellspring of motivation that gets me beeminding in the first place independently causes me to eat less and workout more. When this happens I start out making progress much more rapidly than I’d intended to, say on average -0.3 lbs/day for a week. Now at the end of the week, I’m ahead of my goal by over a pound and (here’s where I go wrong) I invariably think I can sustain something like this pace, so I crank up my goal to -0.25 lbs/day. I get ambitious and more than double my initial pace. It looks like this:

But in the real world, motivation starts to wear thin, maybe the baby is teething and I lose some sleep, skip a workout, eat a little extra, and my true pace starts to level off. Now my plot looks something like this:

By day 12 maybe I wise up and dial it back a bit, but by then it’s too late. With derailure looming, I give up and hit the archive button and resolve to do better next time (maybe after a month’s grace period).

If I had to guess, I’d say this is probably well-trod ground and someone has come up with a good approach to this, probably setting a meta goal, but I’d like to know how the community has dealt with this problem in the past.

1 Like

I think I’ve used two approaches to guard against this:

  1. Be conservative with rate changes. Prefer multiple small rate changes to one large change.
  2. Retroratchet instead of changing the rate at all.

Since I use breaks and weekends off a lot, these days I use strategy 1 almost exclusively.


this! possibly even autoratchet.


I think the community has mostly dealt with this by autoratchet, or having a systematic weekly review or something like that.

I think the Beeminder tool itself could be better at this. What sorts of things could we do automatically?


This is precisely what I want to do, but fail at in the moment. This is why something like this seems perfect to me for beeminding.

I’m pretty new to Beeminder so I’m not sure how I’d achieve this goal with retroratcheting. Tell me if this is what you mean:

By day 3 I’m looking pretty good (maybe 0.7 lbs ahead of my goal), so I retroratchet to, say, 1 day before I derail. This ensures that I had better get down to 228.9 by tomorrow or I derail.

I’ve never seen anything about autoratcheting before just now – is this a beemium feature?

So do I. Does the API expose changes you’ve made to settings of individual goals, and when? I feel like that could feed into a meta goal. Is it possible to create a goal with a constant value (d/dt = 0) and tight boundaries? In the above situation it would be -0.1 +/- 0.05.

1 Like

It is not possible to make a goal with top and bottom boundaries. You can make two goals and mirror datapoints using IFTTT, so you only have to add data to one.

The API doesn’t really expose a timeline like that.

There has been a lot of discussion about a thing called autodial, where you could set an initial rate and a destination rate, and have it do things like “move your rate from initial to destination by X% of the average rate of the past Y days”… i.e. always stay the same rate or get closer to your goal rate, but only increase your rate based on past performance. Do you think something like that would help you out?


Yeah, I think so, depending on how frequently the autodial would fire – what’s the consensus on this, daily, weekly, configurable, something else?