SM-20 Custom Scheduler & Algorithm Arena

AnkiWeb addon 1224106385

Brings experimental SM-2, SM-15, SM-19, SM-20, and FSRS v6 schedulers plus a weighted ensemble mode to Anki Desktop, with settings, prediction inspection, and optional optimization.
AI-generated summary; may contain mistakes.

schedulingfsrsbeta

Open on AnkiWeb Find alternatives

AnkiWeb

Votes
1 (πŸ‘ 1 Β· πŸ‘Ž 0)
Updated
2026-08-02
Anki versions
26.05~
License
Not found (this does not mean that the addon has no license)
Virus scan
No ClamAV match A match does not prove malware. No match does not prove that the code is safe.
Languages
Python, JSON
Description language
en

Maintenance

active

  • Last update or commit: 2026-08-02 (91 days before the snapshot).

GitHub

No GitHub repository linked.

Will it work on my Anki?

Version branches
Min AnkiMax AnkiUpdated
23.1026.05+2026-08-02
History across monthly snapshots

Loading…

Similar addons

load balancer archived

Balances review workload by checking cards due and average ease within Β±X days of the intended due date and rescheduling accordingly, with configurable per-deck options.

schedulingobsolete

104 votes 54% approval πŸ‘ 66 Β· πŸ‘Ž 38 ⭐ 20 Anki <=2.1.27 Updated 2020-08-05
reviewer apply different ease

Allows changing the default ease adjustments applied when rating Again, Hard, or Easy under the V1 scheduler by editing source code.

schedulingobsolete

2 votes 34% approval πŸ‘ 2 Β· πŸ‘Ž 0 ⭐ 0 Updated 2019-02-02

Description

This add-on brings an experimental family of advanced spaced-repetition schedulers to Anki Desktop: SM-2, SM-15, SM-19, SM-20, FSRS v6, and the default Algorithm Arena ensemble.

It is intended for users who want to experiment with modern and reverse-engineered scheduling methods. Please keep regular backups of your Anki profile and review the limitations below before relying on it for an important collection.

Algorithm Arena

Arena is the default mode. It runs five scheduling models in parallel:

  • SM-2
  • SM-15
  • SM-19
  • SM-20
  • FSRS v6

For each review, the models make recall predictions. Arena compares those predictions with the review outcome and adjusts their blend weights over time. The scheduled interval is derived from the weighted ensemble rather than a single model.

The weights are bounded to prevent any model from disappearing entirely or taking complete control:

  • SM-2: 0.1%–30.0%
  • SM-15: 2.0%–50.0%
  • SM-19: 25.0%–99.9%
  • SM-20: 15.0%–95.0%
  • FSRS v6: 0.1%–45.0%

Arena observations are retained while Arena mode is selected. Switching to an individual algorithm intentionally does not continue training Arena weights.

R-Metric

The settings dialog shows an R-Metric diagnostic comparing Arena with SM-19 over recorded Arena observations. A positive value indicates that Arena has had lower diagnostic prediction error than SM-19 in that history. It is useful feedback, not a guarantee of future retention or a statistical proof of superiority.

Card Prediction Inspector

After answering a card, press Ctrl+Shift+B to inspect the last answered card. The inspector shows each model's calculated stability, the Arena weights used for the review, elapsed time, and final scheduled interval.

Learning cards

Enable for Learning Cards controls how the add-on handles Anki's learning and relearning queues.

  • Enabled: the add-on bypasses Anki's short, minute-based learning steps and assigns an algorithmic day-based interval immediately. This follows the add-on's SuperMemo-style workflow.
  • Disabled: Anki Desktop controls cards already in learning or relearning; the add-on schedules normal review cards.

FSRS v6 is included as a review scheduler, but this add-on's shared learning-card policy is not a full reproduction of FSRS's official minute-step learning scheduler.

Settings

Open Tools β†’ SM-20 Settings to configure:

  • Scheduler mode: Arena, SM-2, SM-15, SM-19, SM-20, or FSRS
  • Learning-card behavior
  • Target retention
  • Maximum interval
  • Deterministic interval fuzzing
  • Button-interval visibility
  • Optional local FSRS and SM-20 parameter optimization

The local optimizer is optional and requires PyTorch in Anki's Python environment.

Grade mapping

For the SuperMemo-family models, Anki's four answer buttons are mapped as follows:

  • Again β†’ SuperMemo grade 1 (fail)
  • Hard β†’ SuperMemo grade 3 (pass)
  • Good β†’ SuperMemo grade 4 (good)
  • Easy β†’ SuperMemo grade 5 (excellent)

FSRS uses Anki's native Again/Hard/Good/Easy ratings directly.

Important limitations

  • This add-on is experimental and intended for Anki Desktop.
  • Reviews performed on AnkiMobile or AnkiDroid use their native scheduler, not this add-on's live scheduling logic.
  • The add-on stores its detailed per-card and Arena state in a sidecar database named sm20_collection_state.db in the Anki profile folder. Back it up together with your collection, especially before moving or restoring a profile.
  • Anki's revlog preserves Anki's native recorded interval for undo compatibility. The add-on's authoritative custom interval and model state are stored in its sidecar database.
  • As with any scheduler experiment, test on a copy of an important collection first.

Credits

The SM-20 and Algorithm Arena work in this add-on is substantially based on the SM-20 implementation and reverse-engineering work in Incrementum by melpomenex. Thank you to the Incrementum project for making this work available and for providing an important foundation for this add-on.

FSRS v6 support is based on the published FSRS v6 algorithm and parameters.

Source code, feedback, and support

There is currently no separate public repository for this add-on. You can inspect the complete installed source code in Anki:

  1. Open Tools β†’ Add-ons.
  2. Select this add-on and choose View Files.
  3. Open the folder 1224106385.

Questions, bug reports, suggestions, and feedback are welcome in the comments below.

Use carefully, keep backups, and enjoy experimenting with spaced repetition.