What is FSRS? The Free Spaced Repetition Scheduler Explained
If you have used Anki, Mochi, RemNote, or any serious flashcard app in the last few years, you have probably seen the letters “FSRS” appear in a settings panel. Most users click past it. This article explains what FSRS actually is, why it matters, and why it is quietly the biggest improvement to spaced repetition since SuperMemo shipped SM-2 in 1987.
FSRS stands for the Free Spaced Repetition Scheduler. It is an open-source algorithm that decides when you should review a flashcard, based on what it has learned about your memory. It is free in two senses: it costs nothing, and its source code is published under a permissive license so anyone can inspect or improve it.
The TL;DR for Mandarin learners: FSRS reduces the number of reviews you need while keeping the same recall rate. For a vocabulary-heavy language like Chinese, where 3,000 words is the bare minimum for fluency, that saving matters.
The spaced repetition problem
Spaced repetition rests on a simple observation: if you review a card at exactly the moment you are about to forget it, you remember it for longer. Review too early and you waste time. Review too late and you have to relearn the card from scratch.
The hard part is predicting that “about to forget” moment thousands of times, across thousands of cards, when every word behaves differently. Hanzi like 的 (de) behave very differently from rare measure words like 艘 (sōu, classifier for ships). A naive schedule that treats every card identically will over-review easy cards and under-review hard ones.
A good spaced repetition algorithm has to do three things:
- Track how likely you are to recall each card right now.
- Adjust that estimate every time you review the card.
- Pick the next review date so the recall probability lands near a target (usually 90 percent).
SM-2, FSRS, and the Leitner system are three different answers to that same problem.
SM-2: the 1987 algorithm Anki shipped with for decades
In the mid-1980s, Piotr Wozniak - a Polish-Canadian student with a passing interest in efficient learning - sat down and tried to formalise the intuition behind his SuperMemo software. The result was SM-2, published in 1985 and refined through 1987.
SM-2 has three ingredients:
- An “easiness factor” for each card, starting at 2.5.
- A four-button rating (Again, Hard, Good, Easy) that nudges the easiness factor up or down on every review.
- A simple interval rule: the next interval is roughly the previous interval multiplied by the easiness factor, capped and floored to stay within sensible bounds.
When you press Again, the easiness drops and the interval shrinks aggressively. When you press Easy, both grow. It is elegant, easy to implement, and surprisingly effective.
The problem is that SM-2 is, in the words of FSRS researchers, “pretty arbitrary.” It does not actually model the shape of the forgetting curve. It does not differentiate between a card you have seen ten times and one you have seen a hundred. It has no concept of how hard a card is, only how recently you got it wrong. And its intervals were calibrated on one person’s review history in the 1980s - not yours.
For decades, this was fine. SM-2 was good enough. Then FSRS arrived.
FSRS: a modern, open-source, free replacement
FSRS was created by Jarrett Ye, then an undergraduate, who published a paper formalising the algorithm in 2022 and shipped a working Anki add-on the same year. The project is now maintained under the open-spaced-repetition GitHub organisation, with implementations in Rust, TypeScript, Go, Python, Dart, Swift, and several other languages. The core library is MIT licensed, which means you can read every line and fork it for your own app.
The headline claim of FSRS, validated against real review logs in the A/B benchmarks published by the FSRS team and Anki’s documentation, is straightforward: for the same target retention rate, FSRS users do noticeably fewer reviews per day than SM-2 users. The exact saving depends on your deck and history, but the published number is roughly 20 to 30 percent fewer reviews for the same recall.
That sounds modest until you remember that this is for the rest of your life, every day, for every language you study.
How FSRS models the forgetting curve
The reason FSRS does more with fewer reviews is that it actually models how human memory decays, instead of pretending memory is a simple multiplier.
Every card in FSRS has three numbers:
| Symbol | Name | Meaning |
|---|---|---|
| D | Difficulty | Inherent “hardness” of the card, on a 1-10 scale. |
| S | Stability | How many days until recall probability drops to 90%. |
| R | Retrievability | Current probability that you recall this card today. |
These three values form the card’s “memory state.” When you press Again, stability collapses and difficulty climbs. When you press Easy, stability grows fast. R is recomputed every time you open the app and decays smoothly toward zero as the next review approaches.
The clever part is the parameter fit. The first few dozen reviews use FSRS’s default 21 parameters, which were trained on tens of millions of reviews shared by Anki users who opted in. After a few weeks, FSRS switches to a model fitted to your history using maximum likelihood estimation and stochastic gradient descent. The algorithm literally learns your memory.
This is also why FSRS handles “delayed reviews” (where you come back after a week off) more gracefully than SM-2. SM-2 just keeps multiplying by 2.5. FSRS recalculates R from the actual elapsed time and re-optimises the schedule from there.
It is worth pausing on what “free” means in this context. Free is not just the price tag. Free means:
- The algorithm is open source under MIT.
- The reference implementation ships as the
free-spaced-repetition-schedulerRust crate, with first-class ports to Dart, TypeScript, and Python. - The research and benchmark data are published openly, not locked behind a subscription or a corporate blog.
- You can run it offline, ship it inside a mobile app, and modify it without asking anyone’s permission.
For an app like ReadDeck, which schedules thousands of Mandarin vocabulary cards per user, the freedom to embed FSRS directly in the binary - with no server, no API key, no telemetry - is exactly the right shape.
FSRS vs SM-2 vs Leitner: at a glance
The Leitner box system is the granddaddy of spaced repetition, popularised by the German journalist Sebastian Leitner in 1972. Cards move between physical boxes based on whether you got them right. SM-2 replaced crude boxes with numeric ease factors. FSRS replaces ease factors with a real memory model.
| Dimension | Leitner (1972) | SM-2 (1987) | FSRS (2022+) |
|---|---|---|---|
| Memory model | None - fixed buckets | Easiness factor multiplier | D / S / R memory state |
| Personalisation | None | Per-card, but formula fixed | Per-card, plus per-user parameters |
| Handles delayed reviews | No - boxes reset | Poorly | Yes, recalculates from elapsed time |
| Target metric | Bucket transition | Implicit (intervals) | Explicit retention (e.g. 90 percent) |
| Open source | N/A (paper) | Varied by app | Yes, MIT, multi-language ports |
| Reviews to reach 90 percent recall | Many | Many | Roughly 20-30 percent fewer |
| Best for | Casual learners, paper | General-purpose flashcarding | Vocabulary-heavy languages, large decks |
Pick the algorithm that matches the cost of getting a card wrong. For a quick-fire definition deck, even a Leitner box will do. For 3,000 Mandarin characters, FSRS earns its keep within a month.
How FSRS was added to Anki (timeline)
The journey from Jarrett Ye’s initial paper to a built-in option in the default Anki install took just over a year:
- 2022 (mid). Jarrett Ye publishes the first FSRS paper on arXiv and releases an Anki add-on called FSRS Helper.
- 2022 (late). The add-on gains traction in the Anki subreddit and forums; benchmarks against SM-2 are published openly.
- 2023 (early). Rust core (
ts-fsrs,rs-fsrs) lands; ports to Dart, Go, TypeScript, Python, and other languages follow. - November 2023 - Anki 23.10. FSRS becomes a built-in option (not the default). Users can opt in via the deck options screen and run an “optimise” pass to fit parameters to their own history.
- 2024-2025. FSRS-5 ships, refining the forgetting curve from a pure exponential to a power function that fits observed data more faithfully. Anki adds FSRS-5 support in subsequent releases.
- 2026. FSRS is the recommended scheduling algorithm in most third-party guides; SM-2 remains the default only for users who have never switched.
You do not need to be an Anki power user to benefit. Enabling FSRS in Anki 23.10 or later is a checkbox in Deck Options - Scheduling.
How ReadDeck uses FSRS for Mandarin vocabulary
ReadDeck is the offline Mandarin reader we ship. The flashcard surface inside the reader schedules every word you mark as Unknown - including example sentences pulled from the lesson you just read - using an embedded FSRS scheduler.
Why FSRS specifically, and not SM-2 or a hand-rolled interval:
- Mandarin is a high-card-count language. A reasonable goal is HSK 5 (about 2,500 words) plus another 1,000 words for fluency. A scheduler that wastes 25 percent of your reviews on easy common characters like 我 (wǒ) is genuinely expensive.
- The deck shape is lopsided. Frequency drops steeply after the top 500 words. You see 的一千 times more often than 艘. SM-2 treats them identically; FSRS does not.
- Mobile review sessions have to be short. FSRS’s daily-review prediction lets ReadDeck surface a small, high-value batch each morning instead of an overwhelming backlog.
- Offline-first matters. Because FSRS is a small Rust core, we embed it in the binary. No scheduler call leaves the device.
The audio companion listens for the same words when you read aloud, and the same memory state drives both surfaces. Words you struggle to pronounce - or that the speech recogniser flags as uncertain - get scheduled sooner, in line with FSRS’s retrievability update.
Should you switch to FSRS? (yes - here is how)
If you are already using Anki or a similar app, switching is low risk and high reward:
- Upgrade to a recent Anki version. Anything from 23.10 onward has FSRS built in.
- Open Deck Options - Scheduling. Switch the algorithm from SM-2 to FSRS.
- Run “Optimise” once you have at least 1,000 review logs. FSRS will fit parameters to your specific history.
- Choose a target retention. 0.85 to 0.9 is a sensible default for Mandarin vocabulary. Lower if you want fewer daily reviews; higher if you want maximum recall.
- Keep going. The algorithm gets sharper with every review.
If you are starting a new deck, there is no reason to use anything else. FSRS is the modern, free, open-source default. SM-2 is the legacy fallback. The Leitner box is a charming museum piece.
The spaced repetition community has more detail in the FSRS hub, including benchmark numbers, migration tips, and version-by-version notes.
FAQ
Is FSRS better than SM-2?
For most users, yes. The benchmarks published by the open-spaced-repetition team show FSRS reaches the same target retention with 20 to 30 percent fewer daily reviews. The gap widens as your deck grows, because FSRS personalises per card and per user.
Is FSRS free?
Yes. The reference implementation is MIT licensed and the paper is published openly. There is no subscription, no API key, and no server dependency. You can embed it in a commercial app, fork it, or audit every line of the scheduler.
When did FSRS get added to Anki?
FSRS became a built-in option in Anki 23.10, released in November 2023. It was an opt-in addition rather than the default, and the default changed in subsequent releases as FSRS-5 stabilised.
Does FSRS work for Mandarin Chinese?
It works well for any deck, but Mandarin is one of the strongest cases for switching. The vocabulary curve is long, the characters are dense, and the easy/common cards dominate. FSRS’s per-card memory model cuts the wasted reviews on those easy cards and brings the rare ones back at the right moment.
Do I need to relearn my cards when switching from SM-2 to FSRS?
No. The historical review history is preserved and FSRS uses it to fit its initial parameters. You will see intervals change on the first day, but the underlying memory state carries over.
Try FSRS without the spreadsheets
Configuring FSRS in a generic flashcard app is fine, but it is not what most Mandarin learners actually want to do with their evening. ReadDeck embeds FSRS inside a Mandarin-first reader, so every paragraph you read, every sentence you listen to, and every card you review shares one scheduler that knows your real memory.
Open ReadDeck and let FSRS decide what you should review tomorrow. If you want to see how your retention stacks up against the official HSK pass mark, HSK Quiz runs free adaptive mocks that grade your recall in real time.
