
Spaced Repetition Algorithms: FSRS vs SM-2 vs SM-18

In 1987, a Polish student named Piotr Woźniak wrote a small Pascal program to schedule his paper flashcards. The algorithm inside that program became SM-2, and almost four decades later, it still runs inside some of the most popular flashcard apps in the world.
A lot has changed since then, though. Woźniak kept improving his algorithm until it became SM-18 and beyond. Then in 2022, a young engineer named Jarrett Ye released FSRS, an algorithm that uses machine learning to learn from your flashcard review history.
All these algorithms fall under the spaced repetition umbrella, and the ones I named are the most widely used.
So if your flashcard app asks you to pick a spaced repetition scheduler, which one should you go with? In this article, we'll explore SM-2, SM-18, and FSRS side by side to make that decision easier. You'll learn a little history about each, an overview of their working, strengths, weaknesses, and unique areas.
Let’s first understand some basics all these algorithms are built on.
Memory variables tracked by spaced repetition algorithms
Spaced repetition algorithms work by guessing the state of your memory for the flashcards you have reviewed. Based on their estimations, they plan the time for the next review of those cards.
Most algorithms track that memory state through three variables:
- Difficulty
- Stability
- Retrievability
SuperMemo's creator, Piotr Woźniak, calls this the DSR model.
However, not all spaced repetition algorithms use this model. For example, SM-2 came out long before this model was fully developed, so it doesn’t use it.
Let’s go through an overview of all three variables.
Retrievability
The retrievability variable measures your probability of recalling a card's answer at any given moment.
Once we have learned something, our ability to retrieve it from memory starts decreasing right away.
To make sure retrievability is always high, it’s important to track it and schedule the next review of low-retrievability flashcards.
Reviewing a flashcard again shoots its retrievability back up to near 100%.
Most spaced repetition algorithms set a target score called desired retention and schedule a card for review as soon as its predicted retrievability falls below that target.
This target is set to 90% by default in most apps. For example, in RemNote, a card becomes due when the system estimates there's a 10% chance you've forgotten it.
SuperMemo does the same but uses the term forgetting index for the idea.
Here’s how each of the three spaced repetition algorithms track or don’t track retrievability:
- SM-2: It doesn’t calculate retrievability. There are other parameters.
- SM-18: It estimates retrievability for every card using the card's full repetition history.
- FSRS: It lets you pick your desired retention in the settings.
Stability
Stability measures how firmly information is stored in your memory. This variable is usually measured in days.
When stability is high, the rate of loss of retrievability is slow.
Piotr Woźniak defines memory stability as “the inter-repetition interval that produces average recall probability of 0.9 at review time.”
According to this definition, a card with a stability of 30 days has a 90% chance of recall 30 days after its last review.
Stability increases with successful recalls of a card. But how much it increases depends on the timing of the review. Reviewing a card too early after its last review has very little impact on stability.
It grows most when you review a card just as you're about to forget its answer.
The reason is that when we exert effort to recall something that’s on the verge of fading, our brain takes that effort as a sign of weak memory that needs strengthening.
Here’s how the three spaced repetition algorithms implement it:
- SM-2: There’s no separate stability value. The card's current interval works as a stand-in for it.
- SM-18 & FSRS: Both algorithms update a card's stability after every review based on its current stability, current retrievability, and difficulty (the third variable).

Difficulty
Increasing stability isn’t an easy thing because every card is different. Some of them are hard to memorize, while others are easy.
Difficulty refers to how hard it is to increase a card’s stability. Since an algorithm can’t tell the difference between a hard and an easy card, it infers a card's difficulty from how you rate it during review. For example, if you rate a card as easy to recall, the system lowers its difficulty. But if you forgot it or struggled to recall it, the algorithm will raise its difficulty.
FSRS and SM-18 use a difficulty variable.
But SM-2 uses an E-factor, which is short for ease. Unlike difficulty, a high E-factor is desirable.
Understanding SM-2
SM-2 is short for SuperMemo-2, and it was written by Piotr Woźniak in December 1987 for his DOS program, SuperMemo 1.0.
Before developing SM-2, Piotr practiced spaced repetition on paper by repeating whole pages of notes at fixed intervals.
Computerizing the spaced repetition method let him do two things that he couldn’t do on paper:
- Schedule every item on its own
- Give harder items shorter time intervals compared to easier ones
Piotr gave away the SM-2 algorithm as freeware in 1991, and many spaced repetition apps still use it.
If you’re wondering what happened to SM-1, there never was an SM-1 (Just like there was never an iPhone 9).
SM-2’s mechanism
The math behind SM-2 is very simple.
It schedules the 2nd review of a card after 1 day. The 3rd review comes after 6 days. Every interval after that is calculated by multiplying the previous interval by the card’s E-factor.
For example, if you have a card with an E-Factor of 2.5. After the first review, the card is scheduled to return after 1 day, then after 6 days. After that, the algorithm multiplies 2.5 (E-factor) by 6 (previous interval) to calculate the next interval, which results in 15 days.
On each review of a card, you grade your answer on a scale of 0 to 5, where 5 means a perfect response and 0 means you couldn’t recall it.
The E-factor adjusts based on this rating. Every new card in SM-2 starts with an E-factor of 2.5. After that, here’s how the E-factor reacts to the 6 rating options:
- 5 rating: Increase in E-factor
- 4 rating: No change
- 0-3 rating: Decrease in E-factor

