Skip to content
All posts
spaced repetitionFSRSalgorithmsstudy tips

FSRS vs SM-2: Why Your Flashcard App Is Using a 40-Year-Old Algorithm

Imdad Ismail||8 min read

In 1987, a Polish researcher named Piotr Wozniak sat down at his DOS computer and wrote an algorithm to schedule flashcard reviews. He called it SM-2. It was a genuine breakthrough at the time. Cards you got right would come back later. Cards you got wrong came back sooner. Simple and effective.

That algorithm went on to power SuperMemo, then Anki, then basically every spaced repetition app on the market. For 35 years.

Think about that. The algorithm deciding when you see your flashcards is older than most people using them. It was designed before the Berlin Wall fell, before the World Wide Web existed, before anyone had heard the phrase "machine learning."

What SM-2 actually does

SM-2 works like this: you rate a card from 0 to 5, and the algorithm multiplies your current interval by a fixed "ease factor." That factor goes up when you rate cards well, and drops when you fail them. The formula is straightforward:

new_interval = old_interval * ease_factor

That's it. There's a bit of extra logic for new cards and lapses, but the core is multiplication by a single number. The algorithm has no concept of how memory actually works. It doesn't model forgetting. It doesn't account for the fact that difficulty and stability are different things. It just multiplies.

The most infamous problem with SM-2 is "ease hell." When you fail a card a few times, the ease factor drops so low that the card comes back almost every day, forever. You end up reviewing easy material constantly while hard cards pile up. Anki users have written entire forum threads about this. Some maintain custom add-ons just to work around it.

Enter FSRS

FSRS stands for Free Spaced Repetition Scheduler. It was created by Jarrett Ye in 2022, and it takes a completely different approach. Instead of one ease factor, FSRS models three separate variables for each card:

  • Stability: how many days until your recall probability drops to 90%. A card with stability of 30 means you have a 90% chance of remembering it after 30 days.
  • Difficulty: a number from 1 to 10 representing how hard the card is for you, specifically.
  • Retrievability: your probability of recalling the card right now, based on how long it's been since you last saw it.

The math behind this is a forgetting curve formula:

R(t, S) = (1 + t/(9*S))^(-0.5)

where t is elapsed days and S is stability. This equation is fitted to actual review data using machine learning. The 19 weight parameters are trained on millions of real reviews from real students.

The practical difference

In a benchmark across 10,000+ users, FSRS predicted recall probability with a mean absolute error of about 4%, compared to roughly 14% for SM-2. That means when FSRS says you have a 90% chance of recalling a card, you probably do. When SM-2 says the same thing, it could easily be 76% or 100%.

What does that mean day-to-day? Fewer wasted reviews. SM-2 will sometimes show you a card you'd easily remember for another two weeks, just because the ease factor is conservative. FSRS knows the card is stable and waits. On the flip side, SM-2 might delay a genuinely fragile card because it hasn't lapsed recently enough to trigger a shorter interval.

In concrete numbers: students who switched from SM-2 to FSRS in Anki reported roughly 20-30% fewer daily reviews with the same or better retention. That's not a marginal improvement. If you review 200 cards a day, that's 40-60 fewer cards. Over a semester, that's dozens of hours back.

Why hasn't everyone switched?

Inertia, mostly. SM-2 is familiar. It works "well enough" for many people. Anki added native FSRS support in version 23.10, but it's not the default. You have to opt in.

There's also a comfort factor. SM-2 is dead simple to understand. You can explain it to someone in two minutes. FSRS involves differential equations and optimized weight vectors. Even if you trust the output, the black-box feeling bothers some users.

And honestly, for casual use -- reviewing 20 cards a day, no exams on the horizon -- SM-2 is fine. The gap only starts to hurt when you're dealing with thousands of cards, tight retention targets, and limited study time. Which is exactly the situation most medical, law, and engineering students find themselves in.

What Imprimo does differently

Imprimo uses FSRS v5 from day one. There is no SM-2 mode. The algorithm runs natively through a Rust implementation for speed and cross-platform consistency.

But we also added some things you won't find in a stock FSRS setup:

  • Per-deck parameter optimization. Your anatomy cards and your pharmacology cards probably have very different difficulty distributions. Imprimo can train separate FSRS parameters for each deck.
  • Smart interleaving. New cards are mixed into your review queue at a 1:5 ratio with due reviews. This prevents the "only new cards" or "only reviews" problem.
  • Daily limits that make sense. 50 new cards, 200 total reviews. The day boundary is at 4 AM, not midnight, because nobody finishes studying at exactly 11:59 PM.

The algorithm is only part of the story, of course. But it's the foundation. Get the scheduling wrong and everything else -- the UI, the AI generation, the offline sync -- doesn't matter because you're wasting time on cards you don't need to see.

Bottom line

SM-2 was a great algorithm. In 1987. Using it in 2026 is like using MapQuest when your phone has GPS. Both will technically get you to the destination, but one of them accounts for traffic, construction, and the fact that you missed your exit five minutes ago.

FSRS is that GPS. It's not perfect, and it'll keep getting better as more review data feeds into the model. But it's already measurably, provably superior to the algorithm most flashcard apps still ship as their default.

Your brain deserves better than multiplication by a constant.

ready to try it?

Study smarter with Imprimo

FSRS algorithm. AI-generated cards. Offline-first.

Download on App Store