Spaced repetition algorithms
A spaced repetition algorithm decides when you next review each card. Most apps use SM-2, a variant of it, or the newer FSRS; the Leitner system does the same job with paper boxes.
How do the algorithms compare?
| Algorithm | First used | How it sets the next review | Used by |
|---|---|---|---|
| Leitner system | 1972 | Cards move between boxes reviewed at fixed gaps | Paper flashcards |
| SM-2 | 1987 | Multiplies the last interval by an ease factor that your grades adjust | Anki (modified, default) |
| SM-17 to SM-20 | 2015–2026 | Models stability and retrievability, fitted to your data | SuperMemo |
| FSRS | 2022 | Estimates the probability of recall and reviews when it falls to a target | Anki (optional), Recall, open-source libraries |
The algorithms
- The Leitner system
How the Leitner box system works, how to set one up with paper flashcards and an example box schedule, its variations and limits, and how it compares with app algorithms.
- The SM-2 algorithm
How the SM-2 algorithm works: the 0–5 grades, the 1- and 6-day first intervals, the ease factor formula, a worked example and its known weaknesses.
- SuperMemo algorithms
The history of the SuperMemo algorithms by Piotr Woźniak, from SM-0 on paper (1985) and SM-2 (1987) to SM-20, and the ideas behind them.
- The FSRS algorithm
How the FSRS algorithm in Anki models memory with difficulty, stability and retrievability, sets intervals from desired retention, and learns from your reviews.
Choosing and using them
- FSRS vs SM-2
FSRS vs SM-2 compared: how each sets intervals, what the open srs-benchmark shows about their accuracy, and when switching to FSRS in Anki makes sense.
- The Anki algorithm
How Anki schedules cards: its SM-2-based scheduler (learning steps, ease, Hard and Easy), ease hell, and how to switch to FSRS.