Spaced repetition algorithms all answer the same practical question: when should a learner see each card again? Leitner uses fixed boxes, SM-2 updates an ease factor and interval, Anki's legacy scheduler extends SM-2, and FSRS models difficulty, stability, and retrievability against a desired-retention target.
This is the broad algorithm map. If your decision is specifically FSRS vs SM-2, use the dedicated FSRS vs SM-2 comparison, which covers current Anki settings, optimization, and migration without mixing in other algorithms.
What "spaced repetition" actually means
Before the algorithms: a one-paragraph reminder of the science, because half the internet's takes on FSRS-vs-SM-2 are people who don't quite know what either is solving for.
Cepeda et al. (2008) tested spacing across retention intervals and found that the best study gap depends on how long the learner needs to retain the material. The follow-up question every spaced repetition algorithm tries to answer is: given a card you've seen before, when should the next review happen? Too soon can waste effort; too late increases the chance that recall fails.
Every algorithm below is a different bet on how to answer that one question.
Leitner (1972) — the cardboard algorithm
Sebastian Leitner published his system in So lernt man lernen (1972). It is the algorithm your German cousin used in 1985 with a shoebox.
The mechanism: five physical boxes. New cards start in Box 1. Get a card right, it moves up one box. Get it wrong, it goes back to Box 1. You review Box 1 every day, Box 2 every two days, Box 3 every four days, and so on roughly doubling. There is no per-card state beyond which box it's in.
What Leitner gets right: it is a simple, visible way to expand review intervals after successful recall. A learner can operate it with physical cards and boxes, without software or per-card calculations.
What Leitner gets wrong: every card in a box is treated identically. The card you almost forgot and the card you recalled immediately both advance the same amount. There is no explicit estimate of card difficulty or current recall probability, and the cadence is fixed rather than fitted to review history.
For decks under ~200 cards, Leitner is genuinely fine. Past that, the lack of per-card timing starts costing you reviews you didn't need to do.
SM-2 (Wozniak, 1987) — the algorithm everyone else copies
Piotr Wozniak's SM-2, published as part of his master's thesis and shipped in SuperMemo 1.0 for DOS, is the algorithm that has been quietly powering most of the spaced repetition world for nearly four decades.
The mechanism, in plain English:
- Every card has an ease factor (EF), defaulting to 2.5.
- Every card has an interval — how many days until the next review.
- After each review you grade your recall on a 0-5 scale (0 = total blackout, 5 = perfect, instant).
- If your grade is ≥ 3, the next interval = previous interval × current EF. Then EF gets nudged up or down based on the exact grade.
- If your grade is < 3, the card resets: interval goes back to 1 day, EF gets penalized.
That's the whole thing. The original SM-2 description is shorter than this section.
What SM-2 gets right: the ease factor is per-card. Cards you find easy stretch out faster; cards you find hard get reviewed more often. It encodes the fact that cards differ while keeping the state small enough to inspect and reproduce.
What SM-2 gets wrong: the formula is hand-tuned. Wozniak picked the constants in 1987 based on his own review history and a few hundred friends. Modern data shows the curve isn't quite right — SM-2 tends to over-review mature cards (intervals grow too slowly once a card is well-learned) and under-react to the difference between a card you got "barely right" versus "instantly right." It also has no model of how forgetting itself works; it just multiplies by EF and hopes.
The 0-5 grading scale is also a UX problem in practice. Most users can't reliably distinguish a 2 from a 3, which is exactly the cliff where the card either stretches or resets. Anki noticed this.
Anki's legacy SM-2 scheduler
When Damien Elmes built Anki, he started from SM-2 and added pragmatic changes. This was Anki's primary scheduler before FSRS was integrated in Anki 23.10. Current Anki documentation presents FSRS as the modern scheduler while retaining the SM-2-based scheduler as a legacy option.
The changes that matter:
- Four buttons instead of six. Anki collapses Wozniak's 0-5 grading into "Again / Hard / Good / Easy." Again is a lapse (interval reset, EF penalty). Hard, Good, and Easy roughly correspond to SM-2 grades 3, 4, and 5. This is a UX win — most humans can't honestly self-rate on a 6-point scale, but they can pick which of four buttons feels right.
- Lapse handling is tunable. SM-2 was binary: lapse or no lapse. Anki lets you configure how a lapse penalizes EF (default: −0.20), how many "relearning" steps a lapsed card has to climb through (default: 10 minutes, then re-graduate), and a "leech" threshold (default: 8 lapses) that flags cards you keep getting wrong.
- Learning steps before graduation. New cards step through 1m / 10m / 1d before entering the SM-2 schedule proper. SuperMemo had nothing like this; it's an Anki invention that has, fairly clearly, become correct.
- Ease floor and "ease hell." Anki holds EF above 1.3, which means a card you keep failing eventually plateaus at a fixed punishingly-frequent review cadence rather than collapsing to daily forever. This is also the source of the classic complaint that mature decks accumulate "leeches in ease hell" — cards stuck near 1.3 EF that you'll never actually learn.
What Anki's legacy scheduler gets right is operational maturity: four familiar answer buttons, learning steps, configurable lapse behavior, and years of compatibility work. Its limitation is the same architectural one as SM-2: it does not use an explicit, trainable forgetting model.
FSRS — the model-based scheduler
FSRS — Free Spaced Repetition Scheduler — is a widely deployed open-source scheduler built on an explicit memory model rather than interval multipliers alone. It was integrated into Anki in version 23.10. The source, papers, and current documentation live in the Open Spaced Repetition project.
The core model is called DSR — Difficulty, Stability, Retrievability — and it's worth understanding if you're going to have an opinion on FSRS:
- Stability (S) — how many days until your retrievability of the card drops to 90%. A card with stability 30 means: 30 days from now, you have a 90% chance of remembering it.
- Retrievability (R) — your current probability of recalling the card right now, modeled as
R = exp(-t/S)wheretis days since last review. This is a real exponential forgetting curve, fit to data. - Difficulty (D) — a per-card estimate that influences how stability changes after each review.
FSRS can use default parameters immediately and can later optimize parameters from review history. The public SRS Benchmark evaluates FSRS versions, SM-2, and other models on large Anki review datasets using prediction metrics. It supports comparing models, but it does not justify one universal promise about reviews or time saved for every learner.
What FSRS gets right is its explicit desired-retention control and its ability to fit a model to review history. What makes it harder to deploy is operational complexity: more state, evolving formulas, an optimizer workflow, and possible conflicts with add-ons that modify scheduling.
The comparison table
| Algorithm | Year | Per-card state | Scheduling input | Retention target | Main weakness |
|---|---|---|---|---|---|
| Leitner | 1972 | Box number (1-5) | Pass/fail | Implicit (~85%) | No per-card timing; treats all cards in a box identically |
| SM-2 | 1987 | Ease factor + interval | 0-5 grade | Implicit (~90%) | Hand-tuned constants; over-reviews mature cards |
| Anki legacy | Pre-FSRS | EF + interval + lapse state | Again/Hard/Good/Easy | Indirect | No explicit trainable forgetting model |
| FSRS | 2022 → ongoing | Difficulty + Stability + Retrievability | Again/Hard/Good/Easy | Explicit and configurable | More complex to implement and operate |
| SuperMemo 18+ | 2019 → | Full DSR + workload model | 0-5 grade | Configurable | Closed source; not portable to other tools |
Which spaced repetition algorithm should you use?
- Use Leitner for physical flashcards or a classroom activity where five visible boxes are the feature.
- Use FSRS in a current Anki installation when you want desired-retention control and model optimization.
- Use SM-2 when your app supports it reliably, compatibility matters, or you want a smaller and more transparent scheduler.
- Use Anki's legacy scheduler only when an existing collection, add-on, or workflow requires it.
The scheduler is only one part of the system. Card quality, honest recall grading, and consistent reviews still determine whether the schedule has useful feedback to work with.
Why SmartRecall uses SM-2
SmartRecall currently uses SM-2. It does not provide FSRS scheduling or FSRS optimization. Its verified product focus is the authoring workflow: turning supported PDFs or pasted study material into editable flashcards, then scheduling the reviewed cards with SM-2.
That makes the product boundary straightforward. Choose Anki when FSRS is a requirement. Consider SmartRecall when reducing manual card creation matters more, and always review AI-generated cards before studying them.
What to do today
If you use current Anki, start with its documented FSRS workflow and choose desired retention deliberately. If you use another app, verify which scheduler it actually implements instead of assuming every four-button interface is Anki or FSRS.
If you are choosing between FSRS and SM-2 specifically, continue with the focused FSRS vs SM-2 guide. If card authoring is the constraint, inspect SmartRecall's PDF-to-flashcards workflow and review generated cards before adding them to a study routine.
Once you've settled the algorithm question, the tool question is next: I compare the apps that run these algorithms in Anki vs RemNote vs Mochi vs SuperMemo. And if you're optimizing for a specific exam, the algorithm matters less than having good cards — see the best Anki decks for IELTS vocabulary in 2026 for ready-made options.
FAQ
Which spaced repetition algorithm is best?
There is no universal winner for every workflow. FSRS is the strongest fit for current Anki users who want an explicit retention target and optional model optimization. SM-2 is easier to implement and audit. Leitner remains useful for physical cards and classrooms. The best choice is the algorithm your tool implements correctly and that matches your desired level of control.
How are spaced repetition algorithms different?
They differ in the state they store and how they choose the next interval. Leitner moves cards through fixed boxes. SM-2 updates an ease factor and interval. Anki's legacy scheduler adds practical learning and lapse behavior to an SM-2-style foundation. FSRS models difficulty, stability, and retrievability against a desired-retention target.
Does Anki use FSRS?
Yes. Anki integrated FSRS in version 23.10, and current Anki documentation presents it as the modern scheduler while retaining a legacy SM-2-based option. Check the preset applied to your deck because an existing collection can retain older settings.
Where does the Leitner system fit in?
Leitner is the box method — cards move between five physical boxes reviewed on a fixed cadence. It's not per-card optimized like SM-2 or FSRS, but its simplicity is the feature: it's ideal for paper flashcards and classroom use where "move it up or down a box" is the whole pedagogy. For software decks, SM-2 or FSRS beats it.
Does SmartRecall use SM-2 or FSRS?
SmartRecall uses SM-2. It does not currently offer FSRS scheduling or parameter optimization. Its distinct workflow is generating editable flashcards from supported source material and then scheduling reviewed cards with SM-2.

