FSRS-5: Decoding the 17 Weights of Spaced Repetition
A mathematical walkthrough of weights w0 through w16 and how they govern memory stability, difficulty dynamics, and retrievability curves — as specified by the open-source FSRS project.
Mathematical Architecture
The Initial State Vector: Weights w0 through w4
The first parameters ($w_0, w_1, w_2, w_3$) establish the initial stability $S_0(G)$ assigned to a card after its very first review based on your rating: Again (1), Hard (2), Good (3), or Easy (4). A word you find easy earns a longer first interval than one you struggled with, preventing wasted reviews on trivial vocabulary. The exact values are learned from review-log data, so they are data-driven rather than hand-picked constants.
S₀(G) = w_(G-1) — one dedicated weight per first-review rating, learned from anonymized review logs by the FSRS community.
Difficulty Dynamics & Mean Reversion: Weights w4 through w7
Initial difficulty is calculated as $D_0(G) = w_4 - e^{w_5 (G-1)} + 1$. Subsequent reviews adjust difficulty linearly via weight $w_6$, but crucially, parameter $w_7$ introduces mean reversion: $D' = w_7 D_0(3) + (1-w_7)(D - w_6(G-3))$. This mathematical stabilizer pulls difficulty back toward the mean over time, so a single careless typo does not permanently skew a familiar sentence's difficulty toward maximum friction.
Mean reversion dampens statistical noise from user fatigue or momentary distraction, maintaining smooth long-term scheduling.
Stability Growth & Desirable Difficulty: Weights w8 through w10
When a card is successfully recalled, stability updates as: $S'_r = S \cdot (1 + e^{w_8} \cdot (11-D) \cdot S^{-w_9} \cdot (e^{w_{10}(1-R)} - 1) \cdot h(G))$. The term $(e^{w_{10}(1-R)} - 1)$ mathematically captures the principle of 'Desirable Difficulty' (associated with Robert Bjork's memory research): recalling a card when its retrievability $R$ has dropped substantially produces a larger consolidation effect than reviewing it while it is still fresh.
Recalling a forgotten word right at the edge of forgetting is modeled as producing the strongest memory strengthening.
Lapse Recovery: Weights w11 through w14
When you forget a card ($G=1$), FSRS-5 does not reset its stability to zero. It computes post-lapse stability as $S'_f = w_{11} \cdot D^{-w_{12}} \cdot ((S+1)^{w_{13}} - 1) \cdot e^{w_{14}(1-R)}$, preserving a significant fraction of your historical memory foundation.
Cards with months of accumulated stability recover their long intervals in just a few successful reviews following a lapse.
Why Openness Matters
Every weight, every formula, and the parameter-optimization code are published openly at github.com/open-spaced-repetition under an open license. FSRS is available natively in Anki 23.10+. The project's stated design goal is to reach your target retention with fewer reviews than legacy SM-2 scheduling — a claim you can audit in the public repository and its evaluation notebooks, not something you must take on faith from any single company, including ours.
Read the FSRS wiki, the optimizer source, and community benchmark notebooks. We cite them because they are checkable.
Related Research & Deep Dives
Ready to forge fluency with FSRS-5?
Start with 1,600 authentic cloze sentences today in our free live app.