Skip to content

The SM-2 algorithm

SM-2 is the spaced repetition algorithm Piotr Woźniak wrote for SuperMemo, first used in December 1987. After each review you grade your answer from 0 to 5, and the next interval is the previous one multiplied by an ease factor that your grades adjust.

In short

  • SM-2 reviews a new item after 1 day, then after 6 days, then multiplies the last interval by the item's ease factor (EF), which starts at 2.5.
  • Each answer is graded 0–5. A 5 raises the EF, a 4 leaves it unchanged, lower grades reduce it, and it never drops below 1.3.
  • A grade below 3 restarts the item at 1 day; anything graded below 4 is repeated the same day.
  • SM-2 has no model of how likely you are to remember an item. Later SuperMemo versions and FSRS added one; Anki still offers a modified SM-2.

What is the SM-2 algorithm?

SM-2 is the scheduling rule of the first spaced repetition program, SuperMemo 1.0 for DOS, which Piotr Woźniak wrote in Turbo Pascal and started using on 13 December 1987.[2] SuperMemo versions 1.0 to 3.0 used it until March 1989.[2] The name comes from SuperMemo 2, the version that made the algorithm known; there was never an SM-1.[2]

Woźniak published the full algorithm in his 1990 master's thesis at the University of Technology in Poznań.[1] Because the description is short and public, many flashcard apps adopted it, and Anki's long-standing scheduler is based on it.[4]

How does SM-2 work, step by step?

SM-2 gives every item its own ease factor and grows its intervals by that factor after each successful review. Woźniak's description has seven steps:[1]

  1. Split the knowledge into the smallest possible items.
  2. Give every item an E-Factor (EF) of 2.5. The EF reflects how easy the item is to remember.
  3. Review the item 1 day after learning it, then 6 days later, then after the previous interval multiplied by the EF. Round fractional intervals up to a whole day.
  4. After each review, grade your answer from 0 to 5: 5 perfect; 4 correct after a hesitation; 3 correct but recalled with serious difficulty; 2 wrong, but the answer seemed easy once shown; 1 wrong, but the answer was remembered once shown; 0 complete blackout.
  5. Update the item's EF with the formula below.
  6. If the grade was below 3, start the item's reviews again from the 1-day interval, without resetting its EF.
  7. At the end of each day's session, repeat every item graded below 4 until it gets at least a 4.

What is the SM-2 ease factor formula?

After each review, SM-2 adds to the EF an amount that depends only on the grade q, then keeps the result at 1.3 or above. Woźniak published it in this form, where I(n) is the interval in days after the n-th review:[1]

I(1) := 1
I(2) := 6
I(n) := I(n-1) * EF        for n > 2

EF' := EF + (0.1 - (5 - q) * (0.08 + (5 - q) * 0.02))
if EF' < 1.3 then EF' := 1.3

In words: a perfect answer adds 0.1 to the ease factor, a hesitant correct answer changes nothing, and each grade below 4 subtracts more than the one above it:

  • Grade 5: +0.10
  • Grade 4: 0
  • Grade 3: −0.14
  • Grade 2: −0.32
  • Grade 1: −0.54
  • Grade 0: −0.80

Woźniak says he built the formula by trial and error. He added the 1.3 floor because items with lower factors came up annoyingly often and usually turned out to be badly worded.[1]

What does an SM-2 schedule look like in practice?

With mixed grades, one item's intervals grow from 1 day to about a month within three months, with one restart after a failure. The table follows a single item through seven reviews:

ReviewWhenGradeEF after reviewNext interval
LearnedDay 0–2.51 day
1Day 142.56 days
2Day 752.616 days (6 × 2.6 = 15.6)
3Day 2332.4640 days (16 × 2.46 = 39.36)
4Day 6322.141 day (restart)
5Day 6442.146 days
6Day 7052.2414 days (6 × 2.24 = 13.44)
7Day 8442.2432 days (14 × 2.24 = 31.36)
Each interval multiplies the previous whole-day interval by the EF updated at that review, rounded up. Same-day repeats of items graded below 4 are left out.

Implementations differ on two details that Woźniak's text leaves open. Some multiply by the EF from before the current review's update, which changes the numbers slightly. And on a failed review, step 5 updates the EF while step 6 says to restart “without changing” it; the example reads step 6 as “do not reset the EF to 2.5”, so the grade 2 still lowers it from 2.46 to 2.14.[1]

What happens when you fail an item in SM-2?

A grade below 3 sends the item back to the start: it is reviewed again after 1 day, then 6 days, then with the EF multiplier.[1] Its earlier intervals are not kept, so a card you knew for a year restarts at 1 day.

Grades of 3 also have a cost, even though they count as correct: they lower the EF, and, like failures, they send the item back into the same day's session until you answer it with a 4 or 5.[1]

What are the weaknesses of SM-2?

SM-2's main weaknesses come from its simple rules: the ease factor falls easily but rises slowly, the first intervals are the same for everyone, and nothing in it estimates how likely you are to remember.

  • Ease that only goes down. Only a perfect 5 raises the EF, and by just 0.1, while a single failure removes 0.32 to 0.8. An item that was hard once can stay on short intervals long after you have learned it. Anki's documentation calls this complaint “low interval hell”; Anki users often call it “ease hell”.[4]
  • Fixed first intervals. Every item gets 1 and 6 days, whether it is easy or hard and whoever is learning it.[1]
  • No model of memory. SM-2 does not estimate the probability that you can recall an item, so it cannot aim for a target level of retention or account for a review done late. It only multiplies intervals.
  • Hand-tuned constants. The starting EF, the formula and the floor were set by trial and error, not fitted to review data.[1]

Anki uses a modified version: four answer buttons instead of six grades, adjustable learning steps for new cards, and ease changes in percentage points rather than Woźniak's formula.[4] See the Anki algorithm for the details.

What came after SM-2?

SuperMemo replaced SM-2 in 1989 with SM-4, which adjusted its intervals from the learner's results instead of using fixed rules.[3] Later versions went further: SM-17 is based entirely on a model of memory with two components, stability and retrievability.[3] The history of the SuperMemo algorithms covers each step.

Outside SuperMemo, the main successor is FSRS (Free Spaced Repetition Scheduler). It tracks each card's difficulty, stability and retrievability, and schedules the next review when the estimated probability of recall falls to a retention level you choose.[4] Anki has supported FSRS since version 23.10 as an alternative to its legacy SM-2 scheduler.[5] FSRS vs SM-2 compares the two in detail.

Sources

  1. Woźniak, P. A. (1990). Application of a computer to improve the results obtained in working with the SuperMemo method. In Optimization of learning (master's thesis, University of Technology in Poznań). supermemo.com
  2. Woźniak, P. A. SuperMemo 1.0 for DOS (1987). SuperMemo Guru. supermemo.guru
  3. Woźniak, P. A. History of SuperMemo algorithm. SuperMemo Guru. supermemo.guru
  4. Anki. What spaced repetition algorithm does Anki use? Anki FAQs. docs.ankiweb.net
  5. Anki. Deck options: FSRS. Anki Manual. docs.ankiweb.net