Clarify what optimal retention means

In the most recent beta, “Compute optimal retention” has been reworked. Previously, it maximized the sum of all retrievability values aka knowledge. Now it will minimize workload (in minutes of studying)/that sum. More details here: The Optimal Retention · open-spaced-repetition/fsrs4anki Wiki · GitHub
I’m worried that this feature is unintuitive and hard to understand for many users. So I want to ask people for suggestions on how to make it more clear. This is what I proposed:

Another user said that if we add a text annotation for everything, the UI will be very cluttered. I agree, but I also think that “Compute optimal retention” needs special treatment because it’s a rather hard-to-understand feature even among FSRS-related features, which already cause lots of confusion among users.

I posted this in the beta thread, but didn’t get any useful responses, so I’m makign a separate issue specifically to discuss how to make this feature easy to understand and how to convey to users what this feature does.
Anyway, any suggestions on how to make it clear what “Compute optimal retention” is doing (and ideally in a short and concise way) are welcome.

I’m not sure a single sentence is going to help that much. Are we expecting users to accept the provided value as gospel? From that single sentence, I presume users would assume that’s the value they should. Isn’t it actually more nuanced? A user may wish to pick a value other than the suggested one, depending on their desired retention and available time.


As I said on github, can this not be calculated from knowledge/workload. It makes more sense to me.

From my perspective the most not-clear element is how to choose number of days to simulate. In 24.04 beta the field seems clickable, but no help section pops up. Adding a help section with explanation would be very helpful.

1 Like

I completly agree with this. Say, If I’m trying to crack a competetive exam (which I am) I’ll obviously need to put a higher retention because the goal is to beat other people. Say again, if I’m a hobbyist language learner at the same time, then time can become a limiting factor for me.

I think people will need to know what is ‘optimal retention’ lest it doesn’t align with what they are trying to do with SRS. It may not be increasing workload/knowledge for everyone.

1 Like

Of course you are free to suggest a better idea.

My thinking is that the behavior and tradeoffs are better explained in the help text, instead of directly in the window.

1 Like

Few people read help texts. Maybe make it so that it automatically pops up the first time the user unfolds the “Compute optimal retention (experimental)” section? That way, the user will get an explanation once they try to use this feature for the first time.
Slightly unrelated, but since it has been reworked, the text that I underlined should be removed.

1 Like

Each time we make a change, the translators will need to redo the translation. I’m fine with removing that text, but perhaps there are other changes to that should be made at the same time?

@L.M.Sherlock are any further changes to this feature planned? I’d prefer not to tweak the docs if things will change again soon.

I don’t have any plan to change this feature now except the performance issue.

For the exam case, a simulator will be more helpful because the area of knowledge for test is finite and fixed. The optimal retention feature is designed for long-term study.


Does anyone have a suggestion on how the new help text should read?

“This tool assumes that you’re starting with 0 learned cards and will attempt to find a value of desired retention that provides the best ratio of time spent studying versus the amount of material memorized. The output depends on FSRS parameters, your studying habits, the number of days to simulate, and your maximum interval.”

Also make it so that if the user clicks on “Days to simulate”, this text would show up.

I find myself returning to my earlier question - are we expecting users to accept the provided value as gospel? If not, perhaps we should be giving some advice? What about something like the following?

This tool assumes that you’re starting with 0 learned cards, and will attempt to find the desired retention value that will lead to the most material learnt in the least amount of time. This number should be used as a reference when deciding what to set your desired retention to. You may wish to choose a higher desired retention, if you’re willing to trade more study time for a greater recall rate. Setting your desired retention lower than the optimum is not recommended, as it will lead to more work without benefit.


Sounds good!

“This number should can be used as a reference …”
“This number should only be used as a reference …”

1 Like

The wiki gets too technical for me at a point. Can someone answer me please in simple language?
I’m thinking if say, while trying to minimise workload/knowledge I end up spending 10 mins more on a deck than I would be if I was minimising only workload. There is a sunken opportunity cost there right? I could’ve maybe learnt new cards in the same time and truly minimised my workload/knowledge ratio. My question is does it and can it take that into account?

It assumes that you learn a fixed amount of new cards per day, specifically, 10. Before you ask: no, changing the number of daily new cards doesn’t shift the minimum.

1 Like

You read my mind on what I was going to ask xD

This feature has a lot of limitations:

  1. It assumes that you learn 10 new cards per day.
  2. It assumes that your deck size is 10*days to simulate.
  3. It doesn’t take into account the fact that you may have non-new cards already. It assumes that every single card is new on day one.

We will likely integrate the full simulator into Anki in the future. The issue is that it will have a tremendous number of settings. “Compute optimal retention” only has one setting now, which is days to simulate. It’s limited, but simple to use.