Spaced repetition explained — A complete guide
Spaced repetition is a powerful learning technique that schedules reviews of information at increasing intervals to exploit the brain’s natural forgetting process and maximize long-term retention while minimizing study time. This article provides a deep dive: history, cognitive foundations, algorithmic approaches, practical workflows, examples, common pitfalls, current research, and future directions.
Table of contents
- What is spaced repetition?
- Brief history and lineage
- Theoretical foundations (why it works)
- Key concepts and metrics
- Algorithms and scheduling strategies
- Leitner system
- SM-2 (SuperMemo) and variants
- Modern probabilistic/adaptive models
- Pseudocode / Python example
- How to build effective spaced-repetition cards
- Card types and templates
- Card-writing principles and examples
- Workflows and settings (language, medicine, coding, exams)
- Measuring success, tuning, and optimization
- Limitations and criticisms
- Current state of the field and research highlights
- Future directions and innovations
- Practical checklist and recommended starter settings
- References and further reading
What is spaced repetition?
- Definition: Spaced repetition (SR) is a study method that schedules reviews of memoranda at systematically increasing intervals. The goal is to prompt retrieval before forgetting completes, strengthening memory traces while using fewer reviews than massed practice.
- Core idea: Instead of repeated, immediate rehearsal (cramming), spread reviews over time so memory consolidates and reconsolidates efficiently.
Brief history and lineage
- Hermann Ebbinghaus (1885): Classic experimental work on memory and the forgetting curve—first systematic demonstration that memory decays over time and that distributed practice increases retention.
- Pimsleur method (1960s): Applied graded-interval language learning schedule derived from practical observations.
- Sebastian Leitner (1970s): Popularized a practical flashcard system using boxes to space reviews (the Leitner system).
- Piotr Woźniak / SuperMemo (1980s–1990s): Introduced computer-implemented algorithms (SM family) that operationalized spacing intervals and “ease” factors; led to SM-2 algorithm and later refinements.
- Modern tools: Anki (2006) and other apps (Memrise, Quizlet with SR features) democratized SR. Research and machine-learning models later sought to optimize scheduling.
Theoretical foundations (why spaced repetition works)
Multiple cognitive mechanisms explain SR’s effectiveness:
- Spacing effect: Distributed practice yields better retention than massed practice (Ebbinghaus and many subsequent studies).
- Retrieval practice / testing effect: Actively retrieving information strengthens memory more than passive review (Karpicke & Roediger).
- Encoding variability / contextual variability: Revisiting material in different contexts or times provides more retrieval cues.
- Desirable difficulties: Challenging retrieval enhances encoding and long-term retention (Bjork).
- Reconsolidation: Reactivating memories followed by restabilization strengthens traces.
- Interference reduction: Spacing reduces retroactive and proactive interference compared to dense learning.
- Cognitive models: Forgetting often modeled by exponential or power functions; scheduling aims to time reviews when recall probability drops to a target.
Key concepts and metrics
- Interval: Time between reviews of a given item.
- Ease factor (EF): Item-specific multiplier that adjusts how quickly intervals grow.
- Repetition count (n): How many consecutive successful recalls an item has had.
- Quality score: Subjective rating after a review (0–5 in SM-2), used to update EF and intervals.
- Retention target / forgetting index: The desired probability of recall at the next review (common targets: 80–90%).
- New cards per day / review load: Practical control parameters for daily workload.
- Maturity / stability: How robust an item’s memory trace is (often approximated by intervals and repetitions).
- Spaced vs massed practice: Distributed exposures vs immediate repetition.
Algorithms and scheduling strategies
Leitner system (boxed flashcards)
- Concept: Cards move through boxes. Correctly recalled cards move to the next (longer interval) box; incorrect ones return to box 1.
- Practical: Simple, non-parametric, easy to implement with physical flashcards.
- Example: Box 1 = daily, Box 2 = every 3 days, Box 3 = every 10 days, etc.
SM-2 (SuperMemo) — classic algorithm
- Introduced by Piotr Woźniak (SM-2, used in early SuperMemo and widely adopted with slight variants).
- Key variables: repetition count (n), interval (I), ease factor (EF), quality score (q ∈ 0..5).
- Simplified logic:
- If q < 3: reset n = 0, set next interval I = 1 (repeat soon).
- Else:
- If n = 1: I = 1 day
- If n = 2: I = 6 days
- Else: I = previous_I × EF
- Increment n
- Update EF: EF := max(1.3, EF + (0.1 - (5 - q)(0.08 + (5 - q)0.02)))
- EF starts typically at 2.5.
- This generates exponentially increasing intervals tempered by EF.
Pseudocode (SM-2) ``` function review_card(card, quality): if quality < 3: card.repetitions = 0 card.interval = 1 else: card.repetitions += 1 if card.repetitions == 1: card.interval = 1 elif card.repetitions == 2: card.interval = 6 else: card.interval = round(card.interval * card.ease)
update ease factor
card.ease = card.ease + (0.1 - (5 - quality) (0.08 + (5 - quality) 0.02)) if card.ease < 1.3: card.ease = 1.3 schedulenextreview(card, in_days=card.interval) ```
Python example (simplified) ```python class Card: def init(self): self.reps = 0 self.interval = 0 self.ease = 2.5
def sm2_review(card, quality): if quality < 3: card.reps = 0 card.interval = 1 else: card.reps += 1 if card.reps == 1: card.interval = 1 elif card.reps == 2: card.interval = 6 else: card.interval = round(card.interval card.ease) card.ease += 0.1 - (5 - quality) (0.08 + (5 - quality) * 0.02) if card.ease < 1.3: card.ease = 1.3 return card.interval ```
Modern/adaptive models
- Bayesian Knowledge Tracing (BKT), Performance Factors Analysis (PFA), Elo-like models, and Item Response Theory (IRT) variants estimate latent knowledge and tailor intervals.
- Pavlik & Anderson (2008) introduced models that optimize scheduling to maximize long-term retention given a study budget.
- Recent systems use machine learning to predict recall probability from features (item difficulty, past history, time, context) and schedule reviews to hit retention targets.
Practical note: many apps combine heuristic rules with adaptive predictions (Anki’s default is SM-2 inspired but uses percent/multipliers; SuperMemo evolved to more complex models).
How to build effective spaced-repetition cards
Principles
- Active recall: Design cards so the student must retrieve the answer (avoid recognition-only).
- Atomicity: One fact per card. Don’t bundle unrelated facts.
- Minimal information principle: Keep prompts concise; avoid excess information on the front.
- Use cloze deletions for contextual sentences.
- Mnemonics & imagery: For difficult-to-remember items, attach vivid cues.
- Context-rich when needed: For understanding/procedural knowledge, include context to reduce interference.
Card types and templates
- Basic (front/back): Simple Q/A.
- Basic (and reversed): Two-way recall for pairs.
- Cloze deletion: Fill-in-the-blank inside a sentence — excellent for language and fact contexts.
- Image occlusion: Hide parts of diagrams (great for anatomy, circuits).
- Code snippets: For programming, present a problem statement and expect code or output; use cloze to hide specific tokens.
Examples
- Language vocab (basic):
Front: "to eat (Spanish)" Back: "comer"
- Language cloze:
Text: "Yo ____ (to eat) manzanas." Cloze hidden: comer -> "Yo [comer] manzanas." (Answer: como)
- Medicine (image occlusion):
Front: Heart diagram with left ventricle occluded Back: "Left ventricle — pumps oxygenated blood to systemic circulation"
Card-writing habits
- Make cards about retrieval, not recognition....