Display an "FSRS Checklist"

That is true, but that difference is a drop in the bucket compared to the difference between using SM-2 and turning on FSRS.

We were going over the benchmark stats a few weeks ago – default FSRS is better than SM-2 for 92% of users – optimized FSRS takes that up to better for 99% of users. This checklist doesn’t need to be a flashing alert in everybody’s face. It’s mainly going to benefit folks who are already familiar with their Deck Options, but refuse to read the manual. :sweat_smile:

On the deck-study screen? Please no. For the reason Expertium already mentioned – it doesn’t correspond to a deck. But also because it doesn’t need to be surfaced for every user every day. And because there are tons of things that can make a deck “unhealthy” that this short checklist isn’t going to (and isn’t meant to) catch.

4 Likes

I think we may be talking at cross purposes a bit.

I think @Expertium was proposing here a more limited check and @David was proposing (on discord) a more expansive, but simplified “health check”.

I was thinking more about David’s expansive “health check” where you might eventually put lots more checks than those listed by Expertium.

I’m not sure if this is what David was thinking, but I was assuming it would be better to have it somewhere where it would be seen regularly (not necessarily the deck-study screen).

The point would be to regularly reassure users that everything is working as expected and provide tips without them having to know much about how Anki/FSRS works.

To try to prevent the questions like:

  • Is FSRS really better for me than the default SM2?
  • How often should I be clicking Optimise?
  • Is this RMSE good?
  • Is my retention good?
  • Should I adjust my desired retention?
  • FSRS is giving me long intervals, is it broken?
  • Have I messed things up by skipping days?
  • How do I tackle this backlog?

Then if it detected that something is wrong it would try to hide the complexity and give them a simple explanation with a quick fix / suggestions / signpost to help so they don’t have to decipher things themselves.

If you hide the “health check” away you run the risk that it is never seen by the very users it is targetting.
Maybe you show it somewhere obvious but have a setting to hide it or only show it if something is wrong?

An obvious flaw in this idea is you might not have checks for / not be able to automatically check for some of the things that make a deck “unhealthy” and then claiming the deck is “healthy” might confuse the user more.

Sorry for the essay. :sweat_smile:

5 Likes

@rossgb Thanks! You’ve summarized my thoughts very well. But I’ll note that I’m at capacity and won’t be able to see this through to completion (hence a somewhat throwaway comment on Discord, rather than a formal proposal). If it’s not going anywhere, kill it early and focus on something else which matters.

The proposed feature doesn’t yet have a ‘home’. I’d want to surface it when things have gone wrong (“I stopped using Anki, what do I do to clear my backlog?”), but that’s not a home. Probably around the same level as ‘Manage Note Types’/‘Check Database’, plus a link from FSRS settings.

The rationale:

  • Many users are intimidated by our settings and are looking for confidence that they’re using Anki correctly, or the settings to modify to get a satisfying experience.
    • FSRS adds some necessary complexity, and a lot of incidental complexity. I strongly believe over time we can streamline it to the point where it’s simpler than SM-2
  • A health check will always be needed for some of the situations listed above
    • ‘huge’ backlog, reaching review limit, partial days
    • Optimizing FSRS, while it’s not automatic
  • Some stats are intimidating, lacking context, and not actionable, and these should be moved inside the ‘health check’ (specifically True Retention, with profuse apologises to those who implemented it)
    • These make much more sense under ‘Anki Health’

A health check (as a progress bar + see more) feels like it accomplishes this while massively cutting down on cognitive load


Out of time for the reply; I’m not in favor of a checklist in the OP. It’s too much information. The summary needs to be as brief as possible.

6 Likes

Very cool design!:+1:

In my experience (add-ons) many users have several subdecks, because if you put all the subdecks in one parent deck you can randomize all the cards, this helps retention of memory more.
So the preset that needs to be displayed in the deck overview is not one, but all the subdecks in the deck.
My customized version of Pokemanki does something similar to that, it aggregates all the subdecks of the parent deck, so when you open the overview it shows multiple Pokemon (subdeck stats). like this:

Another idea is to display presets by deck tree like Home (deck browser). An add-on Enhance main window does this. The original add-on has not been developed much because the author is very busy. I’m developing a customized version (fork) with added UI, which is already capable of displaying the desired retention rate of FSRS in a simplified way. like this:

