FSRS vs SM-2: a simulated year of Anki scheduling
In short
- SM-2 required 4,624 reviews where FSRS required 3,826 — 21% more.
- 26% of SM-2's reviews landed above 98% recall, where a review buys almost nothing.
- SM-2's review timing was 7.5× more scattered, because it has no retrievability model.
- Important caveat: FSRS supplied the ground-truth memory here. Read the method note.
Almost every medical student who has done spaced repetition has done it through SM-2 — the algorithm Piotr Woźniak published in 1987 and the scheduler behind Anki for most of its life. It is one of the most consequential pieces of educational software ever written, and it is genuinely good: it took a laboratory finding and made it something a student could run on a laptop.
It also predates any practical ability to model memory statistically, and it shows. We wanted to know how much that matters over a year of study, so we implemented both schedulers and ran them against the same cards.
Read this before the numbers
This comparison has a structural bias and it would be dishonest to bury it in a footnote.
Both schedulers were evaluated against one ground-truth memory model, and that model is FSRS. One contestant supplied the physics. A test set up that way cannot tell you which scheduler produces better memory, and we are not claiming that it does.
What it can answer is narrower:
Given a memory that decays on a known curve, how consistently does each scheduler place its reviews where it intends to?
That question is fair to both, because it is about the scheduling rule rather than about whose curve is correct. And the fact driving the result is not a modelling assumption — it is a property of SM-2 itself.
SM-2 has no concept of retrievability. It never estimates the probability that you can recall a card today. Intervals come from a running ease factor and a repetition counter: multiply the last interval, floor the ease at 1.3, reset to one day on a lapse. There is no target retention in the algorithm because there is no quantity to target.
FSRS estimates recall probability and solves for the interval that lands on a chosen figure — 90% here.
So one scheduler aims and the other multiplies. That difference holds regardless of which forgetting curve is true.
The setup
500 cards, 365 simulated days, six runs per condition. Both schedulers see identical cards. Grades are derived from the simulated outcome the way a self-grading learner behaves: a failure is graded 2, an effortful recall 3, a comfortable one 4, a trivially easy one 5.
Where the reviews land
| Recall when reviewed | FSRS | SM-2 |
|---|---|---|
| Below 70% | 0.0% | 4.9% |
| 70–80% | 0.1% | 2.9% |
| 80–85% | 3.0% | 2.5% |
| 85–90% | 97.0% | 4.6% |
| 90–95% | 0.0% | 38.6% |
| 95–98% | 0.0% | 20.6% |
| Above 98% | 0.0% | 25.9% |
FSRS puts 97% of its reviews in a single band, which is what aiming looks like. SM-2 scatters across the whole range: the standard deviation of recall-at-review is 11.2 points against 1.5 — seven and a half times wider.
Both tails cost something.
A quarter of SM-2’s reviews arrive above 98% recall. We measured what a review is worth at that point in an earlier experiment: about 4.2 days of added durability, against 19.9 days for the same review done at 90%. Those reviews are not wasted exactly, but they are bought at roughly a fifth of the going rate.
Five percent arrive below 70%, where the card is nearly as likely to have been forgotten as retained, and a failure means relearning from close to zero.
What it costs over a year
| FSRS | SM-2 | |
|---|---|---|
| Total reviews | 3,826 | 4,624 |
| Reviews per card | 7.6 | 9.2 |
| Mean recall at review | 89.1% | 92.0% |
| Spread (standard deviation) | 1.5 | 11.2 |
| Retention after one year | 93.7% | 87.1% |
SM-2 spent 798 more reviews on the same 500 cards — 21% more work.
The mechanism is the scatter, not any single bad decision. A scheduler that reviews a quarter of its cards while they are still almost perfectly known buys very little with those reviews, so it has to come back sooner, so it does more of them. Aiming is what makes the total smaller.
What this does not show
Several things, and they matter.
Anki is not stuck with SM-2. Recent versions ship FSRS as a built-in option, and a student who enables it gets the scheduling behaviour in the left-hand column of these tables. This is a comparison of algorithms, not a verdict on a piece of software — and the Anki project’s willingness to adopt a better scheduler is to its credit.
The ground truth favours FSRS, as stated above. A neutral referee would narrow the gap. It would not remove the scatter, because the scatter comes from SM-2 having nothing to aim at.
Scheduling is one component of a study tool. Anki’s card ecosystem, its maturity and the enormous shared decks around it are real advantages this test says nothing about.
Self-grading is modelled, not measured. We mapped simulated outcomes onto 0–5 grades with a fixed rule. Real students grade inconsistently, and SM-2 is more sensitive to that than FSRS is, because a mis-grade feeds straight into the ease factor and stays there. If anything, that favours SM-2 in our test.
Why we are publishing this
Forgetting schedules against estimated retrievability, which is the FSRS-style approach, and this is the evidence for that choice rather than an assertion of it. The 21% figure is the honest size of the benefit under assumptions that favour us, and we would rather publish it with the caveat attached than quote a larger number with the method hidden.
The broader point is not really about which algorithm wins. It is that a scheduler which cannot estimate recall probability cannot aim its reviews, so a quarter of what it does lands where reviews are worth least. That is a structural limit of a design from 1987, not a criticism of the people who built it — they did not have hundreds of millions of review logs to fit a model against. We do.
Method: SM-2 as published (ease floor 1.3, intervals 1, 6, then ×EF; lapse resets to 1 day) against FSRS-5 with default parameters and a 90% retention target. 500 cards, 365 days, 6 runs per condition. Both evaluated against the FSRS forgetting curve — see the method note above. Code in research/scheduler-comparison.