Zero-notice days off

I have Do More goals measured in minutes for work projects to help ensure that each one gets a minimum amount of attention on average.

However, the 7-day akrasia horizon is in conflict with the way vacation and sick days work. Whereas my boss is fine if I take time off with very little notice, Beeminder goals require me to plan 7 days ahead. I realized this mismatch when I took a day off last week and had to e-mail support to reset my goal for that day because there was no way to do it in the app.

I was curious if anyone had creative solutions for this. A few that have come up already:

  • Clive suggested changing the units to a measure that’s relative to expectation: 1 if I worked exactly the number of minutes expected for that day, 0 if I didn’t work at all, 1.5 if I worked 1.5x, etc. Logging minutes is convenient because of the straightforward conversion from my time-tracking software, but I could live with this.
  • Do the same, but keep the units minutes. Nathan did not like this idea, calling it a “slippery slope” of “fake data”!
  • E-mail support every time. I have to e-mail my boss anyway, so this actually isn’t so bad.

Any other ideas? :slight_smile:

1 Like

If you can manage to keep a one-day safety buffer all the time, you can take a day off at no notice without derailing, and immediately set a one-day break a week in the future to help you build up the safety buffer again (i.e., you would do a normal amount of work on the day that has the break in the goal).

The “if” part might be a blocker for this - it often would be for me. :slight_smile:


@alys’ solution is the one I use! And probably my preference over emailing support every time this is necessary – it’s better to avoid solutions that build support into your goal as a necessary part of it, because we’re meant to be more of an emergency safety net than one of the supports in the wall, if that mixed metaphor makes sense. :slight_smile:


Doesn’t that way of using Beeminder seem at least as degenerate as incorporating support e-mails into your workflow? Mentally repeating, “The real bright red line is this imaginary one that’s slightly to the left…”

Not that it wouldn’t work! It just seems to go against the grain of all the tooling (goal sort, graph lines, alerts, …) and so require more willpower than I’m hoping for.


I should say, my first instinct was to ask for zero-notice days off as a software feature because I didn’t want to overload support. :blue_heart: Logging vacation days at work is done through HR software, just saying! :joy:

1 Like

I wish beeminder had a second staircase for each goal, that would allow me to easily maintain a buffer. For me, the solution is using another system to manage the buffer. I’m using a separate habit tracking system that is one or more days ahead of beeminder. So when it looks like a failure day in my second habit tracking system, I might still have two three or even more days left over in my beeminder.

Currently, this requires double logging, but it is well worth it to me to have a little breathing room, and each beeminder goal can have its own individual buffer level. I think that it is natural and good for humans to ebb and flow a little bit like this. It might not be for everyone, but some people are just like that.

So I’m primarily looking at, trying to keep up with the secondary system, which is kind of acting like my primary system… Those are the goals that I need to get done today. And if I miss a goal there, it’s not great, I don’t like it, but I’m not going to derail in beeminder. But then I’m going to have to do something to make up for it in the future so I can re-establish my buffer.

Note that there may be some other considerations in doing this. How one words their goals, how easy or difficult it is to make up for a missed goal. There’s a sweet spot between being too hard or too easy. I think that sweet spot tends to be more towards the the easy than one would normally think, because what ultimately happens is life happens to you unexpectedly, and then all the sudden you’re scrambling to get your goals done but you’re not going to be able to do that, and that’s very stressful. And for me the always living on the edge of the red line is too stressful in the longer run.

I am living on the edge in a way, but I’m living on the edge in this secondary habit tracking system. I want to be successful in the secondary habit tracking system. I know that the threat of beeminder is always there lurking behind that, and I want to stay in front of it to give myself a few days leeway.

It’s like how you would treat a ledge if you are on top of a building. You give it a little bit of distance.

So yeah, if the end of the day rolls around and I haven’t finished one of my goals, I can let it slide one day and I won’t derail. But I can also see that I need to make up for that day.


There’s an IFTTT recipe, I think, to copy data from one Beeminder goal to another. I wonder if you could somehow use Beeminder as both your primary and secondary systems?

So primary goal P has a tiny or zero buffer, and (if you’re on a high enough tier) even $0 pledge. If you log a datapoint there, the magic of IFTTT wires that point through to secondary goal S, with 3 days buffer and a large pledge (same slope as P).

If you miss a day, goal P derails (small/zero cost), but goal S (with the real penalty) just looses a day of buffer. Do this often enough and S will eventually derail, giving you the large kick in the pants you need. Meantime, you get a mild prod for a derail on P, and that generally keeps you back from the line. And if the slope for S is less than your expected rate, you’ll gradually reclaim buffer in S (which you could ratchet if it gets too big, or autoratchet if you have that feature at your tier).

