Every module's retention follows the Ebbinghaus forgetting curve: it decays exponentially from the moment of last review, governed by a memory-strength constant S (in days). Once retention falls to the review threshold, the module is "due" — click it and grade your recall. SM-2 turns that grade into a new ease factor EF and a next interval I, and each successful review multiplies S so the curve flattens and the module stays above threshold for longer.
R(t) = e^(−t / S)
EF' = EF + (0.1 − (5−q)·(0.08 + (5−q)·0.02)) [q = grade 0..5]
Again (q<3): reps=0, I=1, S resets low
Good/Easy (q≥3): reps+=1, I = I·EF', S = S·EF'
- Days per second — how fast simulated time advances; pause it to grade a due card without more time passing.
- Review threshold — the retention level, in %, at which a module is flagged due; a lower threshold lets more forgetting happen before the next review.
- Modules — how many independent courses are tracked at once, each starting with a slightly different initial strength.
- Grade buttons — Again/Hard/Good/Easy feed SM-2's quality score; a low grade resets the review streak, a high grade both lengthens the interval and raises EF for every future review.
Real-world relevance: this queue-and-grade loop is exactly what an LMS spaced-repetition module (Anki, SuperMemo, most flashcard-based course platforms) runs per learner per item — deciding, from your own self-assessed recall, when you'll see this material again.