RemNote uses a modified version of SM-2
SM-2 was written back in 1987, so the apps that implement it today use a modified version of it.
For example, RemNote’s default scheduler, called Anki SM-2, builds on Anki's version with some changes of its own. The biggest of those changes are as follows:
- New cards go through learning phases of 30 minutes, 2 hours, 2 days, etc., before exponential intervals start.
- There are 4 rating options instead of 6
| Rating option | Interval is multiplied by | Change in ease |
| Forgot | 0.1 (card enters relearning) | Down by 20 percentage points |
| Partially recalled | 1.2 | Down by 15 percentage points |
| Recalled with effort | Current ease | No change |
| Easily recalled | Ease × 1.3 | Up by 15 percentage points |
- If you still remember a card several days after it was due, its interval grows more than it otherwise would.
- A small amount of random noise is added to each interval, so cards learned on the same day don't keep showing up together.
- Forgotten cards go into a relearning phase, and their next interval becomes a fraction (10% by default) of the previous one.
The screenshot below shows a flashcard being practiced in RemNote. RemNote automatically generated these flashcards from a YouTube video, and I selected the Anki SM-2 algorithm to practice them.

Weaknesses of SM-2
- There’s no retrievability variable. The algorithm assumes its intervals keep recall at 90% at any given time.
- It sees every user as the same. It doesn’t account for what you’re learning or whether your memory is great or average. If you want a different retention level, you will have to adjust settings like the interval multiplier through trial and error.
- A card can keep coming back far more often than it needs to because most people rate their cards as "Recalled with effort," an option that makes no change to the ease factor.
Understanding SM-18
SM-2 lacked personalization.
So Woźniak started refining it in later versions of the SM series.
For example, in 1989, SM-4 and SM-5 adjusted intervals based on each user's actual performance instead of a fixed formula.
By 2002, SM-11 had arrived, with mechanisms to handle early and late reviews.
Then came SM-17 in 2015, which in Woźniak’s words was “the largest qualitative change in history of spaced repetition.”
SM-17 was the first in line to use a two-component model of memory. The two components were stability and retrievability.
SM-17 morphed into SM-18 by 2019, keeping most of the algorithm intact. The only major change was adding difficulty as the 3rd component of memory.
Before SM-18, SuperMemo algorithms assumed that a card's difficulty stays more or less the same throughout its life. But Woźniak found clear evidence that it doesn't. He found that a card can become easy if you find a mnemonic for it, i.e., you relate it to something you already know. But a new card can also become hard to memorize if it clashes with something you already know.
Woźniak calls this anchoring.
This finding led him to recalculate difficulty after every review in SM-18.
This change gives you the three-component model, which Woźniak calls the DSR model (difficulty, stability, retrievability).
How SM-18 schedules a review
SM-18 runs every card through the following loop.
- It calculates the first interval using a forgetting curve built from how you've performed on new cards in the past.
- It shows you the card when that interval ends.
- It updates the card's difficulty based on your rating.
- It estimates the card's current retrievability and stability.
- It calculates the next interval based on how much the card's stability is expected to grow.
- It updates its memory matrices, which are large tables built from your whole collection that record how stability grows and how recall drops under different conditions.
- It goes back to step 2.
The current status of SM-18
SM-18 has been succeeded by SM-19 and SM-20.
SM-19 calculates better estimates for cards you have forgotten, and SM-20, launched in 2026, uses machine learning to compute its parameters.

Understanding FSRS
FSRS stands for Free Spaced Repetition Scheduler.
FSRS was developed by Jarrett Ye, who mentions in his History of FSRS blog that it was a Reddit comment that challenged him to build the algorithm.
The story goes something like this:
Jarrett Ye used Anki throughout high school and credits it for the grades that got him into a top university in China. He later became a research engineer at MaiMemo, a Chinese vocabulary app, where he published a paper on spaced repetition scheduling at the ACM SIGKDD conference. When he shared the paper on the r/Anki subreddit in August 2022, one commenter dismissed it as one of those “Things that sound cool on paper, and then nobody actually implements them.”
Read the full comment in the screenshot below or on Reddit itself:

