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-3.md.

FSRS-3

FSRS-3 has 13 trainable weights and uses an exponential forgetting curve. Its stability updates use the newly calculated difficulty D′D'.

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

Formula source

Reviewed against awesome-fsrs Wiki — FSRS-3.

Forgetting curve and interval

R(t,S)=0.9t/SR(t,S)=0.9^{t/S}
I(r,S)=Sln⁡rln⁡0.9I(r,S)=S\frac{\ln r}{\ln 0.9}

Initial memory

S0(G)=clamp⁡(w0+(G−1)w1,Smin,Smax)S_0(G)=\operatorname{clamp}\left(w_0+(G-1)w_1,S_{min},S_{max}\right)
D0(G)=clamp⁡(w2+(G−3)w3,Dmin,Dmax)D_0(G)=\operatorname{clamp}\left(w_2+(G-3)w_3,D_{min},D_{max}\right)

Difficulty

D∗=D+w4(G−3)D^*=D+w_4(G-3)
D′=clamp⁡(w5w2+(1−w5)D∗,Dmin,Dmax)D'=\operatorname{clamp}\left(w_5w_2+(1-w_5)D^*,D_{min},D_{max}\right)

Stability after review

Sf=w9(D′)w10Sw11ew12(1−R)S_f=w_9(D')^{w_{10}}S^{w_{11}}e^{w_{12}(1-R)}
Sr=S[1+ew6(11−D′)Sw7(ew8(1−R)−1)]S_r=S\left[1+e^{w_6}(11-D')S^{w_7}\left(e^{w_8(1-R)}-1\right)\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}.