Merry Mandarin logo Merry MandarinBlog
Behind the Scenes

Why Merry Mandarin Doesn't Use SM-2 (and What 'Ease Hell' Really Is)

Why Merry Mandarin Doesn't Use SM-2 (and What 'Ease Hell' Really Is)

You have felt this even if you have never heard its name. A character you have reviewed forty times still comes back every two days. Your daily review count keeps climbing even though you have not added a single new card in weeks. The app insists you are “learning,” but the pile in front of you every morning looks less like progress and more like debt. Anki users have a name for this: ease hell. It is not a metaphor. It is a specific, mechanical failure mode baked into the algorithm nearly every flashcard app has used since the 1980s, and it is the single biggest reason Merry Mandarin’s review engine was never built on it.

What ease hell actually is

Almost every spaced repetition app, Anki formerly chief among them, has historically scheduled cards using an algorithm called SM-2, and SM-2 tracks exactly one number per card to decide how hard it is: the ease factor. Every card starts at an ease factor of 2.5, or 250%. Answer “Good,” and the interval before your next review gets multiplied by that factor. Answer “Again” because you forgot it, and the ease factor itself gets cut, typically by 20%. Answer “Hard,” and it drops another 15%. Answer “Easy,” and it only climbs back by 15%.

Look closely at that asymmetry and the trap becomes obvious. A single lapse costs you 20%. Recovering that 20% back takes far more than one good review, because 15% of a smaller number is a smaller number. Fail a card three or four times, which happens constantly with genuinely difficult material, and its ease factor collapses toward the floor Anki’s classic SM-2 scheduler enforces: 1.3, or 130%. Once a card is pinned at that floor, every subsequent successful review only multiplies its interval by 1.3, so the interval barely grows at all. The card comes back in a few days. You get it right. It comes back in a few more days. You get it right again. It never graduates, because the math structurally will not let it.

  1. You forget a card

    Ease factor drops 20%. A single lapse costs far more than a single success gains back.

  2. The interval shrinks

    New interval = old interval times ease factor, so a lower ease factor means the card returns sooner than it needed to.

  3. It comes back too soon

    The card resurfaces before the memory has genuinely consolidated, so the odds of forgetting it again are higher than they should be.

  4. It hits the floor

    After a few more lapses, ease factor bottoms out at 1.3, the lowest Anki's SM-2 scheduler allows. Recovery from here requires many perfect reviews in a row.

  5. It cycles forever

    Pinned at the floor, the card's interval barely grows between reviews. It keeps coming back every few days indefinitely: ease hell.

Multiply that by a deck of a few thousand cards, which for a language learner accumulates within the first year, and even a modest fraction of cards stuck at the floor is enough to bloat a daily review queue into something unsustainable. Anki’s own workaround is a feature called leeches: after eight lapses, by default, a card gets flagged and suspended so it stops appearing at all. That is not a fix. It is an admission that the algorithm cannot recover the card, and Anki gives up on it instead.

Ease hell is not a bug. It is exactly what a formula built in 1987 is supposed to do when it has already watched you fail a card six times.

Merry Mandarin

An algorithm that was never wrong, just never personal

None of this is really SM-2’s fault, in the sense of being a mistake. Piotr Wozniak built it in 1987 as a biochemistry student at the Poznan University of Technology who was drowning in vocabulary and scientific terminology and started tracking his own forgetting patterns by hand to fix it. He published the formula openly in his 1990 master’s thesis, “Optimization of Learning,” and that openness is exactly why it spread everywhere: any flashcard developer could implement it without paying anyone or inventing anything themselves. For over three decades, that one fixed formula, with the same ease-factor penalties applied identically to every card and every learner, was simply the water every spaced repetition app swam in.

The problem it was never built to solve is personalization. SM-2 has no way to know that you, specifically, are a slightly slower but very steady learner rather than someone who genuinely does not know the material. It has no way to know that a two-stroke character and an eighteen-stroke one are not equally hard to remember, or that a review you get right after nine days overdue is real evidence about your memory, evidence the algorithm simply throws away. It applies the same static penalty regardless.

What FSRS actually models differently

