Musings on retroratcheting

I have a goal setup to reduce my Facebook time. This was so successful (for a while) that I had almost a month of safety buffer built up. Of course, when you have that much buffer it almost makes the goal meaningless, and sure enough I started to waste time on FB again, going so far as to install it on my phone (the hubris)!

So I decided to rap my knuckles via retroratcheting. Now, of course, my parasympathetic nervous system hasn’t caught up to the fact that there is no safety buffer left, and I’m in the red on a ‘do-less’ goal. Does that mean I automatically derail tonight? Is there anything I can do?

I’m also interested in the philosophy behind the retroratchet? Is it primarily a device for keeping the pressure on, or is it meant to test our natural tendency towards overoptimism?


I’ve never had much success with retroratchet. It has lots of sharp edges in the way it is implemented, but beyond bugs there’s also the mental discontinuity you mentioned.

I’ve had more luck with the dashboard I built which displays weekly average rate vs the road dial’s rate. This lets me know if I am on a collision course and need to improve. If I’ve built up a big buffer, I can steepen the road to bleed off the buffer slowly – or maybe I’ll actually start doing more and the buffer won’t go away!


You should treat it that way. There’s actually one loophole but it’s super confusing. [1]

(: If you follow our advice to start very conservatively then many people find themselves with so much safety buffer that there’s no point, so ratcheting is important. As @drtall says, the current implementation has problems – we expect it to be much nicer when we finish the Road Editor. Keep bugging us in the meantime, or have us fix things for you by emailing support.

Link? Probably worth it’s own forum thread too! Even just screenshots to whet our appetite…

[1] I'll explain it in this footnote since you asked! The criterion for derailment is "in the red yesterday and also today". Which sounds weird but it makes it simple to test at midnight: it's now the new day so did I make it back on the road in time or not? For Do More goals that's exactly the right test. For Do Less goals it means that if you exceed the road by less than the daily rate then at midnight when it checks it says "you were in the red at the end of yesterday but now today you're orange, so you're ok". This doesn't totally ruin the point of the Do Less goal. You still have to maintain the average rate you committed to. But if you take this to the akratic extreme it means you can do twice the daily rate every other day (and nothing in between). So if you were right on the top edge yesterday then the next morning you'll start right at the centerline. That means you can do one day's worth to hit the top edge and another day's worth into the red. The next day you'll [flatline]( "Flatlining as a concept doesn't make sense for Do Less goals; we have plans to fix this! In the meantime we have Pessimistic Presumptive Reports to fix it.") back to the very top edge of the road again (where doing anything >0 will put you in the red and derail you since you ended the previous day in the red) and the cycle can repeat.

You probably did not want to know that.


Oh no, this one I don’t think you want. I tried to make the Beebegone thing suitable for public consumption but this one is a total mess of hacks and it’s super ugly too. Basically it prints an html file that I have open in Chrome using an extension to auto-refresh it…

Yeah I had a bunch of conversations with support about my Do Less goals mysteriously not derailing or alternatively mysteriously derailing after I thought I had understood all the rules. I burned out big time right around then :slight_smile:


Seriously, understanding that loophole will literally make Beeminder worse for you. Memetic hazard!

It’s easier said than done to fix it, since some of us are used to the ridiculous loophole, but we definitely intend to do so. Maybe as part of the reminders revamp we can add additional warnings for Do Less goals and then start enforcing what you’d naturally assume we did all along: going into the red on a Do Less goal means unavoidable derailment (unless there’s such a thing as doing a negative amount, which sometimes there is, say, for net calories).

Any derailment that can at all be described as mysterious warrants an immediate “wtf” reply to the legit check and we will definitely cancel the charge (and be very grateful for your help in debugging; even if it turns out to technically be PEBCAK it’s really important that derailments always be super predictable so you’re helping us a ton by expressing any genuine surprise you experience).


Oh I definitely reported them all and never got charged any money for anything that was bogus. But it was really draining. It made Beeminder worse in exactly the way that you described.


Is the part that computes the historical weekly rate a reasonably self-contained bit of code? Maybe that would be easy for us to add to the stats in the sidebar.

Either way, super cool that you did this!

Retroratcheting to 0 after a derail & unfreeze STILL gets me after all this
time. That’s part pebcak and part “wtf”. Cause I’ve known about it for ages
and so I should remember, but think there should probably be a safeguard
against it.

1 Like

Don’t say I didn’t warn you!

After that loop is done, GoalMetadata has an entry for each goal with any data in the last TWO_WEEKS_AGO. Note that today_count, week_count, and prior_week_count reference the constants, so with NUM_WEEKS = 2 they’re actually today, last 2 weeks, and weeks 3-4 ago.

These are counters, so to get the average weekly rate divide by NUM_WEEKS. Or you could divide by 7 * NUM_WEEKS to get daily, or to be really fancy look up the runits.

This doesn’t make a ton of sense for odometer goals. I just filter those out and don’t display anything for them.


Retroratcheting is very much a dangerous feature, but it is still super awesome. I have used beeminder to do goals like take a cold shower every day for 30 days and I couldn’t have succeeded without the threat of having to pay up, just to be able to face the same situation tomorrow.

That said it seems in generally to the an issue with do less goals - the road, time to derail, being on the road, under the road etc seemed excessively confusing to me, whereas they all make sense for a do more goal/odometer goal.


I really feel like the default retroratcheting behavior should be to give you one day’s worth of green. You’re healthily in the green already, so you must have been doing something right; retroratcheting to give yourself less buffer so that you stay accountable shouldn’t make you feel like you’re being punished, or it becomes a big disincentive. It should go from a ton of green to a small margin of green, not from a ton of green to accusatory orange, IMHO.


Small correction (and let me know if you’ve seen counterexamples): standard retroratchet shifts the centerline of the road to be right under your current datapoint. Technically that means you’re right at the boundary of blue and orange but Beeminder should always show that as blue.

Great point that retroratchet should maybe default to getting rid of all your excess green but still leave you (barely) green. For now you’ll need Bee Lite for that.


Yes - I just noticed that it’s a premium feature the other day. Don’t be afraid to plug those premium features in cases of drive-by whinging (like mine)!

1 Like

I htought I had said the same thing before, but can’t find my comment. If I’m on the good side of the road and retroratchet, I should be at the edge, not the middle. I earned that bit of buffer and there is no easy way to dump the excess above the YBR.

If Retroratchet is to have a single opiton, this makes more sense than putting me on the centerline.


Hi @martyh — Danny’s answer from a while back still stands. As always, agitating for this and clicking the heart on @martyh’s post are good ways to help us gauge the priority. Plus it might be a straightforward uvi.

1 Like