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.
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.
The loop looks familiar, but the update step fits a memory model instead of a single rule.
The card appears. You pick an answer from the options.
Your correctness and speed map to one of four ratings — Again, Hard, Good or Easy.
The optimized weights recompute difficulty, stability and retrievability from that rating.
The next interval is the time until predicted recall falls to the retention goal (90% by default).
FSRS tracks three memory variables per card, plus the global weights and a retention target.
The intrinsic hardness of a card. Higher difficulty dampens how fast stability can grow, so tough cards keep coming back more often.
The 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.
The probability you could recall the card right now. It decays along a power-function forgetting curve as time passes since the last review.
The trainable parameters of the model (FSRS-6). Gnoseed uses the research-optimized defaults; they govern exactly how D and S update after each rating.
The recall probability FSRS targets when choosing intervals. Gnoseed uses the 90% default — lower means fewer reviews and more forgetting; higher means more reviews.
# 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.
Gnoseed runs FSRS-6 with its 21 optimized default weights and a 90% retention target — no per-user training or setup required.
Your multiple-choice correctness and speed map onto Again / Hard / Good / Easy, so you never grade manually.
By tracking stability and difficulty per card, FSRS aims for its retention target with fewer reviews than a fixed-rule scheduler.
Settings lets you switch to SM-2. Switching resets card scheduling — your streak and review count stay.
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 |
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.
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.
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.
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.
SM-2 is the simple, battle-tested scheduler that needs no data. See the three values it tracks and the formula behind it.