SM-2 vs FSRS vs Leitner vs Anki: Which Spaced Repetition Algorithm Wins in 2026
I spent 416 hours of my USMLE Step 1 prep typing flashcards before I realized the algorithm picking my next card barely mattered. The math is brutal: 10,000 cards × 2.5 minutes of authoring each is seventeen full days where you do nothing but type. By the time I cared which scheduler was choosing my next review, I'd already lost the war on the input side.
That experience colored how I read every "FSRS is 30% better than SM-2" benchmark since. They're real numbers. They're also benchmarks of the easy part of the problem.
This is a working comparison of the four algorithms most people in 2026 will actually run into — Leitner, SM-2, Anki's modified SM-2, and FSRS — written from the perspective of someone who has shipped a spaced-repetition product and has opinions about which to default to. I'll tell you which one I picked for SmartRecall and why, but the goal here is to give you enough detail that you can disagree with me on the merits.
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) ran a 26-week study with 1,354 participants and showed that spacing reviews — instead of cramming them — improves retention by roughly 200% per unit of study time. That's not a small effect; it's one of the largest replicated findings in cognitive psychology. The follow-up question every spaced repetition algorithm tries to answer is: given a card you've seen N times before, when is the optimal next review? Too soon and you're wasting effort on something you already know. Too late and you've forgotten and the spacing benefit collapses.
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's the simplest possible expression of expanding intervals, and it works. If you only ever read this paragraph, the takeaway is that any spaced schedule beats no schedule. Leitner is the floor, and the floor is already a 200% retention improvement over cramming.
What Leitner gets wrong: every card in a box is treated identically. The card you almost forgot and the card you got right in 0.4 seconds both advance the same amount. The card you've seen 200 times and the card you've seen 3 times sit in the same bucket if they happen to be in the same box. There's no notion of card difficulty, no notion of how confident you were, and the doubling cadence is fixed regardless of your personal forgetting curve. Quizlet's "Learn" mode is essentially Leitner with a UI.
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 fast (EF climbs, intervals balloon). Cards you find hard get reviewed more often (EF sinks toward the floor of 1.3). It encodes the obvious truth that not all cards are created equal, and it does so with one number you can reason about. The algorithm has roughly five lines of meaningful logic. You can implement it from memory. I have, several times.
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 modified SM-2 — what most of you are actually running
When Damien Elmes built Anki in 2006-2008, he started from SM-2 and made a handful of pragmatic changes. Until Anki 23.10 shipped FSRS as an optional scheduler, this is the algorithm 90% of "I use Anki" reviews ran on, and it's still the default for new users in 2026.
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 SM-2 gets right: it's the most battle-tested SR scheduler in the world. Tens of millions of users, billions of reviews logged, decades of edge cases shaken out. Boring, in the best sense.
What it gets wrong: the same things SM-2 gets wrong. Hand-tuned constants from 1987, no actual forgetting model, over-reviews mature cards. By the time you're 18 months into a 30,000-card deck, you can feel the drag.
FSRS (Open Spaced Repetition, 2022→) — the one with a forgetting model
FSRS — Free Spaced Repetition Scheduler, originally by Jarrett Ye — is the first widely-deployed SR algorithm built on an explicit forgetting model rather than hand-tuned multipliers. It shipped as an option in Anki 23.10 (October 2023) and became the default for new Anki users in version 25.x. The full source and papers live at github.com/open-spaced-repetition/fsrs4anki.
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 constant (0-10) that modulates how fast stability grows after each review.
After every review, FSRS updates S and D using 17-21 trained weights (depending on FSRS version — FSRS-4.5, FSRS-5, and FSRS-6 have all shipped since 2023). The weights are fit on your actual review log via gradient descent. This is the part that matters: FSRS is personalized to your forgetting curve, not Wozniak's.
The empirical case: Domenech-Iglesias et al. (2024) ran the canonical benchmark on 20,000+ Anki users' review logs, comparing FSRS against SM-2 at matched retention targets. FSRS hit the same 90% retention with roughly 30% fewer reviews. That number is real, replicated, and probably the most important quantitative result in spaced repetition since Cepeda's spacing meta-analysis.
What FSRS gets right: it has a forgetting model, the model is fit to your data, and the benchmark is honest. If you have a mature deck with thousands of cards and tens of thousands of reviews logged, switching to FSRS will save you measurable time per week.
What FSRS gets wrong (or at least: what makes it harder to deploy): you need a meaningful review log before personalization helps. The canonical guidance is ~1,000 reviews before FSRS's per-user weights beat the default weights, and a few thousand before the benefit becomes obvious. New users get the default weights, which are themselves fit on the population — better than SM-2's 1987 constants, but not by 30%. Implementation is also genuinely harder: where SM-2 fits in five lines, FSRS needs the trained weights, the DSR update rules, and an optimizer pipeline if you want personalization.
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 SM-2 | 2006-2023 | EF + interval + lapse count | Again/Hard/Good/Easy | Implicit (~90%) | Inherits SM-2's flaws; ease hell on long-running decks |
| FSRS | 2022 → ongoing | Difficulty + Stability + Retrievability | Again/Hard/Good/Easy | Explicit, configurable (default 90%) | Needs review log to personalize; harder to implement |
| SuperMemo 18+ | 2019 → | Full DSR + workload model | 0-5 grade | Configurable | Closed source; not portable to other tools |
So which one wins
Honest answer:
For a solo learner with a deck under 1,000 cards — language vocabulary, a single textbook chapter, a short professional cert — SM-2 (or Anki's SM-2) is fine and FSRS's edge is mostly noise. The 30% benchmark is averaged over heavy users with mature decks; on a small deck the absolute time saved is twenty seconds a day.
For a heavy user with 5,000+ cards and a multi-year horizon — USMLE, MCAT, the Bar, a serious language project, anyone with a 20,000-card medical deck — FSRS wins, and the win is real. Switch.
Leitner wins for physical cards or kids' classrooms, where the simplicity of "five boxes, move it up or down" is the entire pedagogical point and per-card optimization isn't worth a UI.
Why SmartRecall ships SM-2
I built SmartRecall and I picked SM-2. People with strong opinions about FSRS sometimes ask me why, and the honest answer is the one I started this post with.
For our user — someone prepping for a heavy exam, who hasn't built their deck yet — the bottleneck isn't the 30% review savings FSRS will start delivering after their first thousand reviews. The bottleneck is getting cards to exist in the first place. We spend our optimization budget on the authoring side (the AI pipeline that turns a PDF chapter into 800 well-formed cards in twelve minutes) because that's where the 416-hour wall sits. Once cards exist, SM-2 schedules them well enough that the marginal review-time savings from FSRS would be invisible against the time we've already saved on input. We can revisit FSRS in 18 months when our average user has a mature review log; today, shipping a worse algorithm-with-better-cards beats shipping a better algorithm-with-no-cards.
That's the bet. It might be wrong. If your prep horizon is two years and your deck is going to be 20,000+ cards, run FSRS in Anki and don't let me talk you out of it. SmartRecall is built for the eight-week sprint where the authoring problem is bigger than the scheduling problem.
What to do today
If you're not currently using any spaced repetition: pick the easiest tool to start (Anki with its defaults, or SmartRecall if you don't want to author by hand) and start today. The algorithm choice you obsess over for two hours doesn't matter if you don't have cards to review tomorrow.
If you've been running Anki on the default scheduler for a year and you have a deck over 5,000 cards: open Tools → Deck Options → FSRS, enable it, click "Optimize" to fit weights on your review history. It will take ten minutes and probably save you two hours a month going forward. The official guide is short.
If you're staring at a 700-page textbook with eight weeks until your exam and the authoring math doesn't work: that's the problem I built SmartRecall for. Twenty free credits is enough to test it on one chapter — generate the cards, look at them, and decide whether they're the cards you would have written if you had time.
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.
— Alex
FAQ
Is FSRS better than SM-2?
For a mature deck with a long horizon, yes — FSRS typically schedules about 20–30% fewer reviews for the same retention because it fits a memory model to your actual review history instead of using SM-2's fixed formula. But the advantage only shows up after you've logged a few thousand reviews. On a small deck (under ~1,000 cards) the absolute time saved is seconds a day, and SM-2 is perfectly fine.
What's the actual difference between SM-2 and FSRS?
SM-2 (1987) is a fixed formula: it multiplies each card's interval by an "ease factor" you nudge up or down based on how you rate recall. FSRS (2022+) is a trainable model with three variables per card — difficulty, stability, and retrievability — whose weights are optimized against your own review log. SM-2 applies the same rule to everyone; FSRS personalizes the schedule to your forgetting curve.
Should I switch from SM-2 to FSRS in Anki?
If you've run Anki on the default scheduler for a year and have a deck over 5,000 cards: yes. Open Tools → Deck Options → FSRS, enable it, and click "Optimize" to fit weights on your history. It takes ten minutes and usually saves a couple of hours of review time per month afterward. If your deck is small or brand new, there's no urgency.
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 ships SM-2. For our core user — someone prepping for a heavy exam who hasn't built their deck yet — the bottleneck isn't the review-time savings FSRS delivers on mature decks; it's getting the cards to exist at all. We spend our optimization budget on the AI authoring pipeline (PDF chapter to 800 cards in ~12 minutes), and SM-2 schedules those cards well enough that FSRS's marginal savings would be invisible against the input time already saved.

