For AI agents: the complete documentation index is available at https://open-spaced-repetition.github.io/ts-fsrs/llms.txt, the full documentation bundle is available at https://open-spaced-repetition.github.io/ts-fsrs/llms-full.txt, and this page is available as Markdown at https://open-spaced-repetition.github.io/ts-fsrs/guide/model/fsrs-4.md.

FSRS-4

FSRS-4 has 17 trainable weights and replaces the FSRS-3 exponential curve with a power forgetting curve.

See the Model overview for the shared symbols and Model contract.

Formula source

Reviewed against awesome-fsrs Wiki — FSRS-4.

Forgetting curve and interval

R(t,S)=(1+t9S)−1R(t,S)=\left(1+\frac{t}{9S}\right)^{-1}
I(r,S)=9S(1r−1)I(r,S)=9S\left(\frac{1}{r}-1\right)

Initial memory

S0(G)=clamp⁡(wG−1,Smin,Smax)S_0(G)=\operatorname{clamp}\left(w_{G-1},S_{min},S_{max}\right)
D0(G)=clamp⁡(w4−(G−3)w5,Dmin,Dmax)D_0(G)=\operatorname{clamp}\left(w_4-(G-3)w_5,D_{min},D_{max}\right)

Difficulty

D∗=D−w6(G−3)D^*=D-w_6(G-3)
D′=clamp⁡(w7w4+(1−w7)D∗,Dmin,Dmax)D'=\operatorname{clamp}\left(w_7w_4+(1-w_7)D^*,D_{min},D_{max}\right)

Stability after review

HG=w15H_G = w_{15} for Hard and 11 otherwise; EG=w16E_G = w_{16} for Easy and 11 otherwise.

Sf=w11D−w12((S+1)w13−1)ew14(1−R)S_f=w_{11}D^{-w_{12}}\left((S+1)^{w_{13}}-1\right)e^{w_{14}(1-R)}
Sr=S[1+ew8(11−D)S−w9(ew10(1−R)−1)HGEG]S_r=S\left[1+e^{w_8}(11-D)S^{-w_9}\left(e^{w_{10}(1-R)}-1\right)H_GE_G\right]
Sraw′(G)={Sf,G=1Sr,G∈{2,3,4}S'_{raw}(G)=
\begin{cases}
S_f,&G=1\\
S_r,&G\in\{2,3,4\}
\end{cases}

The model then clamps Sraw′S'_{\mathrm{raw}} to the range from Smin⁡S_{\min} to Smax⁡S_{\max}.