Big update in FSRS4Anki v3.0.0

Continuing the discussion from How did I publish a paper in ACMKDD as an undergraduate? A fantastic research experience on spaced repetition algorithm. Open source the code and dataset:

In a recent week, I updated FSRS4Anki from v2.0.0 to v3.0.0. Here is a summary:

  • Features
    • Support parameters for sub-decks
    • Freeze initial stability in pre-training
    • Redesign the difficulty state
  • Fixes
    • Drop out cases with interval=0
    • Update difficulty before stability
  • New module
    • FSRS4Anki Helper add-on
      • It can reschedule all existing cards via FSRS.

Here is a simple comparison between Anki’s built-in schedule and FSRS:

For simplicity, the comparison only focuses on the intervals given in different rating sequences. The ratings in (re)learning steps will be ignored, only consider the first rating of new cards.

The default parameters of FSRS for comparison:

var w = [1, 1, 5, -0.5, -0.5, 0.2, 1.4, -0.12, 0.8, 2, -0.2, 0.2, 1];

Case one: press good continuously, with different first ratings.

Rating sequence: 1,3,3,3,3,3,3,3,3,3

Anki’s intervals: 1,3,8,20,50,125,313,783,1958,4895

FSRS’s intervals: 1,3,8,19,44,98,207,421,822,1550

Rating sequence: 2,3,3,3,3,3,3,3,3,3

Anki’s intervals: 1,3,8,20,50,125,313,783,1958,4895

FSRS’s intervals: 2,5,13,32,73,159,331,659,1263,2338

Rating sequence: 3,3,3,3,3,3,3,3,3,3

Anki’s intervals: 1,3,8,20,50,125,313,783,1958,4895

FSRS’s intervals: 3,8,21,50,114,245,501,983,1854,3377

Rating sequence: 4,3,3,3,3,3,3,3,3,3

Anki’s intervals: 4,10,25,63,158,395,988,2470,6175,15438

FSRS’s intervals: 4,11,29,70,158,337,684,1329,2481,4471


Sorry, it wasn’t clear to me: Do I still need to change the .js values on deck options? E.g. change decks name.

I’m asking because, normally, the add-on itself do all the job - I wouldn’t have to set the value for “let maximumInterval = 36000;” . The instructions wasn’t clear for me.

The default parameters are not adaptive to everyone. If you want the schedule to fit your memory, you need to use the optimizer to calculate the optimal parameters.


Thank you for the feedback. It would be helpful if you describe this in add-on page. Keep you nice work!

I described this in the comments of scheduler.js. I’m sorry that this scheduler and add-on are complicated and not user-friendly.

1 Like

Just came to say don’t worry about user-friendliness early on, this is all experimental, I’ve been following this for the last two weeks, amazing work so far, I’m going to implement it in my workflow today.

It’s always awesome to see work on the scheduler!


@L.M.Sherlock If I understand correctly, in your paper, you have retrieved the default parameters by training on the ~220 million dataset from Maimemo (English vocabulary for chinese users).

Does it make sense to expand this research further and ask for an open source dataset from the Anki community? Questions such as does the memory model fit well for other languages? Does the memory model fit well for all subjects? And many more. I feel like there’s untapped potential here and we can easily pool together a huge dataset for research, advancing the field of SRS

1 Like

Of course, more datasets on diverse materials are beneficial to SRS research. I have analyzed some review logs from FSRS’s users. There are significant differences between them.



As your papers say, it seems amazing work and should help many people building a next level algorithm

1 Like

Are your rating sequences only when cards are in the “graduated” phase?

In studying medicine, I frequently have a sequence of 1,1,1,1,3,1,3(graduates) and then 3,3,3,3,3,3,3 which means I’d follow the first path you’ve outlined after graduation. I’m curious how FSRS would compare with that. I haven’t had time to formally integrate this but I’m impressed with how far this has come and I’m eagerly following along! 加油!

The rating sequences contain the first rating in learning steps and other ratings after graduation. So in your case, the rating sequence is 1,3,3,3,3,3,3,3

So I would end up reviewing a little more often on average than Anki’s default?

As you did most of this on language, I’d be curious how it’d apply with medicine. I could collect databases for you?


Yes, you can share your review history with me. Or do the analysis for yourself in:

I meant if you wanted to repeat your initial analysis. I have a large following of medical students and could probably get you hundreds if not thousands of collections


Amazing! How can I access those collections? I am very interested to do the research on reviews of medicine stuffs.

1 Like

I can just send out an email and make a post and have people upload things for you? I’m not 100% sure we can collect that data on AnkiHub at the moment.

1 Like

It is really helpful. I worried that most users don’t want to share their collections. But even one typical data is useful.

1 Like

I imagine I can get a reasonable amount. Do you want to create a google form or something? If you have a place for people to upload things, I will share it on my socials and on reddit for you

I think if you made a post on reddit and here explaining to people exactly what to do, where to upload and how it would be helpful you could get lots of collections to analyse.