Ye took the comment personally and set out to implement his algorithm inside Anki. He completed and released the first stable version of FSRS within a month. The same Redditor later took back his words and went on to become one of the project's most active contributors.
The algorithm
FSRS is inspired by SuperMemo in many ways.
For instance, it borrows the DSR model from SuperMemo to calculate the next review date of a card.
It also drew inspiration from SM-18's difficulty formula for calculating difficulty in FSRS v3.
But what’s unique about it?
Instead of relying on fixed rules, FSRS uses machine learning to learn a set of parameters (called weights) from your entire card review history. But for this system to work, you first need to build enough history of your own. Once your history is long enough, you can activate the optimizer, which goes through every review you've ever done and finds the parameters that would have predicted your memory most accurately.
RemNote supports FSRS as well and recommends a history of at least 1,000 reviews before you activate the optimizer. Before that point, the default weights are more accurate than an optimizer running on too little data.
Another big difference is that FSRS lets you set your desired retention. If you remember, desired retention is the level of retrievability that you want to maintain for cards. You don’t want the retrievability to fall below that point.
Retrievability of recently reviewed knowledge starts at 100% and starts dropping over time.
So, setting a high desired retention means more reviews because the retrievability level hits that point faster than with a lower number.
Desired retention is set at 90% in most apps by default.
But you can set it at 80%, for example, if the topic at hand is less critical.
Similarly, if you're a medical student and can't afford to forget something, you can raise it even higher and study more rigorously.
According to RemNote, FSRS takes 20 to 30% fewer reviews compared to SM-2 to achieve the same level of retention.
FSRS vs SM-2 vs SM-18: Quick comparison
The table below shows a quick side-by-side comparison of the three algorithms:
| Aspect | SM-2 | SM-18 | FSRS |
| Created | 1987 by Piotr Woźniak | 2019 by Piotr Woźniak | 2022 by Jarrett Ye |
| Memory model | Interval and ease (E-Factor) | DSR model (difficulty, stability, retrievability) | DSR model (difficulty, stability, retrievability) |
| Personalization | None. The algorithm follows the same rules for everyone and everything. | Personalizes reviews based on your review history | Uses machine learning on your review history to personalize future reviews |
| Review load | Highest of the three because it can keep bringing well-learned cards after short intervals | Low review load because reviews are scheduled close to the optimal moment | According to RemNote: Requires 20 to 30% fewer reviews than SM-2 for the same retention |
| Late and early reviews | The original SM-2 algorithm assumes every review is on time. But Anki and RemNote add a rule-based bonus for late reviews. | The algorithm adjusts for both early and late reviews. | Adjusts for any review timing using the actual time elapsed and the card's retrievability |
| Data needed | None | Full record of every repetition | Default weights are used in the beginning. But once you have reviewed enough cards, your review history is used to optimize future reviews. |
| Availability | Anki, RemNote (default), Mnemosyne, and a variant in Quizlet | SuperMemo 18 for Windows only. Newer versions use SM-19 and SM-20 | Anki (desktop, iOS, Android), RemNote (beta), and a growing number of other apps |
| Best for | Beginners and people who want predictability | Dedicated SuperMemo users | Most learners |
Which spaced repetition algorithm should you use?
On most spaced repetition apps, only SM-2 and FSRS are available to choose from.
SuperMemo hasn’t open-sourced SM-18 and later models yet. They are only available commercially as part of the official SuperMemo 18 desktop software for Windows.
So you can use SM-18 only through the SuperMemo app.
If you’re using another app, your choices narrow to SM-2 and FSRS.
SM-2 is a better fit in a couple of situations:
- If you’re completely new to spaced repetition, SM-2 suits better because it is more predictable. You will quickly understand why a card got the interval it did, which makes the process easier to trust during the first few weeks.
- You want to customize the settings. In SM-2, you have the freedom to adjust plenty of parameters.
On the other hand, FSRS is a better fit in the following situations:
- You need a lighter review load
- Your study routine is all over the place, e.g., you skip weekends or take breaks during holidays.
- Not everything you want to learn is equally critical, i.e., you can afford lower retention for some material.
Use SM-2 and FSRS in RemNote
SM-2 and FSRS both have their strengths, and as a beginner, you might be confused between the two.
RemNote supports both SM-2 and FSRS, so you can end the debate.

By default, your flashcards are scheduled with SM-2. But you can switch to FSRS v6, the latest version, in the settings.
You can switch it on for all your cards or only for certain documents and folders. That way, you can run both algorithms side by side on different subjects.
RemNote is a note-taking and flashcards app. You can take notes right in the RemNote environment and turn those notes into flashcards in real time. There’s also the option to generate flashcards from uploaded notes and other materials.
If you have an exam coming up, RemNote's exam scheduler adjusts your daily reviews so you're fully prepared on test day. You’ll only have to specify the exam date, and RemNote will create a personalized plan. This feature works across both FSRS and SM-2.
Sign up for RemNote for free and try both algorithms for yourself.
