Uncle button: workarounds and philosophizing

The idea of an Uncle button is to be able to say, when about to derail, “just charge me now and get this over with”.

We’ve been talking about this for literally years. I’m a little embarrassed that we still don’t have this feature! There are subtleties to it that I’d like to discuss in this thread.

I also want to collect ideas for workarounds in the meantime, like this very imperfect one, courtesy of @rperce:

uncle-button-workaround test: I noticed calendial is red, which means I forgot to calendial last Sunday (confirmed by checking my thread), so I’m gonna let it derail. I could just wait 61 minutes, but instead I’m trying:

  1. enter data of Yesterday, -1000, “calling uncle”
  2. ensure i got the “paying $5” email
  3. update data point back to Today, 0.
  4. see that the break-graph-segment automatically inserted by the derailment means my losedate string is now “-566 ending in 8 years”.
  5. use graph.beeminder.com to edit it back into shape

And a philosophical question (HT @theospears):

Is it important that pressing the Uncle button charge you immediately, apply your chosen amount of post-derail respite, and redraw your bright red line accordingly? Or would this perhaps more expedient implementation (we could call this a Silence button) suffice or even be preferable:

  1. pressing the uncle button simply sets an uncle flag to true
  2. zenos don’t zeno if uncle=true
  3. urgency-sort uses your post-derail respite as if it were the goal’s deadline
  4. derailing clears the uncle flag

I’m pretty grossed out by all those if-statements and am inclined to the “charge me and redraw the red line” version.


My intent was less to suggest the if-statement based implementation, and more to imply the shape of the bright red line tomorrow and going forward should look exactly as if you had derailed at the end of the day through not adding data.


As a preliminary step for hashing this out, it’s often helpful to first understand how it works (hypothetically for now) in staircase world:

First, post-derail respite is slightly different in staircase world. In today’s pre-staircase world, we say “zero respite” but we really mean 24 hours of respite. If you derail today, your next beemergency will be tomorrow. Your red line ends up shifted a day to the right – equivalent to an extra day of flat spot.

(Literally zero respite isn’t a coherent concept. It’d be like a derailment singularity. Post-derail respite is the user’s answer to the question, “if you persist in doing nothing, how frequently should we charge you?” It’s a strictly positive amount of time.)

So in staircase world, clicking the uncle button simply means – besides getting charged and marking the derailment on the graph – that we insert your post-derail respite as a flat spot on the bright red line starting Right Now.

Think of it as buying respite. If your stakes are $S and your post-derail respite is D days, you’re paying $S to have D days of safety buffer inserted immediately in your bright red line.

I think that in pre-staircase world, the same is true except (a) the red line discontinuously drops to your current datapoint) and (b) factoring in that drop it’s effectively D+1 days of buffer added.

I agree with @theospears that what happens to the bright red line when you cry Uncle should be the same thing that would’ve happened to it if you’d ignored the goal and let it derail.

1 Like