Great point. We started chatting about this in the community Discord and I wanted to make sure we captured some of the thoughts here. I’ll start with my defense of Pessimistic Presumptive Reports (PPRs) in general (with thanks to @theospears and @rperce and @poisson for help in formulating this, though I’m not sure they’ve reached the same conclusions):
Let’s say we’re talking about a do-less sugar goal. Having the graph reflect the truth of your sugar consumption is paramount. We call this the QS First principle – QS as in Quantified Self. So Beeminder has to know how much sugar you ate every day. If you don’t tell Beeminder how much you ate, the graph has to do something. Beeminder has to interpolate the missing data, i.e., predict how much sugar you ate. If it were a do-more veggies goal then “no data ⇒ no veggies” would be a good prediction (and that’s exactly what Beeminder does). For a do-less sugar goal, something more than the daily allotment is a good prediction. Or in any case “no data ⇒ no sugar” is an especially bad prediction.
Unless maybe you have a meta goal, which is @mary’s point! Related side note: user-me is pining for a feature where anything with a PPR sorts to the top of your dashboard.
But basically I’m suggesting that PPRs are the theoretically/platonically Right Thing to do. Except I think for that to be true the user needs more control. Part of making a Beeminder graph as accurate as possible is to ask the user, from outside the akrasia horizon, what is the best way to interpolate missing data. If you have a meta goal to enforce data entry (or an autodata goal of course) then zeros may well be the correct presumptions when no data is entered.
Bee and I also started thinking about how this plays out in the eventual Bright Red Staircase New World Order (I think it’s important to think ahead to that even though it’s still, sadly, not on our upcoming roadmap). Thanks also to @morehavoc for help in thinking this through.
In the continuous world of the bright red staircase, there aren’t discrete daily PPRs, there’s just an analog of flatlining: the location of your presumed datapoint at every moment drifts upward on a collision course with the bright red line. (More on the math of this in @saranli’s x-treme nerd write-up of the math of isolines.)
But Bee realized we have some conflicting principles/desiderata in this still-hypothetical continuous-beeminding world:
- A do-less goal tells you your exact hard cap at every moment
- Colliding with the bright red line is an instant derail
Point 1 means you should be able to safely enter any amount up to the hard cap and be safe. But Point 2 means that if you get close enough to the red line then the PPR-style flatlining will immediately derail you.
I’m kind of stuck on an elegant way to reconcile those! Possible answers:
- A. Stick with the concept of a discrete PPR that’s auto-entered if 24 hours goes by with no data, even when everything else is continuous
- B. Complicate the PPR function, like it always flatlines for 24 hours after getting new data before it starts sloping up
- C. A grace period that makes it like the pre-staircase status quo where you can technically cross the bright red line as long as you’re back on the right side by a deadline
- D. Complicate the concept of the hard cap: make it transparent to the user somehow that the closer you get to the red line the sooner you’ll have to enter data again
- E. Mary’s right and PPRs should just be replaced by meta goals
A through D are all pretty gross which means we either haven’t thought of the right answer yet or E is in fact the right answer. Answer C strikes me as especially gross, which is a great reminder of how gross the status quo is and why Bright Red Staircase is so important! I guess D currently strikes me as most promising but feels very unclear if it could be made simple enough.
Anyway, feel free to ignore the hypothetical/eventual stuff and focus on more immediate questions like, y’know, making it easier to pair a meta goal with a do-less goal!
PS: Oh my, I had totally forgotten about all the brainstorming about ways to kill PPRs that we did in our blog-post-driven development blog post – looks like we even scooped @mary in “fictional feature announcement #3” there!