Would something like this work, @coolhandlouis ? Not that I’ve tried to set it up or anything, but it sounds like it might?

1 Like

Wasn’t Beeminder Inc. going to make dependency goals a core feature? In any case, yes what you’re describing is basically the same thing as what I’m doing. But that would cost a lot of money to be on the Beeminder highest tier.

Ultimately, my process can be done on a printed sheet of my goals. Just put a number next to each goal, how much buffer lead time you want, and what the current buffer is. Then work your way up to the desired level. After that just complete each task every day. Use graph paper and you can check off each day or x if you failed to complete it, and then you know you have to do it twice the next day to catch up. Something like that, that’s just an overview. It gets a bit more complicated for goals that are not everyday.

In fact, for daily goals, it’s just a matter of using the app, and having a standard lead time of, for example, 3 days. Down to two days on a goal? Uh oh. Need to work some extra to get that up to a 3-day buffer. Up to 4 days or more on a goal? Either ratchet it or take a day off on that goal! The one problem with the mobile app is that they don’t give you the capability of sorting alphanumerically, which could help if you use the standard naming convention for daily goals. Of course, you can sort by goal slug in the website interface.

I’m very happy with my primary to do system and habit tracking app (emacs/org-mode), which is free. It allows me to add in other non beeminder habits as well. It has some integration with Beeminder, but not in the way that I’m using it right now. I’ll need to dig into that integration to see if I can automate my process.

Ah, interesting! I’m just (re-)discovering emacs org-mode as a to-do list for some project stuff, and was wondering about Beeminder integration. I’ll have to do some digging - have found this useful stuff so far - and will be fascinated to see what’s out there!

1 Like

Might be of interest: Beeminder + Emacs / Org Mode Integration

Hm, no, I don’t think of it as having an extra imaginary line, but I admit that I’m probably quite different to a lot of users in that I don’t use reminders a lot. I touch every goal I have every day, where “touch” can mean “look at and dismiss as not necessary”. Considering it degenerate seems a bit harsh – I’m not sure I understand why you’re using that word!

For instance, I’ve had 13 legit derailments so far in 2022 (if I’m counting right), so it’s not like it’s a system that circumvents Beeminder’s sting, or something like that.

I’m sorry! I thought for a while for a less rankling word and came up short. I should’ve at least made it clearer that I didn’t mean to call your technique degenerate wrt to your goals, just wrt mine:

If I maintain a buffer to make vacation days work and they have to work, but Beeminder lets me use that buffer for excused vacation time or being lazy, then I must pretend there’s an early stinger or it falls apart. So to me, using a buffer for this is… “lacking some property, order, or distinctness of structure previously or usually present.” :sweat_smile: That’s all I meant to say.

I do love the ideal of maintaining buffer as a matter of safety and flexibility, and I work as you do whenever I can. :+1:

It seems to me that the reverse is true. What you actually truly want is an extra day of safety buffer. You just want to pretend to yourself that you don’t have that buffer in order to avoid wasting it on trivial slacking-off. But you still want it!

(You say you want to be able to take time off at very little notice. To be able to take a day off with no notice is the very definition of having a day of buffer, is it not?)

I don’t want to be too dismissive here: I get why you want to have your cake and eat it too, why you want to have a secret extra safety buffer that doesn’t show up on the graph: you don’t want to blow this buffer on just plain-old trivial “being lazy”—you have specific things you want to spend it on. Specifically, it seems that you only want to spend it on things that are sufficiently important to also justify a day off of work.

That is perfectly reasonable! I’m mostly just arguing against the framing of keeping a safety buffer on the graph as degenerate: the opposite is degenerate! If you really truly have the extra day’s safety buffer (in that you are allowed to take a day off at no notice), then you should have that on your graph! Otherwise you’re trying to fool yourself into not remembering that “the real bright red line is this imaginary one that’s slightly to the right…” and so forth.

It’s because the real buffer is in an HR database and is independent of whether I’ve worked ahead in Beeminder’s eyes. To Beeminder, vacation days should just not exist, the same as weekends when you check the box for it.

1 Like

If y’all could see my work goals, sometimes you’d see a healthy buffer, and sometimes you’d see me skating. I get it. Neither behavior overrides my company’s vacation policy nor California labor laws. :joy: When I’m off, I’m off, and I’m looking for ways to use Beeminder that recognize that. I like the ratio system best so far. I really do appreciate all your help despite my inability to communicate this well.

Haven’t read this thread thoroughly, and this is from user-me, not support-me, but…

