The FSRS algorithm
The modern, data-driven successor to SM-2. FSRS models your memory with three variables and a set of optimized weights, then schedules each review to hit a target retention rate.
- introduced (open source)
- 2022
- introduced (open source)
- memory variables (D, S, R)
- 3
- memory variables (D, S, R)
- optimized weights
- 21
- optimized weights
- default retention
- 90%
- default retention
The forgetting curve, reset by each review
What is FSRS?
FSRS — the Free Spaced Repetition Scheduler — is an open-source algorithm built by the spaced-repetition community and shipped inside Anki since 2023. Where SM-2 uses one hand-tuned rule, FSRS fits a small model of memory to real review data.
It is based on the three-component model of memory (DSR): every card has a Difficulty, a Stability and a Retrievability. Retrievability is the probability you could recall the card right now, and it decays along a predictable forgetting curve as time passes since your last review.
The model carries a set of weights that govern how difficulty and stability move after each rating. They are fit to review data so the forgetting curve matches how people actually forget, and FSRS then picks each interval so predicted recall lands on a target retention — the same memory strength as SM-2 with fewer reviews.
Because FSRS is open source, the same scheduler runs in more than one app — Anki and Gnoseed both offer it, which means the choice between those tools is not a choice of algorithm. Anki vs Gnoseed works through what actually separates them, and Quizlet alternatives for IT and cloud certifications covers the broader field.
How it works
The loop looks familiar, but the update step fits a memory model instead of a single rule.
Show & recall
The card appears. You pick an answer from the options.
Rate recall
Your correctness and speed map to one of four ratings — Again, Hard, Good or Easy.
Update D, S, R
The optimized weights recompute difficulty, stability and retrievability from that rating.
Hit target retention
The next interval is the time until predicted recall falls to the retention goal (90% by default).
The knobs that drive scheduling
FSRS tracks three memory variables per card, plus the global weights and a retention target.
Difficulty
1 – 10The intrinsic hardness of a card. Higher difficulty dampens how fast stability can grow, so tough cards keep coming back more often.
Stability
daysThe number of days for retrievability to fall to 90%. It is the memory "strength" — the interval is derived from it, and each successful review grows it.
Retrievability
0 – 1The probability you could recall the card right now. It decays along a power-function forgetting curve as time passes since the last review.
Weights
21 paramsThe trainable parameters of the model (FSRS-6). Gnoseed uses the research-optimized defaults; they govern exactly how D and S update after each rating.
Desired retention
default 0.90The recall probability FSRS targets when choosing intervals. Gnoseed uses the 90% default — lower means fewer reviews and more forgetting; higher means more reviews.
The memory model
# FSRS-6 forgetting curve (power function)
# R = recall probability, S = stability (days),
# t = days since last review, decay from weights
R(t, S) = (1 + FACTOR * t / S) ** decay
# next interval: solve R = desired retention r
# (Gnoseed uses r = 0.90)
interval = (S / FACTOR) * (r ** (1 / decay) - 1)
# each rating updates D and S through the
# 21 optimized weights w[0..20]:
D = next_difficulty(D, rating, w)
S = next_stability(D, S, R, rating, w) # grows on successThe forgetting curve is a power function of time over stability: more stable memories decay more slowly. Retrievability R starts at 1 right after a review and falls toward 0.
To schedule, FSRS inverts that curve — it solves for the interval at which predicted R equals the desired retention. Each rating then updates difficulty and stability through the optimized w[] weights. Gnoseed runs the research-tuned defaults rather than training per-user.
How Gnoseed uses FSRS
Research-optimized defaults
Gnoseed runs FSRS-6 with its 21 optimized default weights and a 90% retention target — no per-user training or setup required.
Auto-rated answers
Your multiple-choice correctness and speed map onto Again / Hard / Good / Easy, so you never grade manually.
Models memory explicitly
By tracking stability and difficulty per card, FSRS aims for its retention target with fewer reviews than a fixed-rule scheduler.
Switch anytime
Settings lets you switch to SM-2. Switching resets card scheduling — your streak and review count stay.
How the two schedulers compare
Gnoseed supports both. SM-2 is the transparent classic; FSRS is the data-driven modern successor. Here is how they differ at a glance.
| SM-2 | FSRS | |
|---|---|---|
| Introduced | 1987 · SuperMemo | 2022 · open source |
| State per card | 3 values (EF, interval, reps) | 3 variables (D, S, R) |
| Tunable weights | None — one fixed rule | 21 optimized weights |
| Needs training data | No | No — uses optimized defaults |
| Models forgetting curve | Indirectly | Explicitly (retrievability) |
| Best for | Simplicity & transparency | Accuracy with fewer reviews |
Common questions
What is the FSRS algorithm? +
FSRS (Free Spaced Repetition Scheduler) is an open-source spaced-repetition algorithm that models memory with three variables — difficulty, stability and retrievability — and a set of optimized weights, scheduling each review to hit a target retention rate.
What are stability and difficulty? +
Stability is the number of days for your recall probability to fall to 90%; it grows as a memory strengthens. Difficulty (1–10) is the intrinsic hardness of a card and dampens how fast stability can grow.
How many weights does FSRS have? +
The FSRS-6 model used by Gnoseed (via ts-fsrs) has 21 weights. Gnoseed uses the research-optimized default values rather than training them per user.
Is FSRS better than SM-2? +
FSRS is typically more accurate because it explicitly models the forgetting curve, hitting target retention with fewer reviews. SM-2 is simpler and needs no parameters at all. Gnoseed offers both — you can switch in Settings.
Meet SM-2, the transparent classic
SM-2 is the simple, battle-tested scheduler that needs no data. See the three values it tracks and the formula behind it.
