Detecting auto-retroratchet in the API?

What I am trying to do is creating something like I had on HabitRPG where there’s several Dailies with minimums set really low (per want-can-will) with a single Habit for exceeding the minimum on any/all of the Dailies.

Beeminder’s default behavior is that over-achieving on a goal lets you slack off on that goal tomorrow. I am hoping to build some “daily” goals which are eep days every day combined with a “over-achieve” goal which gets +1 whenever one of the dailies needs retroratcheting to make it an eep day.

The more I look at this, the more I think I may need to implement it entirely myself using the API. Here are the problems I see:

  1. The auto-retroratchet feature looks like it doesn’t honor the “max safe days” setting if you enter 0 or 1.
  2. Having to cache on my side to infer when auto-retroratcheting happened is gross. If I do it myself my scripts can stay stateless.
  3. I actually need most of these dailies need to be weekdays only which I think is difficult/impossible with auto-retroratchet because it will gobble up flat road sections on weekends.
  4. Auto-retroratchet takes place once per day, meaning that my over-achiever goal would always have a day of skew between when I enter the data on a daily goal and it gets retroratcheted. If I script it myself I can do it hourly which would be better. (I’m not suggesting that instant auto-retroratchet would be better, though, because data entry errors do happen.)

If I actually end up writing any of this myself it would be in python, but I’d be interested in looking at your road parser @insti no matter what language it’s in…er,well, not if it’s in Haskell. :slight_smile:

2 Likes