Skip to content

SuperMemo algorithms

The SuperMemo algorithms are the review schedulers Piotr Woźniak has written for SuperMemo since 1985, from SM-0 on paper to SM-20 in 2026. Each version changed how review intervals are computed, moving from fixed formulas to memory models fitted to the learner's data.

In short

  • Piotr Woźniak designed SM-0, a paper method, in 1985, and SM-2, the first computer version, in 1987. Every later SuperMemo release refined the algorithm.
  • From 1989, SuperMemo learned from each user's results by adjusting a matrix of interval factors, instead of applying one fixed formula.
  • Since SM-17 (2015), SuperMemo models each memory with two variables: stability and retrievability, an idea Woźniak and colleagues published in 1995.
  • SM-2 is still the most copied version because it was published in full and is simple. Anki started from it, and FSRS builds on Woźniak's stability and retrievability model.

Who is Piotr Woźniak and what is SuperMemo?

Piotr Woźniak is a Polish researcher, born in 1962, who studied at Adam Mickiewicz University and Poznań University of Technology. He began working on spaced repetition in the 1980s after struggling to retain what he studied, and created SuperMemo, which he describes as the first computer program to use spaced repetition.[1][2]

SuperMemo is the software that runs his algorithms: version 1.0 ran on MS-DOS in December 1987, and SuperMemo for Windows is still developed today.[2] The algorithms are named SM-0, SM-2 and so on, usually after the SuperMemo version that introduced them. Woźniak's own writing is the main source for their history, so the dates below are his.

How did the SuperMemo algorithm change from SM-0 to SM-20?

The SuperMemo algorithm went through about a dozen major versions, from a fixed paper schedule in 1985 to a model of memory fitted by machine learning in 2026.[3]

AlgorithmYearSuperMemo versionMain change
SM-01985Paper and pencilFixed intervals for pages of 20–40 items
SM-21987SuperMemo 1.0–3.0Ease factor per item, first computer version
SM-41989SuperMemo 4Matrix of optimum intervals that adapts to results
SM-51989SuperMemo 5Matrix of optimal factors instead of intervals
SM-61991SuperMemo 6Optimal factors derived from forgetting curves
SM-81995SuperMemo 8Faster adaptation, using data from SuperMemo 6 and 7 users
SM-112002SuperMemo 11 (SuperMemo 2002)Handles reviews done late or early
SM-152011SuperMemo 15Handles delays of up to 15 years
SM-172015SuperMemo 17First algorithm built entirely on stability and retrievability
SM-182019SuperMemo 18Better stabilization function and item difficulty
SM-192024SuperMemo 19Better estimate of stability after a lapse
SM-202026SuperMemo 20All parameters fitted by machine learning

Years are those of Woźniak's algorithm history.[3] Some software releases came out at a different time: SuperMemo 8 was released in 1997 and SuperMemo 17 in 2016, for example.[2]

What were SM-0 and SM-2?

SM-0 was a paper method that Woźniak began using on 25 August 1985, after three years of experiments on his own learning.[4] He grouped questions into pages of 20 to 40 items and reviewed each page after 1, 7, 16 and 35 days, then doubled the interval each time. Forgotten items were copied onto a new page and started again.[4]

SM-2 moved the method to a computer in 1987 and scheduled each item separately.[5] Each item has an ease factor (E-Factor) starting at 2.5: after intervals of 1 and 6 days, the next interval is the previous one multiplied by the ease factor, which goes up or down with each 0–5 grade. For the full rules and a worked example, see the SM-2 algorithm.

What is the matrix of optimal factors?

The matrix of optimal factors is a table of interval multipliers that SuperMemo adjusts from each learner's grades, introduced with SM-5 in 1989. Each cell holds the factor for one repetition number and one difficulty level (E-Factor): the next interval is the previous one multiplied by that factor.[6] A good grade raises the factor and a poor one lowers it, so the schedule adapts to the learner instead of following the same formula for everyone.[6]

