« Beeminder home

Beeminder Blog

Yellow Brick Road (literally)

The road dial was one of the first Beeminder features, announced almost 5 years ago when we were still in private beta. It lets you adjust the steepness of your yellow brick road — how much you’ve committed to doing — with a one-week delay. For most people most of the time, that’s all you need. You do it by specifying any two out of three of:

  1. the goal date
  2. the goal value or cumulative total
  3. the rate — how much you’re changing your number or adding to your total per day or per week.

Beeminder infers the one you don’t specify. Like if you want to weigh 150 pounds by Christmas, just say so and Beeminder will compute how many pounds per week that means you need to lose. (Hello first world problems.) Or if you figure you can lose half a pound a week and want to weigh 200 pounds, Beeminder will tell you when that will happen (if you stick to that rate). Or maybe you want to lose a pound per week and want Beeminder to tell you what you’ll weigh on your birthday at that rate. [1]

It’s math. You get the idea. For many goal types the value you’re working towards might be something like “cumulative total number of pushups”, which may not be very interesting so you’d only ever worry about the goal date and the rate (number of pushups per day). And commonly the goal is open-ended and you leave the date 10 years out and worry only about the rate. Maybe you gradually dial it up as you get stronger, or flatten it for vacations.

All of that is possible with the good old road dial, but not always convenient. To schedule a vacation with the road dial you have to flatten your yellow brick road exactly a week before you leave, and then unflatten it exactly a week before you return.

And what if you’ve been outperforming your yellow brick road and have accumulated too much safety buffer? If all you have is the road dial then you need to dial up the steepness to something more than you can actually do, wait for the road to catch up to you, and then dial it back down again before it shoots past you and you derail.

That was asking a lot, so a couple years later (out of private beta by that point) we added two fancy feature to address those scenarios. Scheduled breaks means you can actually specify a date range in the future and the rate you want during those dates. If you’re going hiking you can schedule flat spots on your productivity goals and steep spots on your exercise goals. Retroratcheting is an easier way to get rid of excess safety buffer. It just makes the yellow brick road jump up (or down) closer to your datapoint so, as of today, you’re closer to derailing than you were. Gotta keep those bees nipping at your heels.

“It’s not allowed to intersect with the subtly pink-shaded region on the graph”

So those are handy features, but the amount of caveats and confusion (and, sadly, bugs) with them has been, well, unfortunate. Just two examples: dialing your road after scheduling breaks only adjusts the road after the last break, and retroratcheting shifts the dates of any scheduled breaks (hard to avoid without causing worse problems, for some goals). It’s a mess. And the only real solution is to put the full yellow brick road under the user’s control. Except, of course, that you can’t make your goal easier between now and a week from now.

Now Available in Plan Bee!

So enough chit-chat, here’s how the new feature works! You get an interface like the following, which gives the starting date and initial value of the yellow brick road, along with three fields for every segment of the road. Each of those rows is just like the road dial — it specifies the end date, end value, and rate for just that segment of the road.

image of road editor interface

For example, [2016-06-05, ___, 3] means “go at a rate of 3 through the 5th”. The final road row is for the same segment that the road dial adjusts — the one that ends on the actual goal date. You can remove and add rows wherever you like — that’s what the little minus and plus buttons do. We call it rudimentary because it doesn’t give you any guidance when you’re fussing with it. It doesn’t even fill in the missing inferrable field like the road dial does. But it does enforce the akrasia horizon constraint. Visually, that means that whatever you change the road to, it’s not allowed to intersect with the subtly pink-shaded region on the graph. In other words, you’re not allowed to make the road any easier between now and a week from now. Any other adjustments are allowed, including retroactive ones.

There are so many different ways to use this. Sometimes I have goals where I had no idea what a reasonable rate was and I end up with datapoints way above the road with ugly jumps from ratcheting. It can be really interesting (and more aesthetically pleasing) to retroactively fit the road to the data to see what rate I should’ve targeted and to help decide what’s realistic for the future. (When the road was actually meaningful along the way it may feel really wrong to retroactively adjust it. We encourage that feeling! We’re also working on something to make that less bad. Stay tuned!)

Another example of using the road editor might be if you have a weight loss goal and you want to try to lose weight aggressively until your sister’s wedding in 3 weeks, but after that you know you want to slow down, but keep losing weight. You could schedule a segment that goes [Wedding-Date, Target, ___], but then let your road continue after that. That’s much better than setting the wedding date as your goal date, which sets you up to yo-yo as soon as Beeminder isn’t minding you.

Sold? If you’re on the Plan Bee premium plan then you’ll see the road editor appear at the bottom of your Terrifyingly Advanced Goal Settings. It’s quite beta but it gets the job done and it’s a big deal for some of us power users. We’re eager to hear what you think and get ideas for improving it!



[1] Better yet, don’t beemind your weight since it’s not quite under your direct control. It’s more of an outcome than an action. Instead, beemind things like servings of vegetables, calories, steps, workouts, distance run, weight lifted, or time spent outside. More on picking a metric or if you really want to beemind weight, we have a lot of past blog posts about that.