Spaced Repetition
Graspful uses the FIRe (Fractional Implicit Repetition) algorithm to schedule reviews. FIRe is built for knowledge graphs — it gives credit for implicit practice through encompassing edges, so students spend less time drilling basics they already exercise through advanced work.
The spacing effect
The spacing effect is one of the most robust findings in cognitive science: distributing practice over time produces stronger, longer-lasting memory than massing practice into one session. Reviewing something once a day for five days beats reviewing it five times in one day.
The optimal spacing increases as memory strengthens. First review after 1 day. Then 3 days. Then 7, 14, 30. Each successful review extends the interval. This is the core principle behind systems like Anki, SuperMemo, and Graspful's review scheduling.
Exponential forgetting
Graspful models memory as an exponential decay function. After mastering a concept, the estimated retention drops over time:
retention = 0.5 ^ (days_since_review / interval)
When days_since_review equals the interval, retention is exactly 0.5 — a coin flip. When days is zero (just reviewed), retention is 1.0. When days exceeds the interval, retention drops below 0.5 and continues toward zero.
The memory decay service runs this calculation before every task selection session. Any concept whose retention drops below 0.6 transitions from mastered to needs_review and re-enters the frontier.
The FIRe algorithm
FIRe — Fractional Implicit Repetition — is Graspful's spaced repetition algorithm. It extends standard spaced repetition with two key innovations: early-repetition discounting and implicit repetition through the knowledge graph.
Interval schedule
FIRe uses a fixed interval ladder. Each successful review advances the concept to the next rung. Each failure drops it back one rung (minimum rung 0).
# FIRe interval ladder (in days)
interval_schedule:
- 1 # rung 0: review tomorrow
- 3 # rung 1: review in 3 days
- 7 # rung 2: review in 1 week
- 14 # rung 3: review in 2 weeks
- 30 # rung 4: review in 1 month
- 60 # rung 5: review in 2 months
- 120 # rung 6: review in 4 months
- 240 # rung 7: review in 8 months (max)
# Example concept review state:
concept_review:
concept_id: ohms-law
current_rung: 3 # interval = 14 days
last_reviewed: "2026-03-10"
next_review: "2026-03-24" # 14 days later
retention: 0.52 # getting close to thresholdEarly-repetition discounting
Not all reviews are equally valuable. Reviewing a concept when retention is still high (say, 0.95) provides less memory benefit than reviewing when retention has dropped to 0.6. FIRe accounts for this.
When a concept is reviewed before its scheduled date, FIRe applies a discount based on current retention. The higher the retention at review time, the less credit the review gets toward advancing the interval rung.
- - Retention > 0.9: Review earns 0.25x credit — the student remembers fine, this review barely helped
- - Retention 0.7 - 0.9: Review earns 0.5x credit — some benefit, but the timing wasn't ideal
- - Retention 0.5 - 0.7: Review earns 1.0x credit — optimal spacing, full benefit
- - Retention < 0.5: Review still earns 1.0x credit, but the interval rung may drop because the student waited too long
Decay penalty on failure
When a student fails a review (answers incorrectly), FIRe applies a decay penalty proportional to how much they've forgotten. The lower the retention at failure time, the bigger the penalty.
Failing at retention 0.3 (waited way too long) drops the interval rung by 2. Failing at retention 0.6 (close to schedule) drops it by 1. This prevents a single bad day from destroying months of progress while still penalizing genuine forgetting.
Implicit repetition via encompassing edges
This is FIRe's key innovation. In a traditional spaced repetition system, every concept must be reviewed independently. In Graspful, practicing an advanced concept automatically counts as partial review of its foundations — through encompassing edges.
When a student correctly answers a Circuit Analysis problem, FIRe traces the encompassing edges and credits each ancestor concept proportionally. This means foundational concepts get reviewed implicitly as the student practices advanced material — no separate flashcard drill required.
Weight product calculation
Implicit repetition credit is the product of encompassing weights along the path. Multi-hop credit diminishes multiplicatively:
# Knowledge graph edges:
#
# Circuit Analysis
# ├── encompassing: Ohm's Law (weight: 0.8)
# └── encompassing: Voltage (weight: 0.6)
#
# Ohm's Law
# └── encompassing: Voltage (weight: 0.6)
# When the student practices Circuit Analysis:
implicit_credit:
# Direct encompassing edges:
- target: ohms-law
weight: 0.8 # direct edge from circuit-analysis
credit: "0.8× review"
- target: voltage
weight: 0.6 # direct edge from circuit-analysis
credit: "0.6× review"
# Multi-hop credit (circuit-analysis → ohms-law → voltage):
# The direct path (0.6) already exceeds the multi-hop path (0.8 × 0.6 = 0.48)
# FIRe uses the MAXIMUM credit across all paths, so voltage gets 0.6×
# Final credit applied:
final:
- concept: ohms-law
credit: 0.8 # 80% of a full review
- concept: voltage
credit: 0.6 # 60% of a full review (max of direct 0.6 vs hop 0.48)Implicit credit is combined with early-repetition discounting. If Ohm's Law has retention 0.95, the 0.8x implicit credit is further discounted to 0.8 x 0.25 = 0.2x — the student barely benefits because they already remember it well.
Memory decay service
The memory decay service runs before every task selection call. It recalculates retention for all mastered concepts and transitions any that fall below the threshold to needs_review.
The service checks three things:
- - Retention calculation: For each mastered concept, compute
0.5 ^ (days / interval)using the current interval rung - - Implicit credit offset: If the concept received implicit repetition credit from recent advanced practice, that credit is subtracted from the elapsed days before computing decay
- - Threshold check: If retention < 0.6, the concept moves to
needs_reviewand enters the frontier with high priority
Review tasks are prioritized over new learning in the task selection queue. A student won't advance to new material if there are overdue reviews on prerequisite concepts.
Practical impact
The combination of implicit repetition and the interval ladder means students spend significantly less time on explicit review than in traditional spaced repetition systems.
- - Foundational concepts rarely need explicit review — they get constantly exercised through advanced practice via encompassing edges
- - Leaf concepts (no dependents) need the most review — nothing exercises them implicitly, so they follow the standard interval schedule
- - Mid-graph concepts get partial credit — some implicit review from above, but may still need occasional explicit review depending on edge weights
For course authors, this means encompassing edges directly affect the student experience. Well-connected graphs with accurate weights produce less review burden. Disconnected graphs with no encompassing edges behave like traditional flashcard systems — every concept needs independent review.
Configuration
FIRe parameters are tuned at the platform level and generally don't need per-course adjustment. The main lever for course authors is the quality of encompassing edges — accurate weights produce better implicit repetition.
# Encompassing weight guide for course authors:
#
# Ask: "When a student solves a problem for concept B,
# how much does that exercise concept A?"
#
# Examples:
concepts:
- id: multi-step-equations
name: Multi-step Equations
difficulty: 5
estimatedMinutes: 25
prerequisites: [linear-equations, distributive-property]
encompassing:
# Solving multi-step equations heavily exercises
# basic linear equation skills
- concept: linear-equations
weight: 0.8
# It also exercises the distributive property,
# but only when the problem includes parentheses
- concept: distributive-property
weight: 0.5
# It exercises basic arithmetic, but only slightly —
# the cognitive load is on the algebraic structure
- concept: arithmetic-operations
weight: 0.3