I also am “suffering” from this problem. I’ve recently converted a lot of my goals to early deadlines for a waterfall effect and it’s working well for me, except that when I get a goal to orange by the deadline, as soon as the deadline passes, it turns red again.
I know that’s exactly how it’s meant to work, because an early deadline means that the next day starts early for that goal, as described by @shanaqui at Allowing deadlines for integrations - #5 by shanaqui
So this is definitely a feature request not a bug, and I realise that it may not be possible to change this behaviour - as @dreev suggests - but I wanted to record my feelings about it.
As an example of how the current behaviour is “bad” for me:
For my exercise goal, I set the deadline to 5pm because if I do weight-bearing exercises after that, I’m too tired to perform them well. If I get my goal to orange by 5pm, that’s a success and I don’t need to do any more exercises for the rest of the real-world day. But then when I see that the goal is red again after 5pm, it’s a bit of a disappointment, and gives me less of a successful feeling when I look at my goal list, plus it makes it a bit harder to recognise the goals that really are red for today.
(I’ve worked around this on my laptop with a bash script that prints my goals with their “proper” colours, so this is a pretty minor issue for me.)
If I did do any exercises after 5pm today (e.g., if I felt awake enough and wanted to build up safety buffer), I’d want them to be recorded in the goal with today’s date - not with tomorrow’s date which is what happens at the moment. Again, I realise that tomorrow’s date is the correct behaviour, it’s just not what I want. (But of course it’s easy to edit the dates.)
It’s sort of like I want two different types of deadlines for each goal. I want the “day deadline” (the type of deadline that Beeminder has now) to remain at midnight, so that any data submitted at any time today goes in with today’s date, and so that the colour doesn’t change until midnight. But I also want a second type of deadline that forces me to get a goal to orange by an earlier time - a “safety deadline” I guess you could call it.
I.e., if the goal isn’t orange by the safety deadline, I’d want it to derail immediately. It’d be like an automatic “Uncle!” button that triggers itself at the safety deadline.
So I guess my feature request is: Can we have an automatic uncle button, with a trigger time that can be set differently for each goal, and that is completely separate from the deadline?
This might also be solvable with Continuous Beeminding, if that becomes a thing.