For more than thirty years, most flashcard apps decided when to show a card with SM-2, an algorithm Piotr Woźniak wrote for SuperMemo in 1987. Anki built its scheduler on it in 2006. FSRS, the Free Spaced Repetition Scheduler, is the first replacement to reach a wide audience: Anki has offered it since version 23.10, and FlashLoop schedules every word with it.

Both answer the same question: when should this card come back? They answer it in very different ways. Below is what each one does, where they disagree, and what the difference looks like in days. The FSRS numbers come from FlashLoop's own scheduler, the SM-2 numbers follow Anki's default settings, and both leave out the small random spread that apps add to every date.

How SM-2 schedules a card

SM-2 keeps one number per card besides its current gap: the ease factor. Every card starts at 250%. Once a card has left its first learning steps, the next gap is the last gap multiplied by its ease:

  • Good: the last gap × ease. A 10-day gap becomes 25 days.
  • Hard: the last gap × 1.2, and the ease drops by 15 points.
  • Easy: the last gap × ease × 1.3, and the ease rises by 15 points.
  • Again: the ease drops by 20 points and, with Anki's defaults, the gap starts over at one day after a short relearning step.

The ease never goes below 130%. Those are Anki's numbers; Woźniak's original SM-2 follows the same idea with fixed first gaps of 1 and 6 days.

The rules are simple, and they work. But every number in them (250%, 1.2, 1.3, 15 and 20 points) was chosen by hand, and none of them says how likely you are to remember the card on the day it comes back.

Where SM-2 falls short

It does not know your chance of recall. For SM-2, a 50-day gap is neither too long nor too short. It is just the result of a multiplication. There is no way to tell SM-2 "I want to remember 90% of my cards", because it has no model of memory to aim with.

The ease mostly goes one way. Every Hard and Again takes points away, and only Easy gives them back. Most learners rarely press Easy, so a word that had one bad week can stay on a low multiplier for good. Anki users call this ease hell: the card keeps coming back sooner than it needs to, long after you have learned it.

Forgetting wipes the progress. With Anki's defaults, a lapse resets the gap to one day, whether the word had been safe for a week or for two years.

How FSRS schedules a card

Jarrett Ye released the first version of FSRS in 2022, and the open-spaced-repetition project develops it in the open. Instead of a multiplier, FSRS keeps a small model of your memory of each card: three numbers, which our guide to how FSRS works explains in detail.

  • Stability: how many days until your chance of recalling the card drops to 90%.
  • Difficulty: from 1 to 10, how hard this card is for you.
  • Retrievability: your chance of recalling it right now.

Every answer updates stability and difficulty, taking into account how much time really passed and how likely you were to remember at that moment. Then FSRS picks the day your chance of recall will fall to a target called desired retention. FlashLoop aims for 90%.

FSRS-6, the version FlashLoop runs, has 21 parameters. They are not picked by hand: Anki can fit them to your own review history with machine learning, and an app that does not do that uses the defaults FSRS ships with. The Anki FAQ sums up the result: with FSRS, you need fewer reviews than with SM-2 to reach the same retention.

The same word in both schedulers

A word you keep remembering

Here is one word answered Good every time it is due, from the moment it leaves its learning steps.

Good answer FSRS in FlashLoop SM-2, Anki defaults
1st 2 days 1 day
2nd 11 days 3 days
3rd 46 days 8 days
4th 163 days 20 days
5th 497 days 50 days

After five reviews, FSRS considers the word safe for well over a year. SM-2 is at 50 days and needs three more Good answers (125, 313, then 783 days) to pass that point.

Is FSRS just more aggressive? For words you know, yes, and on purpose. On each of those dates FSRS expects you to still have a 90% chance of recalling the word. SM-2 grows every card by the same multiplier, whether you will never forget the word or are about to.

The first day differs too. FlashLoop uses a single 1-minute learning step, so the first Good on a new word already schedules it two days out. Anki's default steps are 1 and 10 minutes: a new card needs two Good answers on its first day and comes back the next day.

A word that was hard

The same word, but the three reviews after the first one went with effort: Hard, Hard, Hard. Then Good from there on.

Answer FSRS in FlashLoop SM-2, Anki defaults
Good 2 days 1 day
Hard 8 days 2 days
Hard 19 days 3 days
Hard 36 days 4 days
Good 71 days 8 days
Good 134 days 16 days
Good 242 days 33 days

Both schedulers remember that this word gave you trouble. In SM-2, Hard barely moves the gap, and the three Hards cut the ease from 250% to 205%. Every later Good multiplies by 2.05 instead of 2.5, until you press Easy.

In FSRS, Hard is still a successful recall, so the gap grows, only less than it would with Good. Meanwhile the word's difficulty rises from 2.1 to 7.7 out of 10. As with ease in SM-2, only Easy brings it down noticeably. But difficulty does not fix a multiplier: it slows how fast stability grows, and the gap stays tied to how well you actually know the word.

This is also why Hard has to mean "I remembered it, with effort". If the word slipped, press Again. In both schedulers, it is the only answer that brings a word back soon.

A word you forgot

Now a word you knew for about seven weeks and then forgot.

FSRS in FlashLoop SM-2, Anki defaults
Gap before you forgot 46 days 50 days
Again 10 minutes 10 minutes
Good 1 day 1 day
Good 5 days 3 days
Good 12 days 7 days
Good 28 days 16 days

Forgetting is expensive in both. FlashLoop gives a forgotten word one 10-minute look and brings it back the next day, the same start as SM-2. After that, FSRS rebuilds faster: the stability it gives a forgotten word depends on how well the word was known before, while SM-2 has only its ease to go on, and that ease is now 230% for good. In FSRS, the lapse also raises the word's difficulty from 2.1 to 7.4, so it keeps growing more carefully than before.

What FlashLoop adds on top of FSRS

The dates in FlashLoop come from FSRS: the open-source ts-fsrs library with FSRS-6's default parameters. On top of it are a few rules for the minutes right after you meet a word or forget one.

  • One short step. A new word answered Again comes back in a minute, Hard in two. Good hands it to FSRS with a 2-day gap, Easy with about eight days.
  • Today's repeats stay today's. While a word is still in its step, Hard means "show it again" and does not count as long-term progress. A word you had to repeat today comes back tomorrow at the latest after Good.
  • One look after forgetting. A word you knew and forgot gets a single 10-minute step, then FSRS rebuilds its gaps.
  • No surprises. Each button shows its date before you press it. The date is computed by the same code that saves your answer.
  • A little spread. Each date gets a small random spread, so words added together do not keep coming back in one clump.
  • The word, not the sentence. FlashLoop writes a fresh sentence for every review, and FSRS schedules the word inside it. Rate how well you recalled that word; the rest of the sentence does not count.

FlashLoop keeps desired retention at 90% and does not fit the parameters to your own history yet. A new account has no history to fit them to, and the defaults are a better start than numbers picked by hand.

Which one should you use?

If you study in Anki, FSRS is a switch in the deck options of Anki 23.10 and later. Whichever app you use, rate honestly: Again when you did not recall the word, Hard only when you did, with effort.

If you are building vocabulary in a new language, FlashLoop runs FSRS for you. It shows every date before you press a button, and it writes a new sentence for each review, so you recall the word itself rather than a card you have memorised.