https://github.com/open-spaced-repetition/fsrs4anki/wiki/ABC-of-FSRS Skip to content Toggle navigation Sign in * Product + Actions Automate any workflow + Packages Host and manage packages + Security Find and fix vulnerabilities + Codespaces Instant dev environments + Copilot Write better code with AI + Code review Manage code changes + Issues Plan and track work + Discussions Collaborate outside of code Explore + All features + Documentation + GitHub Skills + Blog * Solutions For + Enterprise + Teams + Startups + Education By Solution + CI/CD & Automation + DevOps + DevSecOps Resources + Learning Pathways + White papers, Ebooks, Webinars + Customer Stories + Partners * Open Source + GitHub Sponsors Fund open source developers + The ReadME Project GitHub community articles Repositories + Topics + Trending + Collections * Pricing Search or jump to... Search code, repositories, users, issues, pull requests... Search [ ] Clear Search syntax tips Provide feedback We read every piece of feedback, and take your input very seriously. [ ] [ ] Include my email address so I can be contacted Cancel Submit feedback Saved searches Use saved searches to filter your results more quickly Name [ ] Query [ ] To see all available qualifiers, see our documentation. Cancel Create saved search Sign in Sign up You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert {{ message }} open-spaced-repetition / fsrs4anki Public * * Notifications * Fork 108 * Star 1.7k * Code * Issues 13 * Pull requests 0 * Actions * Wiki * Security * Insights Additional navigation options * Code * Issues * Pull requests * Actions * Wiki * Security * Insights ABC of FSRS Jump to bottom Jarrett Ye edited this page Dec 18, 2023 * 17 revisions Pages 11 [ ] * Home * ABC of FSRS * Advanced methods of optimization * Compare Anki's built in scheduler and FSRS * FAQ * How does the scheduler work? * Research resources * Spaced Repetition Algorithm: A Three-Day Journey from Novice to Expert * The Algorithm * The Benchmark * The mechanism of optimization Clone this wiki locally [https://github.com/o] FSRS is a modern spaced repetition algorithm that was developed by Jarrett Ye. It aims to learn your memory patterns and schedule reviews more efficiently than Anki's legacy SM2 algorithm. The goal of a spaced repetition algorithm is to calculate the optimal intervals between reviews. But what makes an interval "optimal"? In FSRS, an interval is considered optimal if it corresponds to a specific probability of recalling a card. For example, if you want to be 90% sure that you will successfully recall a card the next time you see it, the optimal interval is the one at which the probability of recall is 90%. FSRS is based on the "Three Component Model of Memory". The model asserts that three variables are sufficient to describe the status of a unitary memory in a human brain. These three variables include: * Retrievability (R): The probability that the person can successfully recall a particular information at a given moment. It depends on the time elapsed since the last review and the memory stability (S). * Stability (S): The time, in days, required for R to decrease from 100% to 90%. For example, S = 365 means that an entire year will pass before the probability of recalling a particular card drops to 90%. * Difficulty (D): The inherent complexity of a particular information. It represents how difficult it is to increase memory stability after a review. In FSRS, these three values are collectively called the "memory state". Every time the user reviews a card, the memory state associated with that card changes, unless it was a same-day review. FSRS only takes into account one review per day, the chronologically first one. Each card has its respective DSR values, in other words, each card has its memory state. To accurately estimate the DSR values, FSRS analyzes the user's review history and uses machine learning to calculate parameters that provide the best fit to the review history. The most recent version of FSRS uses 17 parameters in the formulas for D and S (the formula for retrievability doesn't require any parameters). If you are interested in the details, you can read the following wiki pages: The Algorithm and The mechanism of optimization. If a user doesn't have enough reviews yet, the default parameters are used instead. They have been found by running the FSRS optimizer on billions of reviews from ~20k users. Even with the default parameters, FSRS is better than Anki's default algorithm. Note that the users should not tweak the parameters manually. If you want to adjust the scheduling, all you need to do is choose an appropriate value of desired retention. Values between 70% and 97% are considered reasonable. In other words, with FSRS, users can target a specific value of retention, allowing them to balance how much they remember and how many reviews they have to do. Higher retention leads to more reviews per day. Aside from allowing the users to choose their desired retention, FSRS has some other advantages when compared to Anki's default algorithm. With FSRS, users have to do 20-30% fewer reviews than with Anki's default algorithm to achieve the same retention level. FSRS is also much better at scheduling cards that have been reviewed with a delay, for example, if the user took a break from Anki for a few weeks. In addition, the FSRS4Anki Helper add-on provides some useful features that are not available otherwise. If your Anki version is 23.10 or newer, read this guide. If your Anki version is older than 23.10, then you can use the standalone version of FSRS, please read this guide to learn how to install it. If you want to see how FSRS performs in comparison to other algorithms, read these pages: Benchmark and FSRS vs SM-17, one of the most recent SuperMemo algorithms. If you have any further questions about FSRS, check the FAQ. If you want to learn more about spaced repetition algorithms, you can check out Spaced Repetition Algorithm: A Three-Day Journey from Novice to Expert. My representative paper at ACMKDD: A Stochastic Shortest Path Algorithm for Optimizing Spaced Repetition Scheduling My fantastic research experience on spaced repetition algorithm: How did I publish a paper in ACMKDD as an undergraduate? The largest open-source dataset on spaced repetition with time-series features: MaiMemo's Open-Source Memory Behavior Dataset Footer (c) 2024 GitHub, Inc. Footer navigation * Terms * Privacy * Security * Status * Docs * Contact * Manage cookies * Do not share my personal information You can't perform that action at this time.