In the SM-2 algorithm, there is an ease factor that acts as a kind of “punishment” for forgotten cards. Each time a card is marked “again”, its ease factor decreases, leading to shorter intervals until the ease bottoms out at 1.3.
What I’ve been wondering is why FSRS doesn’t have something similar. Why isn’t there a mechanism that treats harder cards differently?
For example, what if FSRS applied an additional penalty to the DR of a card after each “again”? If the global DR is set to 80%, cards with repeated lapses could instead receive a harsher treatment, such as 80% + N% for every “again”. That would mimic how SM-2 lowers the ease for difficult cards.
When I suggested separating DR for young and mature cards (so, for instance, 1-week-old vs 1-year-old cards could have different DR), the response I got was that it would overcomplicate the UI for the average user.
But this penalty feature doesn’t seem overly complex. Is it possible to implement something like this?
As an example, let’s say I’m studying Chinese characters. My cards are highly atomized and structurally identical, so there are no “leeches” in the traditional sense. But some characters are consistently harder, and they rack up more lapses with constant “again” hits. For the majority of my cards, a DR of around 70–80% works fine, but for these tougher cards, that setting seems too forgiving. Why not allow an additional penalty for those cases? Something like +1% DR for every “again” could work, which would essentially give FSRS a feature comparable to SM-2’s ease factor reduction.
I think this was one of the more powerful aspects of SM-2: harder cards automatically received harsher treatment after every lapse.
I’d be interested to hear thoughts on whether this kind of adjustment could make FSRS more effective for handling consistently difficult cards.