FSRS Explained: The Anki Algorithm Compared with SM-2
What FSRS does differently from SM-2, what stability and desired retention mean, and which settings you actually need. With benchmark figures.
Every flashcard app has to answer one question: when do I show you this card again? Too early, and you waste time on things you already know reliably. Too late, and you have forgotten it and have to start over.
For years, Anki answered this question with a variant of SM-2. Since Anki 23.10, there is an alternative built in: FSRS, the Free Spaced Repetition Scheduler. The switch is the biggest overhaul of Anki's scheduling in a long time, and it has brought a set of terms that confuse many people: stability, retrievability, desired retention. Here is what lies behind them and what you actually need to set.
SM-2 in Anki: the ease factor
Anki's SM-2 variant works with a factor per card, the ease. According to the Anki FAQ, for review cards it starts by default at 250%, with a floor of 130%. It changes with every answer:
- Again lowers the ease by 20 percentage points and sends the card back into relearning.
- Hard lowers it by 15 points and by default multiplies the interval by 1.2.
- Good leaves the ease unchanged and multiplies the interval by the ease.
- Easy raises it by 15 points and additionally multiplies by an Easy bonus.
Compared with the original SM-2, Anki has changed several things: four answer buttons instead of six, configurable learning steps, handling of late reviews, and the Easy bonus.
Anyone who has studied with Anki for a while knows the problem: ease hell. A card you have forgotten a few times after the learning phase drifts with its ease toward the floor. From then on it keeps getting short intervals, even when you know it well. The card is stuck.
FSRS: three numbers per card
FSRS takes a different approach. Instead of one factor, it estimates three quantities for each card, known by their initials as the DSR model:
- Difficulty (D): how hard it is to increase this card's stability through repetition. Scale from 1 to 10.
- Stability (S): the time in days after which the estimated probability of recall has fallen to 90%. S = 30 means: after 30 days, according to the model, you still know the card with 90% probability.
- Retrievability (R), probability of recall: how likely you are to still know the card right now. R depends on S and the time elapsed, and it drops day by day.
D and S are updated after every review; R changes over time. Important: these are model estimates, not measurements of your brain. But they are estimates learned from real review data.
The Anki FAQ describes what your answers do under FSRS this way: Again typically lowers stability and raises difficulty. Hard raises difficulty, while stability stays the same or rises. Good raises stability. Easy raises stability more strongly and lowers difficulty.
FSRS has no ease mechanism like SM-2, so there is no ease hell in the classic sense. To be honest, FSRS can still often show difficult cards. It is simply that the model considers them difficult, not that a factor is stuck.
Question
FSRS: What does a stability of S = 30 mean?
Answer
After 30 days, the estimated probability of recall is 90%.
Question
Which of the three DSR quantities changes over time, even without a review?
Answer
Retrievability (probability of recall).
Question
What is "ease hell" in Anki's SM-2 variant?
Answer
Repeated failures after the learning phase lower the ease sharply, so the card keeps getting short intervals.
Where FSRS comes from
FSRS was developed by Jarrett Ye, research engineer at the learning app MaiMemo. It is further developed openly in the open-spaced-repetition project on GitHub. The starting point was MaiMemo's DHP model, a variant of the DSR model. The underlying conference paper appeared in 2022 at KDD: "A Stochastic Shortest Path Algorithm for Optimizing Spaced Repetition Scheduling" by Junyao Ye, Jingyong Su and Yilong Cao.
The versions in brief:
- FSRS v4: 17 parameters, forgetting curve as a power function.
- FSRS 4.5: still 17 parameters, flatter forgetting curve.
- FSRS 5: 19 parameters, separate handling of reviews on the same day, changed difficulty calculation.
- FSRS 6: 21 parameters, better handling of same-day reviews, and the shape of the forgetting curve can be optimized per person.
As of November 2026, the official benchmark already lists FSRS 7. Development is therefore ongoing.
Is FSRS really better? What the benchmark measures
The srs-benchmark of open-spaced-repetition evaluates real Anki data retrospectively: around 727 million reviews from 10,000 users, and after removing same-day reviews, 349,923,850 reviews from 9,999 collections. Training and test data are separated in time. What is measured is how well an algorithm predicts whether you will know a card the next time. Lower is better.
| Algorithm | Log loss | RMSE(bins) |
|---|---|---|
| FSRS v4 | 0.3726 | 0.0838 |
| FSRS 4.5 | 0.3625 | 0.0764 |
| FSRS 5 | 0.3561 | 0.0742 |
| FSRS 6 | 0.3460 | 0.0653 |
SM-2 is not in the current main table. However, the official Rust port repository of the benchmark gives for log loss: FSRS 6 reaches 0.3460, SM2 reaches 0.7220, a trainable SM-2 variant reaches 0.5805, and the Anki-typical SM-2 derivation reaches 0.5127. Compared with SM2, FSRS 6 has 52.1% lower log loss.
An older benchmark with 71 people and 4,632,965 evaluated reviews found for FSRS v4 compared with SM2 47.1% lower log loss and 77.9% lower RMSE(bins). The two evaluations have different data bases and weighting; you must not merge them into a single ranking.
And now the part that marketing pages like to leave out: All of this measures prediction accuracy, not saved study time. A randomized comparison in which one group studies with FSRS 6 and another with Anki's SM-2, with time and retention measured at the end, was not found in the research. The TKDE paper by Su, Ye and colleagues (2023) does report 17% lower cost compared with several baselines, but for the approach examined there, not as a blanket saving for FSRS 6 in Anki. The plausible logic is: whoever predicts more accurately when you will forget wastes fewer repetitions. The concrete saving is therefore not proven.
Desired retention: the one setting that matters
With FSRS you no longer set intervals or factors, but a target: with what probability do you want to still know a card when it comes due? This is the desired retention.
- Default: 90%. According to the older FSRS tutorial, the right choice for most users.
- Reasonable range: 80 to 95%. Also from the tutorial, which is no longer updated and refers to the Anki manual.
- Upper limit: below 97%. This is what the Anki manual recommends. Higher values shorten the intervals, and near 100% the workload rises sharply.
A catchy rule of thumb such as "95% is twice as much work as 90%" gets passed around often, but it could not be verified. You can simulate how much your workload rises in Anki with Help Me Decide. The old function "Compute Minimum Recommended Retention" was removed in Anki 25.07, in case you come across it in older guides.
What you should set in Anki
A short checklist follows from the manual and the tutorial:
- Turn on FSRS in the deck options.
- Press Optimize. This lets Anki adjust the parameters to your own review history, including reviews from before the FSRS era. Since Anki 24.06 there is no fixed minimum number of reviews anymore. With little data, only some parameters are adjusted. Re-optimizing roughly once a month is enough.
- Do not change the parameters by hand, and do not copy them from friends or forums. They belong to your data.
- Keep learning steps under one day, for example 10 or 30 minutes, so they finish on the same day.
- Leave Reschedule Cards on Change switched off when starting, otherwise you immediately get a large wave of due cards.
- Separate presets only if your decks are very different.
Incidentally, if you only change the desired retention, you do not need to re-optimize. Target and model parameters are independent.
The most common mistake: Hard as "half wrong"
According to the Anki manual, Again means wrong or not remembered, Hard means correct but slow or uncertain, Good means correct with normal effort, and Easy means correct without effort. If four buttons are too many for you, the manual says you may also use only Again and Good.
Many people press Hard when they did not actually know the answer, because Again feels so harsh. Under FSRS this is harmful: Hard counts as passed. You tell the model that you knew the card and get intervals that are too long as a result. Forgetting is Again. Always.
And in checkst?
checkst schedules your repetitions with FSRS and starts with a desired retention of 90%, the value that the Anki manual and tutorial recommend as the default. You do not need to understand the parameters to start learning. If you are coming from Anki, you import your decks as .apkg. And when an exam is coming up, there is an exam mode: you set a date, and checkst schedules reviews at short intervals of hours until then, without permanently distorting the normal intervals of your cards. How to plan the weeks beforehand sensibly is covered in the study plan for the exam phase. How spaced repetition works in the first place is explained in Spaced repetition explained.
Frequently asked questions
What is FSRS?
FSRS stands for Free Spaced Repetition Scheduler, an open algorithm by Jarrett Ye and the open-spaced-repetition project. For each card it estimates difficulty, stability and probability of recall, and it plans the next review based on these.
Which desired retention should I set?
Start with the default of 90%. The older FSRS tutorial names 80 to 95% as a reasonable range, and the Anki manual advises staying below 97%, because the workload rises sharply near 100%.
Is FSRS better than SM-2?
In benchmarks, FSRS predicts much more accurately whether you will still know a card. That is well documented. According to the brief, there is no randomized comparison that measures a concrete time saving.
Do I have to optimize the FSRS parameters?
In Anki: yes, roughly once a month with Optimize is enough. Do not change the parameters by hand and do not copy them from others. If you only change the desired retention, you do not need to re-optimize.
Is Hard a wrong answer?
No. Hard means correct but effortful. If you rate forgotten cards as Hard, you feed FSRS false success data and get intervals that are too long. Forgetting is always Again.
Sources
- Anki manual: Deck Options (desired retention, FSRS parameters)docs.ankiweb.net
- Anki manual: Studying (answer buttons)docs.ankiweb.net
- Anki FAQ: What spaced repetition algorithm does Anki use?docs.ankiweb.net
- Anki 23.10: Changeschanges.ankiweb.net
- FSRS wiki: ABC of FSRSgithub.com
- FSRS wiki: The Algorithmgithub.com
- FSRS4Anki: Tutorialgithub.com
- open-spaced-repetition: srs-benchmarkgithub.com
- open-spaced-repetition: srs-benchmark-rustgithub.com
- ankitects: fsrs-benchmark (historical)github.com
- Su et al. (2023), IEEE TKDEieeexplore.ieee.org