A New Algorithm for Anki

(I’ve cross-posted this in the Anki Reddit here).

Proposal here.

Basically, Anki’s 33-year old spaced repetition algorithm requires the user to tweak several opaque settings to indirectly set their desired retention rate.

I propose adding a new spaced retention algorithm to Anki that allows the user to directly set the retention rate and leave all optimisation to Anki. This algorithm is is fully backward-compatible, cross-platform compatible, and already exists as several plugins, so adding it to Anki only requires minimal effort.

The algorithm can live alongside the current one as an easily enabled/disabled alternative.

Those who are interesting in contributing can PM me and request permission to comment on the doc.

I think Anki’s algorithm is long due for an update :slight_smile: And kudos to eshapard for developing the algorithm, and others for turning it into Anki 2.1 plugins.

(EDIT: As a dev myself, I am happy to help make this happen on Desktop and Android. No iOS experience unfortunately. This post is to gather feedback first before proceeding with any next steps.)


I really hope this is going to be implemented. I’m doing all my reviews on mobile, so using the addons mentioned in the proposition is not an option for me, unfortunately.

People have been talking about a new algorithm for a very long time, but this looks like the first actually actionable solution.

You could argue that the old algorithm works well enough as it is, but just because something works, it doesn’t mean it can’t be further improved. Not to mention that SM-2 has its fair share of problems. I certainly would love to improve the efficiency of my reviewing because I feel that I’m doing a lot of useless reviews. I’m afraid to adjust the options because there are a lot of them and I have no idea how each of them would affect my workload and retention, I fear I’ll just make it worse. I would really prefer if that could be done automatically. Some of my friends I was trying to “sell” Anki too, said that they couldn’t figure out how to use it efficiently, and it was too hard to learn how to use, I’m sure It would also help in this regard.

Another issue of the old algorithm is the dreaded “ease hell”. People come up with all sorts of tricks in order to avoid it. It shouldn’t be like this. I was initially skeptical about it being such big of a problem, but I can’t help but just knowing of it’s existence affects my studies because I’m more cautious about pressing the hard button now. I feel like my evaluation of my knowledge of a card should not be affected by my knowledge of the shortcomings of the SRS algorithm.

Of course some people will prefer using the old algorithm, so it would be nice to make it optional, like the new scheduler (is it the default scheduler yet, by the way?). Especially considering that author claims that this algorithm is backwards-compatible and doesn’t require any changes to the database, unlike the scheduler.



You posted anonymously on AnkiDroid open collective. I’ll answer here because I can’t answer to anonymous post. What are you asking us exactly?

We follow upstream, so we won’t do it unless anki does it. How to plug a scheduling algorithm into Anki - Arthur Milchior's personal blog explains how to plug in any scheduling algorithm and then apply it to all synced device, so even without ankidroid, you can start directly, if it’s not already done.

As a suggestion, it may wins everybody time if you formulated your message as:

Hi. There is a cool algorithm better than what you already use, would you accept to incorporate it natively into your app ? Here are the details, I’ll be happy to do the work on computer and android if you accept so that you don’t have extra work

This way I would not have lost time following link from open collective to the forum to the google doc trying to figuring out what’s going on.

I wish you good luck with it

Thanks Arthur! OpenCollective is still new to me, so posting anonymously was a mistake.

I am trying to gather community interest as well as convince Anki developers that Anki should include a new algorithm with the app. As you said, AnkiDroid follows desktop Anki, so my goal is to persuade the lead developers on the various projects that this is a good idea and support the changes to desktop Anki, which should subsequently trickle down to the other versions.

I looked at your blog post. The addon you have there suffers from the same problem as the new algorithm: for mobile, the rescheduling needs to be done first on desktop and synced to other devices.

David also pointed me to the new 2021 scheduler, which might be a good way to do accomplish my objective. You can see his reply here.