It seems to me that your goals are tracking something different from your vacation days. Your vacation days are literally tracking how many days you can take off from work. Your goals are ensuring that you put an average amount of time into specific projects. So it’s not obvious to me that getting a day off from work should give you a day off from your goals. If you don’t manage to schedule a break 7 days in advance, then Beeminder is doing what you asked it to do–require that you put a minimum amount of effort into your projects on average.


:100:. In the end, if Beeminder can’t let me make the commitment I’m trying to make, I just can’t use it for that, and that’s okay!

Right, so the hypothetical perfect way for Beeminder to reflect the reality would be for some sort of automatic integration between the HR system and Beeminder to add a one-day flat spot in the graph every time you accumulate an additional vacation day.

As things stand, you don’t see on your Beeminder graph the extra buffer you actually have, because indeed, as you say, it’s stored only in the HR database. Perhaps it’s unlikely for there to be an automatic integration that syncs the data, but one option (the one which would lead to the most accurate Beeminder graphs) would be to sync it by hand: every time the number of vacation days in the HR database increases, you give yourself an equally-sized flat spot. To be able to do that, you’d need to know a week in advance from when you earn the vacation days (not when you spend them!) But on the assumption that you accumulate these vacation days on a regular schedule, that should be possible.

That said, perhaps that’s too much hassle to do manually. (Perhaps you could write a script that uses the API to schedule these breaks?)

Ultimately, I fully agree with you when you say that it’s fully independent of whether you’ve worked ahead in Beeminder’s eyes—that’s why I’m proposing that you change that! So long as you let Beeminder know about those vacation days you’ve earned, Beeminder can display them as part of the buffer that you (really, truly) have. You have that buffer regardless of whether or not Beeminder knows of it, so I’m proposing that the way to make your Beeminder graph be accurate is to let Beeminder know of it!

FYI, that’s not quite how the “weekends off” checkbox works—it’s not that weekend days vanish when you check that checkbox, but rather all the checkbox does is add each week a flat spot over the next weekend. This gives you the safety buffer to not do anything over that weekend, but those weekend days do still exist.


What an interesting reversal! I like the direction, but I’m not sure I understand how it could work.

If I have 5 vacation days saved up, I’d start by manually adding a 5-day buffer to the goal, right? Then if I take a day off, Beeminder stays in sync. But how does reconciliation work in the opposite direction? If I accidentally use up 1 day of that buffer without taking vacation, is the idea that I must work through a day of vacation to reconcile?

My reframing admittedly doesn’t actually solve your problem in and of itself. You still need some way to align your not-working days with your vacation days, i.e. to avoid being lazy on days you don’t count as “vacation” in the HR system.

There are ways to reconcile it. One way would be to say that any day on which you don’t work is ipso facto vacation, even if you didn’t declare it as such up front, and thus you should retroactively tell your boss to count it as vacation in the HR system. (But I admit that’s a bit… extreme.) Or, as you suggest, you could instead keep a mental tally of buffer used without officially being vacation, and then work on official-vacation days to reconcile, but that’s a lot of mental bookkeeping work, and probably not worth it for that reason alone.

I don’t actually recommend you do either of the above. But it does highlight your true goal: to align your not-working days with official-vacation days. That is, to not have days on which you don’t work yet aren’t marked as vacation in the HR system. You don’t mind taking a day off, so long as it’s marked appropriately.

That is to say—you’re not actually trying to track the amount you work per se, but rather the extent to which your work aligns with your “official” schedule. What this in turn suggests to me is pretty much what you mentioned in your first post that @clivemeister suggested: that you log not the amount of work, but the amount relative to expectation. Or a simplified version of that: a goal in which you enter 1 as the datapoint if you did at least the full amount of work expected that day (which is automatically true on vacation days), and 0 otherwise.

That said, I get that you also want to track the number of minutes you work. As you point out that @narthur pointed out, to try doing that in the same goal is something of a slippery slope.

In that case, one possible solution would be to try doing both in separate goals! Have one goal with minutes, and one goal with worked-relative-to-expectation. You’d intentionally maintain a decent buffer on the minutes goal, and edgeskate on the relative-to-expecation goal. This would force you not to slack off on non-vacation days (because otherwise you’d derail on the relative-to-expectation goal), but also allow you to take vacation on short notice (because that wouldn’t derail the relative-to-expectation goal, only eat into your buffer on the minutes goal.) You’d add a day’s worth of buffer to the minutes goal every time you accumulate a vacation day in the HR system, but you’d never need to work through a vacation day to make up for a non-vacation day you slacked off on, because your relative-to-expectation goal is already preventing you from slacking off on non-vacation days.

That’s a bit more complicated than is ideal, but I think something more or less like that could work.