FSRS, the Free Spaced Repetition Scheduler, exists because someone finally treated memory as something worth modeling statistically rather than nudging with fixed percentages. The lineage runs through a company called MaiMemo, a Chinese vocabulary-learning platform, whose internal scheduling model turned out to be a variant of an academic framework called DSR: difficulty, stability, and retrievability. Jarrett Ye, an undergraduate researcher working with MaiMemo’s data, recognized that a model like this did not need to be hand-tuned at all. Its parameters could be fit directly to real review outcomes using gradient descent, the same optimization technique behind most modern machine learning. He published the results at ACM SIGKDD in August 2022, one of the most competitive research venues in data mining, and the open-sourced result became FSRS.

The three variables it tracks per card are genuinely different from a single ease factor. Difficulty is a 1-to-10 rating of how inherently hard a card is. Stability is measured in actual days: specifically, the number of days until your recall probability for that card is predicted to fall to 90%. Retrievability is that recall probability itself, a real number between 0 and 1, calculated at any point in time using a forgetting curve fit to your own data rather than an assumed shape. When you review a card significantly overdue and still get it right, FSRS treats that as strong evidence and boosts stability accordingly, but the boost converges rather than runs away, so a single lucky overdue review cannot send a card’s interval spiraling incorrectly in either direction.

The version in wide use now, FSRS-5, refined this further: it added the ability to learn from same-day reviews rather than discarding them, and reshaped the forgetting curve itself, which together dropped its retention-prediction error from roughly 6.1% to 5.3% compared to the prior version. Under the hood it is a genuine statistical model with seventeen parameters, shipped with defaults pre-trained on millions of anonymized reviews, then refit to your own review history the more you use it. Two people studying the same Chinese vocabulary deck end up with two different sets of parameters, because they are, in fact, two different memories.

SM-2FSRS-5
What it tracks per cardOne ease factor (a multiplier)Difficulty, stability, retrievability (a real memory model)
Personalized to youNo, one formula for everyoneYes, parameters fit to your own review history
Failed-card recoveryAsymmetric penalty, can hit a floor and get stuckRecalculated from your actual data, no fixed floor
Published1987 (Wozniak, SuperMemo)2022 (Ye et al., ACM SIGKDD)
Adopted by AnkiWas Anki's default for decades, from the 1980s-era SuperMemo formula until 2023Built in since version 23.10, November 1, 2023, now Anki's own recommended scheduler

The measured difference

This is not a marginal theoretical improvement. The largest independent benchmark of the two algorithms, run by the open-spaced-repetition research group across tens of thousands of real Anki collections and roughly 350 million filtered review logs, found that at the same target retention rate, FSRS needs meaningfully fewer total reviews than SM-2 to get there.

20-30% fewer reviews for the same retention target, per the largest independent benchmark of real Anki review logs comparing FSRS against SM-2

For someone doing 200 reviews a day, that is roughly 50 reviews a day recovered, not from studying less, but from an algorithm that stops asking you to re-confirm things you already know just because a fixed formula never learned better.

Why we built on FSRS-5 from the start

Merry Mandarin’s review engine was built on FSRS-5 from day one, not retrofitted later, because Chinese is close to a worst-case scenario for a one-size-fits-all ease factor. A learner’s deck mixes two-stroke characters next to eighteen-stroke ones, common classifiers next to rare ones, tone pairs that are trivial once your ear adjusts and tone pairs that stay genuinely hard for a year. Treating all of that with the same static multiplier, and punishing a lapse on a legitimately hard character exactly as harshly as a careless slip on an easy one, is precisely the setup that produces ease hell at scale. A model that learns your actual difficulty and stability per card, and per person, was never optional for a language this uneven. It was the only architecture that made sense to start with.

The practical result is quiet rather than flashy: no ease-factor floor to get trapped against, no leech pile of abandoned cards, and a review queue that reflects what you are actually forgetting rather than what a 1987 formula assumes everyone forgets at the same rate. If you have felt the specific dread of a flashcard pile that never seems to shrink no matter how faithfully you show up, that feeling has a name, a mechanism, and, as of a few years ago, an actual fix.