An Anki add-on that supports Postpone & Advance & Load Balance & Easy Days & Disperse Siblings & Flatten
322
stars
466
commits
Python
primary language
Jun 12, 2026
updated
FSRS Helper is an Anki add-on that supports FSRS algorithm. It has the following main features:
The FSRS Helper add-on is purely an added bonus and is not recommended for extensive use.
Installation link: https://ankiweb.net/shared/info/759844606
| Feature name | How does it work? | When should I use it? |
|---|---|---|
| Reschedule | Calculates stability, difficulty, and the optimum interval from the entire review history for each card using FSRS parameters. Then, it changes the due dates of cards. | When you update the parameters or desired retention of FSRS. Rescheduling with the Helper does not add to the size of your collection, unlike Anki's built-in "Reschedule cards on change." |
| Advance | Decreases the intervals of undue cards based on current and requested R, and interval length to minimize damage to long-term learning. | When you want to review your material ahead of time, for example, before a test. |
| Postpone | Increases the intervals of cards that are due today based on current and requested R, and interval length in a way that minimizes damage to long-term learning. | When you are dealing with a large number of reviews after taking a break from Anki or after rescheduling. |
| Schedule a Break | Redistributes cards due during an upcoming break period (including overdue cards and cards due today) across follow-up days. Uses a cost function to minimize deviation from original due dates. | When you know you'll be away from Anki for a period (e.g., vacation, busy work period) and want to proactively redistribute reviews. |
| Load Balancing | After the optimal interval is calculated, it is adjusted by a random amount to make the distribution of reviews over time more uniform. | Always. This feature makes your workload (reviews per day) more consistent. |
| Easy Days | After the optimal interval is calculated, it is slightly adjusted to change the due date. | If you want to spend less time on Anki on some days of the week, for example, Sundays. |
| Disperse Siblings | Siblings are cards generated from the same note. Their intervals are adjusted to spread them further apart from each other. | Always. This feature alleviates the interference; disabling it will only decrease the efficiency of spaced repetition. |
| Flatten | If the number of future due cards exceeds the limit, the cards are postponed. | When you want to spread your backlog to the future. |
Rescheduling can calculate the memory states and intervals based on each card's review history and the parameters from the Scheduler code. These parameters can be personalized with the FSRS Optimizer.
Note: For cards that have been reviewed multiple times using Anki's default algorithm, rescheduling may give different intervals than the Scheduler because the Scheduler can't access the full review history when running. In this case, the intervals given by rescheduling will be more accurate. But after rescheduling once, there will be no difference between the two.
These two functions are very similar, so I'll talk about them together. You can set the number of cards to advance/postpone, and the Helper add-on will sort your cards and perform the advance/postpone in such a way that the deviation from the original review schedule is minimal while meeting the number of cards you set.
This feature allows you to redistribute cards due during an upcoming period when you cannot use Anki across follow-up days. You specify how many days you'll be away (break days) and across how many days the reviews should be redistributed (spread days).
Important: This feature will reduce future memory retention rates. The algorithm can only minimize the decline. You can undo this operation using Edit -> Undo.
FSRS Helper automatically applies load balance when you reschedule all cards via the add-on.
Here's a comparison, the first graph is rescheduling via the Anki's built-in method, and the second graph is via the add-on:
The add-on reads Anki's built-in Easy Days configuration (weekly schedule) and applies it when rescheduling cards. You need to configure Easy Days in Anki's settings (Deck Options → Easy Days), not in the add-on settings.
Additionally, the add-on allows you to configure specific dates as easy days. You can add specific dates (e.g., holidays, busy periods) through Tools → FSRS Helper → Less Anki on Easy Days → Apply easy days for specific dates, which opens a window where you can manage and apply easy days for specific dates. Cards due on these specific dates will be rescheduled to avoid those days.
Note: After Anki 24.11, the easy days feature is built-in in Anki. The add-on reads Anki's Easy Days configuration to ensure consistency when rescheduling cards, allowing you to apply the same easy days settings during the rescheduling process.
Note: Easy Days only works for cards in the "review" stage. Due to technical limitations, FSRS doesn't modify the interval and due date of cards in the "(re)learning" stage. And it also doesn't reschedule cards whose interval is less than 3 days.
Fuzz example:
Exceptions:
If the fuzz range is too narrow or does not exist (review less than 3 days) to satisfy the selected easy days, the day of the week may be selected for review of the card.
Effect:
In Anki, some templates will generate multiple cards related in content from the same note, such as reversed cards (Front->Back, Back->Front) and cloze cards (when you make multiple clozes on the same note). If the review dates of these cards are too close, they may interfere with or remind you of each other. Dispersing siblings can spread the review dates of these cards out as much as possible.
You can set the maximum number of reviews per day for future days. The Helper add-on will find out the days that exceed the limit and postpone the extra cards to the future.
Hold down the Shift key and click "Stats" to enter the old version of Anki's statistics interface.
The FSRS Stats are based on all cards in your deck or collection (whichever is selected) that you have ever reviewed. They remain unaffected by the 1 month/year settings.
Interpretation:
The Steps Stats are based on cards that were first reviewed in the last 1 month/year or deck life and have at least two reviews. When a deck is selected, FSRS Helper aggregates over all decks that use the same preset. When the whole collection is selected, it keeps the whole-collection scope.
These stats are helpful for fine-tuning your (re)learning steps to achieve your desired retention in the short-term reviews.
How your learning steps affect the intervals:
So the 1st recommended learning step is based on the stability of your cards where you press Again during the first review.
For the 2nd recommended learning step, the scenario is more complex. It is based on the minimum of the stability of three kinds of cards:
True Retention is a statistic that shows the pass rate calculated only on cards with intervals greater than or equal to one day. It provides a better indicator of learning quality than the Again rate because it excludes cards in the learning phase.
To enable True Retention statistics, go to Tools → FSRS Helper → Show true retention. Note that this table may slow down the statistics page loading if you have a lot of reviews, so enable it with caution.
By default, mature cards are defined as cards with an interval of 21 days or longer. This cutoff can be adjusted in the add-on configuration (mature_ivl setting).
This feature allows you to correct historical misuse of the Hard button by converting Hard reviews (ease = 2) to Again reviews (ease = 1) within a specified date range. This can help improve the accuracy of your FSRS parameters and scheduling. You can also undo the remedy operation if needed.
Important: This feature modifies your review history. It is recommended to create a backup before using this feature. You can undo this operation if you have the remedy record file.
The add-on provides two reset options:
days_to_reschedule settinguser_files folder.Please see this wiki page: FSRS Helper WIKI
I'm Jarrett Ye, a diehard fan of spaced repetition. I used Anki during my high school life and attended my dream college. Now, I'm a researcher and developer in the field of spaced repetition. FSRS is my homage to Anki, expressing my deep gratitude for its invaluable support.
If you like FSRS Helper, please Rate this!👍 Your support will allow more people to enjoy this fantastic tool and improve their learning experience!
I referred to the following projects while developing FSRS Helper:
Thanks to all the contributors for their valuable contributions!
Python
99.2%
An Anki add-on that supports Postpone & Advance & Load Balance & Easy Days & Disperse Siblings & Flatten
322
stars
466
commits
Python
primary language
Jun 12, 2026
updated
FSRS Helper is an Anki add-on that supports FSRS algorithm. It has the following main features:
The FSRS Helper add-on is purely an added bonus and is not recommended for extensive use.
Installation link: https://ankiweb.net/shared/info/759844606
| Feature name | How does it work? | When should I use it? |
|---|---|---|
| Reschedule | Calculates stability, difficulty, and the optimum interval from the entire review history for each card using FSRS parameters. Then, it changes the due dates of cards. | When you update the parameters or desired retention of FSRS. Rescheduling with the Helper does not add to the size of your collection, unlike Anki's built-in "Reschedule cards on change." |
| Advance | Decreases the intervals of undue cards based on current and requested R, and interval length to minimize damage to long-term learning. | When you want to review your material ahead of time, for example, before a test. |
| Postpone | Increases the intervals of cards that are due today based on current and requested R, and interval length in a way that minimizes damage to long-term learning. | When you are dealing with a large number of reviews after taking a break from Anki or after rescheduling. |
| Schedule a Break | Redistributes cards due during an upcoming break period (including overdue cards and cards due today) across follow-up days. Uses a cost function to minimize deviation from original due dates. | When you know you'll be away from Anki for a period (e.g., vacation, busy work period) and want to proactively redistribute reviews. |
| Load Balancing | After the optimal interval is calculated, it is adjusted by a random amount to make the distribution of reviews over time more uniform. | Always. This feature makes your workload (reviews per day) more consistent. |
| Easy Days | After the optimal interval is calculated, it is slightly adjusted to change the due date. | If you want to spend less time on Anki on some days of the week, for example, Sundays. |
| Disperse Siblings | Siblings are cards generated from the same note. Their intervals are adjusted to spread them further apart from each other. | Always. This feature alleviates the interference; disabling it will only decrease the efficiency of spaced repetition. |
| Flatten | If the number of future due cards exceeds the limit, the cards are postponed. | When you want to spread your backlog to the future. |
Rescheduling can calculate the memory states and intervals based on each card's review history and the parameters from the Scheduler code. These parameters can be personalized with the FSRS Optimizer.
Note: For cards that have been reviewed multiple times using Anki's default algorithm, rescheduling may give different intervals than the Scheduler because the Scheduler can't access the full review history when running. In this case, the intervals given by rescheduling will be more accurate. But after rescheduling once, there will be no difference between the two.
These two functions are very similar, so I'll talk about them together. You can set the number of cards to advance/postpone, and the Helper add-on will sort your cards and perform the advance/postpone in such a way that the deviation from the original review schedule is minimal while meeting the number of cards you set.
This feature allows you to redistribute cards due during an upcoming period when you cannot use Anki across follow-up days. You specify how many days you'll be away (break days) and across how many days the reviews should be redistributed (spread days).
Important: This feature will reduce future memory retention rates. The algorithm can only minimize the decline. You can undo this operation using Edit -> Undo.
FSRS Helper automatically applies load balance when you reschedule all cards via the add-on.
Here's a comparison, the first graph is rescheduling via the Anki's built-in method, and the second graph is via the add-on:
The add-on reads Anki's built-in Easy Days configuration (weekly schedule) and applies it when rescheduling cards. You need to configure Easy Days in Anki's settings (Deck Options → Easy Days), not in the add-on settings.
Additionally, the add-on allows you to configure specific dates as easy days. You can add specific dates (e.g., holidays, busy periods) through Tools → FSRS Helper → Less Anki on Easy Days → Apply easy days for specific dates, which opens a window where you can manage and apply easy days for specific dates. Cards due on these specific dates will be rescheduled to avoid those days.
Note: After Anki 24.11, the easy days feature is built-in in Anki. The add-on reads Anki's Easy Days configuration to ensure consistency when rescheduling cards, allowing you to apply the same easy days settings during the rescheduling process.
Note: Easy Days only works for cards in the "review" stage. Due to technical limitations, FSRS doesn't modify the interval and due date of cards in the "(re)learning" stage. And it also doesn't reschedule cards whose interval is less than 3 days.
Fuzz example:
Exceptions:
If the fuzz range is too narrow or does not exist (review less than 3 days) to satisfy the selected easy days, the day of the week may be selected for review of the card.
Effect:
In Anki, some templates will generate multiple cards related in content from the same note, such as reversed cards (Front->Back, Back->Front) and cloze cards (when you make multiple clozes on the same note). If the review dates of these cards are too close, they may interfere with or remind you of each other. Dispersing siblings can spread the review dates of these cards out as much as possible.
You can set the maximum number of reviews per day for future days. The Helper add-on will find out the days that exceed the limit and postpone the extra cards to the future.
Hold down the Shift key and click "Stats" to enter the old version of Anki's statistics interface.
The FSRS Stats are based on all cards in your deck or collection (whichever is selected) that you have ever reviewed. They remain unaffected by the 1 month/year settings.
Interpretation:
The Steps Stats are based on cards that were first reviewed in the last 1 month/year or deck life and have at least two reviews. When a deck is selected, FSRS Helper aggregates over all decks that use the same preset. When the whole collection is selected, it keeps the whole-collection scope.
These stats are helpful for fine-tuning your (re)learning steps to achieve your desired retention in the short-term reviews.
How your learning steps affect the intervals:
So the 1st recommended learning step is based on the stability of your cards where you press Again during the first review.
For the 2nd recommended learning step, the scenario is more complex. It is based on the minimum of the stability of three kinds of cards:
True Retention is a statistic that shows the pass rate calculated only on cards with intervals greater than or equal to one day. It provides a better indicator of learning quality than the Again rate because it excludes cards in the learning phase.
To enable True Retention statistics, go to Tools → FSRS Helper → Show true retention. Note that this table may slow down the statistics page loading if you have a lot of reviews, so enable it with caution.
By default, mature cards are defined as cards with an interval of 21 days or longer. This cutoff can be adjusted in the add-on configuration (mature_ivl setting).
This feature allows you to correct historical misuse of the Hard button by converting Hard reviews (ease = 2) to Again reviews (ease = 1) within a specified date range. This can help improve the accuracy of your FSRS parameters and scheduling. You can also undo the remedy operation if needed.
Important: This feature modifies your review history. It is recommended to create a backup before using this feature. You can undo this operation if you have the remedy record file.
The add-on provides two reset options:
days_to_reschedule settinguser_files folder.Please see this wiki page: FSRS Helper WIKI
I'm Jarrett Ye, a diehard fan of spaced repetition. I used Anki during my high school life and attended my dream college. Now, I'm a researcher and developer in the field of spaced repetition. FSRS is my homage to Anki, expressing my deep gratitude for its invaluable support.
If you like FSRS Helper, please Rate this!👍 Your support will allow more people to enjoy this fantastic tool and improve their learning experience!
I referred to the following projects while developing FSRS Helper:
Thanks to all the contributors for their valuable contributions!
Python
99.2%