Tooling

FSRS — Modern SRS Scheduling

Free Spaced Repetition Scheduler — the open algorithm that replaced SM-2 in Anki, ports for other tools.

The 2024 algorithmic upgrade. FSRS (Free Spaced Repetition Scheduler) is the open-source scheduler that replaced Anki's classic SM-2 default and meaningfully reduces review burden. This page covers what it is, why it matters for language learners, and the ecosystem of ports.

Cross-links: Anki Deep · Edu / Spaced Repetition · Shared Decks.

What FSRS is

A 17-parameter learnable model of forgetting (vs SM-2's hand-tuned 6-parameter heuristics). Trained on millions of real Anki review logs by Jarrett Ye and contributors. Predicts the optimal next-review interval to hit a target retention.

Why language learners care

  • ~30% fewer reviews for the same retention vs SM-2. With a 5000-card frequency deck this saves hours per month.
  • Per-deck retention target — set 0.9 for a frequency deck, 0.95 for high-priority cards (medical, work-critical), 0.85 for low-stakes (lookup-only kanji).
  • Optimised parameters per deck — Anki can re-train FSRS on your own review history (Tools → FSRS → Optimize) for personalised scheduling.

How to enable in Anki

  1. Update Anki to 24.04+ (FSRS is default for new decks; opt-in for existing).
  2. Deck Options → FSRS toggle.
  3. Set Desired Retention: 0.9 (default; research-recommended).
  4. Click "Optimize FSRS parameters" once you have ~200 reviews logged. Re-run every few months.

FSRS retention rate — what it means

You set a target retention (e.g. 0.9). FSRS schedules reviews so that, on average, you recall 90% of cards when due. Higher = more reviews, fewer forgotten. Lower = fewer reviews, more forgotten. 0.9 is the research-recommended sweet spot — going to 0.95 nearly doubles review count for a small retention gain.

FSRS variants

  • FSRS-4.5 / FSRS-5 / FSRS-6 — version progression. Anki ships the latest. FSRS-6 (2024) added short-term memory dynamics.
  • FSRS-rs — the Rust implementation embedded in Anki itself.
  • py-fsrs — Python library; embed in your own SRS app.
  • fsrs.js / ts-fsrs — JavaScript / TypeScript ports.
  • fsrs-go, fsrs-cpp, fsrs-swift — community ports.

Tools beyond Anki adopting FSRS

  • Anki — default since 24.04.
  • AnkiDroid — synced FSRS support.
  • AnkiMobile — synced FSRS support.
  • Mochi — FSRS support shipped 2024.
  • RemNote — FSRS support shipped 2024.
  • Lute — FSRS optional for vocab cards.
  • Migaku — FSRS support.
  • Mnemosyne — community fork supports FSRS.
  • SiYuan / Logseq Cards — FSRS plugins exist.

If your SRS doesn't support FSRS in 2026, it's behind.

SM-2 vs SM-17 vs FSRS — quick comparison

  • SM-2 (1985) — Anki's classic algorithm; SuperMemo-2 era; hand-tuned constants. Solid baseline; what every learner used for decades.
  • SM-17 / SM-18 (SuperMemo) — proprietary; the closed-source latest in SuperMemo World's paid app. Reportedly excellent; only Wozniak knows the parameters.
  • FSRS — open source; trained on real data; matches or beats SM-17 in published comparisons. The free / OSS / "we have it at home" answer to SuperMemo.

Practical tips for language decks

  • Mature cards interval cap: don't cap. Let FSRS push to 5+ years for over-learned vocabulary.
  • Re-optimise quarterly if you're reviewing daily — your forgetting curve drifts.
  • Suspend, don't delete — keep review history for FSRS.
  • Don't mix decks with very different retention targets — easier to keep separate Anki decks per use-case (vocab vs grammar vs cloze).

Honest limits

  • FSRS still requires honest grading. "Hard / Good / Easy" pressed reflexively defeats it.
  • For brand-new cards (no history), FSRS uses defaults; the first ~50 reviews aren't yet personalised.
  • Truly unique-shape decks (e.g. type-the-answer cloze vs recognition cards mixed) confuse the model — separate them.

Pick this if…

  • You use Anki for languages: FSRS is on. If not, turn it on now.
  • You're building your own SRS app: use py-fsrs / ts-fsrs / fsrs-rs. Don't roll SM-2.
  • You need a closed-source-quality scheduler for free: FSRS is the answer.
  • You hate the math: ignore everything; the default 0.9 is tuned for normal humans.

On this page