SM-4 had tried the same idea with a matrix of intervals. SM-6 (1991) went further by deriving the factors from forgetting curves, which show the share of items recalled as time passes, recorded for each cell. SM-8 (1995) made the matrix adapt faster to a new user.[3]

What is the two-component model of memory?

The two-component model says that the state of a memory can be described by two variables: stability, how long the memory lasts without review, and retrievability, the probability of recalling it at a given moment. Woźniak, Gorzelańczyk and Murakowski published it in 1995, arguing for two independent components of long-term memory.[7] According to Woźniak, he first proposed the idea in his 1988 master's thesis.[2]

The model changed what the algorithm computes. Instead of tuning an interval factor, SM-17 estimates each item's stability and retrievability from its past reviews and picks the next interval from them. Woźniak later added item difficulty as a third variable.[3] From SM-17 to SM-20, the main change was how much of the model is fitted to the user's data: SM-20, according to Woźniak, is the first version based solely on the theoretical model, with every parameter computed by machine learning.[3] For background on the curve itself, see the forgetting curve.

Why is SM-2 still the most copied version?

SM-2 is the most copied SuperMemo algorithm because Woźniak published it in full and it fits in a few lines of code. He described it in his 1990 master's thesis and put that description online in 1998.[5]

Later versions are harder to reuse. Little detail has been published about the algorithms after SM-5, and SM-2 has been the most popular in other applications.[8] The current SuperMemo algorithm is proprietary and requires a licence, which rules it out for open-source apps such as Anki.[9]

How do Anki and FSRS relate to SuperMemo?

Anki started from SM-2, and FSRS, the newer algorithm Anki also offers, builds on Woźniak's stability and retrievability ideas.

  • Anki. Anki's default scheduler is based on SM-2, with changes such as configurable learning steps and a single “fail” button.[9] See the Anki algorithm.
  • FSRS. The Free Spaced Repetition Scheduler models each card with difficulty, stability and retrievability.[9] Its authors describe it as coming from MaiMemo's DHP model, a variant of the DSR (difficulty, stability, retrievability) model proposed by Woźniak.[10] Unlike SuperMemo's recent algorithms, FSRS is open source. See the FSRS algorithm.

For a side-by-side comparison of these schedulers, see the algorithms hub.

Sources

  1. Piotr Woźniak (researcher). Wikipedia. Retrieved 8 November 2026. https://en.wikipedia.org/wiki/Piotr_Woźniak_(researcher)
  2. Woźniak, P. History of SuperMemo. super-memory.com. https://www.super-memory.com/english/history.htm
  3. Woźniak, P. History of SuperMemo algorithm. supermemo.guru. https://supermemo.guru/wiki/History_of_SuperMemo_algorithm
  4. Woźniak, P. SuperMemo: First experiments (1982–1985). super-memory.com. https://super-memory.com/english/ol/beginning.htm
  5. Woźniak, P. (1990). SuperMemo 2: Algorithm. From Optimization of learning, master's thesis, Poznań University of Technology; web version 1998. https://super-memory.com/english/ol/sm2.htm
  6. Woźniak, P. (1990). Algorithm used in SuperMemo 5. From Optimization of learning, master's thesis, Poznań University of Technology. https://super-memory.com/english/ol/sm5.htm
  7. Woźniak, P. A., Gorzelańczyk, E. J., & Murakowski, J. A. (1995). Two components of long-term memory. Acta Neurobiologiae Experimentalis, 55(4), 301–305. https://doi.org/10.55782/ane-1995-1090
  8. SuperMemo. Wikipedia. Retrieved 8 November 2026. https://en.wikipedia.org/wiki/SuperMemo
  9. Anki Manual. What spaced repetition algorithm does Anki use? https://docs.ankiweb.net/faqs/what-spaced-repetition-algorithm
  10. Open Spaced Repetition. Free Spaced Repetition Scheduler. GitHub. https://github.com/open-spaced-repetition/free-spaced-repetition-scheduler