Though I think the checklist would definitely be helpful for users who want to highly optimize the FSRS, I think the concern with displaying extra info in the overview is that it may prevent the user from starting the review. (e.g. User tries to start the review but is concerned about the checklist, and consumes time changing settings and does not study.)
So I think it would be better to display this kind of info in options or stats (but Stats is not a per preset calculation).

2 Likes

I don’t think I can make them any shorter.

92 vs 99 is SM-2 vs FSRS optimized and unoptimized, the comparison of FSRS optimized vs unoptimized is 19,99 difference (correct me if i am wrong). So simply said 19,99% FSRS5 users would benefit from optimization of parameters, so solely this one thing is worth the effort imo. Considering the other safety-checks/issues the benefits would be even higher. I had in mind something like this bar from Shige’s comment or triangle icon appearing when issues arises or wtv is suitable here.
image

1 Like

Maybe there could be just 3 simple buttons
“fix” (fixes all the issues without further explanation)
“cancel” (just cancels menu, but might not be needed - depends on where the menu is)
“i” (redirects to more information/explanation/custom optimization menu)

So simply said 19,99% FSRS5 users would benefit from optimization of parameters

That is definitely not correct, lol. That would imply that most users don’t benefit from optimization.
Btw, just today LMSherlock finished benchmarking the actual variant of SM-2 that is used in Anki (as opposed to the original SM-2). Give me 10 minutes and I’ll make new graphs.

EDIT: alright, this took way more than 10 minutes because I couldn’t find the damn file.

I’ll be calling Anki’s algorithm “Anki-SM-2”, which is more concise than “Anki’s variant of SM-2”.

Anki-SM-2 with default parameters vs FSRS-5 with default parameters:

FSRS is better for 89.9% of users.

Anki-SM-2 with default parameters vs FSRS-5 with optimized parameters:

FSRS is better for 98.1% of users.

Anki-SM-2 with optimized parameters vs FSRS-5 with default parameters:

FSRS is better for 77.0% of users.

Again, same considerations apply:

  1. Anki’s algorithm wasn’t designed to predict probabilities, so an extra formula must be added.
  2. You can’t optimize the parameters of Anki’s algorithm in Anki itself. Theoretically, the optimizer that is used by FSRS works with Anki’s variant of SM-2 just fine, but it’s not implemented in practice.

A small version of the table that shows how often one algorithm outperforms another:

5 Likes

As much as I find this entire thread interesting, I am truly nothing more than a committed user and not a developer. My take would be that, if FSRS is indeed far superior to SM-2, then should the path forward rather be transitioning to FSRS altogether? There may be SM-2 adherents that will continue back-level; you could fork and let them have at it in continuing their own maintenance, or switch the options around so that FSRS is the default.

I say this because, even though I have indeed read the manual, the description made little sense to me because I read it before I really used Anki. After building my decks and studying as I went, quite honestly I have seen no reason to change settings or reread the manual. If FSRS were the way to go, then I would be just as happy (or happier)! Just remember, that most of us newbies are simply trying to learn with Anki as the tool; I’ll read the manual just enough to not plug Anki in while standing in a puddle of water. Beyond that, it is a major revelation to us that Anki indeed works while not being a flashcard program as we expected it to be. It took me ten years to finally realize that it was Anki that I really wanted to use all along!

3 Likes

Yes, it’ll be the default next version.

Ref: Make FSRS the default? · Issue #3616 · ankitects/anki · GitHub

3 Likes

That’s true. I always have the illusion of a complex and cluttered user interface that looks simple and user friendly, because in development I do not use the UI and control Anki with code only. And such complex interfaces are more interesting to develop than simple ones.

3 Likes

Well, I can truly say that Anki does what it does exceptionally well! I am currently using Anki for ancient Greek and Hebrew studies, creating my own decks as I go. Anki alone has proven far superior to all my workbooks, flashcards, and notebooks from the past.

4 Likes

You’re co-mingling warnings about things users have done wrong (such as large steps) with suggestions on things that might improve Anki’s efficiency, but is not particularly urgent (e.g. CMRR). I think for the former, such warnings make more sense directly next to the area the user is changing. For the latter, somewhere else like the deck list might make more sense, but the tricky thing is ensuring that any costly calculations are done the minimum number of times possible. Such suggestions might also benefit from a timed delay, to avoid overloading new users with too much information at once.

3 Likes