The cognitive science behind spaced repetition is one of the most replicated findings in memory research. Ebbinghaus's forgetting curve, documented in the 1880s, established the basic phenomenon: retention of new material decays predictably over time, and well-timed review dramatically slows that decay. A century of follow-on research has refined the timing models, explored how difficulty interacts with spacing, and identified conditions where the effect is stronger or weaker. The research base is solid.
The implementation problem is not scientific. It is logistical. Spaced repetition algorithms, the most common being variants of the SM-2 algorithm that powers Anki, require a per-item, per-learner scheduling state. For an individual student learning vocabulary or anatomy terms, that is tractable: one person, one deck, one device. For a classroom of thirty students who are all at different points in a content graph, who attend class irregularly, and who access the system from school computers, tablets, and phones, the scheduling problem is several orders of magnitude more complex.
Why Classroom Spaced Repetition Is Not Just Scaled-Up Anki
The SM-2 algorithm assumes the learner is in control of session timing. The student decides when to review, and the algorithm defers cards that are well-retained while surfacing cards whose review interval has elapsed. In a self-directed study context, this works well. In a classroom context, the teacher controls the session start time and the curriculum controls what content is in scope. The student rarely chooses when to sit down and review.
This creates a conflict. If a student's review interval for a concept expires on a Wednesday, but the class only has adaptive practice sessions on Monday and Friday, the algorithmically optimal review moment is missed. Over a semester, with dozens of concepts in various stages of retention decay, the gap between optimal spacing and available session time compounds. The practical question is not "can we implement spaced repetition" but "what scheduling model degrades least gracefully when constrained by a school calendar and a shared curriculum?"
We thought about this as a constraint satisfaction problem with three competing pressures: retention-optimal timing, curriculum-sequencing requirements (certain concepts must precede others regardless of retention state), and session-time budget. In most classroom configurations, you cannot perfectly satisfy all three simultaneously. You have to pick a priority ordering and accept the tradeoffs.
What We Actually Implemented
Our implementation uses a modified interval scheduling approach that treats review as a secondary priority within each session, not a primary one. The primary session goal is forward progress through the content graph. After that sequencing need is served, the remaining session capacity is allocated to review of concepts whose retention estimate has fallen below a threshold.
The retention model is not a full Bayesian knowledge tracing implementation. It is a simpler decay function calibrated to the concept's initial acquisition signal and the elapsed time since the student last engaged with it correctly. We made this choice deliberately. Full BKT requires parameter estimation from historical data that we did not have for early pilot programs, and it introduces tuning complexity that can mask poor content graph design. The simpler decay model is easier to reason about and easier to audit when it behaves unexpectedly.
The threshold for triggering review is currently set at a 65% retention estimate, meaning the model predicts the student has about a 65% chance of answering correctly if tested now. That number was not derived from formal optimization. It was a judgment call based on what felt like a useful signal in early testing: high enough that review was not triggered for content the student knows well, low enough that content was not allowed to decay to near-zero before a review prompt.
The Scheduling Problem at 30-Student Scale
Consider a single 40-minute session with 30 students, each of whom has a content graph of 80 concepts in various states of acquisition and retention. At session start, the engine computes each student's current forward learning edge (the next unmastered concept in their sequence) and their review queue (concepts below the retention threshold). For some students, the review queue is empty. For others, it has five or six concepts that have decayed while the student was working through prerequisites.
The session allocation problem is: for this student, in this 40-minute window, what proportion of question capacity should go to forward progress versus review? The naive answer is always forward progress first, which is correct for most students on most days. But for a student who has been absent for two weeks, the review backlog may be large enough that moving forward without consolidating prior material produces shallow learning that will need re-teaching anyway.
We added an absence-aware session modifier in February 2026. If a student's last session was more than seven days ago, the session opens with a short review burst before forward progress resumes. The burst is capped at eight questions to avoid using the entire session on review. This felt arbitrary when we implemented it, and it is. But the alternative was allowing students to return from illness or vacation and immediately advance into concepts built on foundations that had decayed. That produced worse outcomes in the data we had from early fall sessions.
What the Research Does Not Tell You
The laboratory research on spaced repetition typically studies isolated fact recall, often vocabulary, medical terminology, or geography. That is not what a K-12 content graph looks like. Fractions are not a flashcard; they are a network of connected concepts (part-whole relationships, equivalent fractions, operations with fractions, fraction-decimal conversion) where understanding of each node depends on prior nodes. Spacing one node correctly while its prerequisite node has decayed may be counterproductive. The research does not give clear guidance on how to handle this interdependency.
We are not saying spaced repetition is irrelevant to conceptual learning. It is clearly relevant. But the implementation has to account for the graph structure of the content, and that requires decisions that the research literature does not resolve. Our current heuristic is to treat a prerequisite concept as decayed if any of its dependent concepts are being reviewed. If a student is reviewing fraction multiplication, the engine also checks whether fraction equivalence (its primary prerequisite) is above threshold. If not, the review session addresses equivalence first. This is conservative and it means some students spend more time on review than strictly necessary. We think that is the right tradeoff at this stage.
What Still Does Not Work Well
The biggest limitation is that our retention model treats absence as the primary driver of decay. In reality, interference matters too: learning a related concept can accelerate decay of a prior one. A student who learns division immediately after fractions may find that their fraction recall degrades faster than the model predicts. We do not currently model interference, and in our pilot data we see cases where review prompts are triggered too late for concepts that were adjacent to recently learned material. This is a research problem we are actively thinking about, but we have not shipped a fix for it.
The other open issue is calibrating review intervals for different concept types. The same interval length is almost certainly not optimal for a vocabulary concept, a procedural skill like long division, and a conceptual relationship like the connection between ratios and slope. We currently use a single set of decay parameters across all concept types. Concept-type-specific calibration would require more data per concept type than we have from current pilot programs. This is on the roadmap for 2026.
The infrastructure required to run this at scale, tracking per-concept retention state for every student in every program, is not trivial. It is also not glamorous engineering. But it is the part of adaptive learning that is most often underinvested in favor of shinier sequencing features. Getting retention infrastructure right is, in our view, as important as the forward-progress sequencing engine, and in K-12 settings it may matter more for long-term outcomes.