Bug: Deadline changes apply retroactively for some autodata goals

TL;DR: Beeminder syncs data from the previous week for some autodata goals, including Toggl. Since it always syncs using the current deadline, deadline changes can cause retroactive derailments.

(After some emails with support (thanks Oliver!) this seems to be a known issue, but I didn’t see any discussion on the forum.)

What happened

Yesterday I tried changing the deadline on my “billable-hours” Toggl goal from midnight to 5pm (hoping it might be life-changing). Soon after, I got an email saying I derailed — which was very confusing, as I’d met all my deadlines up to that point, and the new 5pm deadline hadn’t arrived yet!

After some digging, I realized that Beeminder had re-computed the data from the past week using 5pm-to-5pm totals rather than midnight-to-midnight. This is a bug — I can’t think of a reason deadline changes should ever apply retroactively — but it seems tricky (impossible?) to fix using the current goal data. (Since there’s just one “deadline” slot, there’s no way to tell that old data was previously OK.)

After realizing this, I set the deadline back to midnight to fix the past week’s datapoints.

What does it take to change an autodata goal deadline?

My understanding is that in order to accomplish this deadline change, I’ll need to manually make sure I’m hitting the new deadline for the next week, and only then update it in Beeminder. I’m sad that a life-changing feature is locked behind such shenanigans! In particular:

  • There’s no feedback to keep me on the new 5pm deadline for the next week, so it’ll be easy to miss.

  • If I mess up, I’ll have to start the clock over again. (I could imagine forgetting the desired 5pm deadline one day a week for a few weeks in a row, which would prevent me from changing my goal deadline for a while. If I were good at doing this on my own, I wouldn’t be using Beeminder!)

  • After a week, there’s no easy way to check (aside from my memory, or manually tallying up all my toggl entries) that I did everything correctly before changing the deadline (and then waiting to see if I derail).

  • (I could also build up a safety buffer and stop edge-skating … but let’s be realistic.)

(Now that I’m writing this, I wonder if changing the deadline back to midnight was a mistake?)

Ideas / suggestions:

  • Add a warning / notice of some kind for changing deadlines on these autodata goals. (IMO this is necessary if the issue is too hard to fix.)
  • Add some extra data to the goal to address this issue (store old deadlines, or a flag to prevent syncing old data for a week after deadline changes? But storing more goal data just to fix a rare issue is obviously undesirable.)