Again interval larger than all other intervals including the max interval

This is a bug related to FSRS so I thought this is the right place to post it.

I only noticed it in the special preset I’m using for this card and another one. I use empty learning and relearning steps and a max interval of 1. Here is the card info:

Also, the FSRS parameters:

FSRS doesn’t have a model for near-term memory – so blanking out your steps isn’t recommended for most users – Reddit - The heart of the internet . It appears that, true to form, FSRS is not doing a good job setting your relearning step.

Doesn’t that seem like part of the (or the entire) problem? :sweat_smile:

Hard, Good, and Easy are next intervals, which you have capped / hobbled at 1d. Again is a relearning step, but you’re letting FSRS set that instead of setting it yourself. I can’t imagine a use case where re/learning steps would need to be tested against the max interval (and an absurdly low max interval, to boot), so I’m not surprised that isn’t happening.

  • If what you want is for all the buttons to be 1d – set your relearning step to 1d.
  • If what you want is for Again to be shorter than the other buttons – set a shorter relearning step (or stop hobbling the algorithm).

The preset is only used by two cards which are special in that I “review” them every day.

I don’t have any issue with this bug in particular, all I wanted was to bring it to the devs’ attention. A simple again_interval = min(again_interval, max_interval) would be enough to fix it.

If you think that’s a good idea, and it’s that simple, you’re welcome to propose it in a PR. I doubt it’s that easy.

There are a lot of things to consider in making a change like this. [I offer some rhetorical questions by way of example – Are step delays ever subjected to the max interval in the current code? Will limiting step length in this way be a breaking change for folks who are already using such a low max interval and don’t want their steps to be shorter than it? Should this comparison be happening in the v3 scheduler code that applies to both algorithms, or only in the FSRS code when FSRS takes over for blank steps?]

Because this is such an unusual use-case, even in your collection, it only impacts 2 cards, and there are ways for you to work with/around it – I think this is unlikely to result in a change any time soon. But this is the place to get it attention from others who are interested in the issue.

1 Like