Set Learn Ahead Limit to Zero

It seems to me a lot of people change their learn ahead limit values and later get confused when Anki’s behaviour changes.

From personal experience, that has happened to me (twice) and I thought it’s a bug. As we’ve already seen, it’s also very hard to express this issue in words, and find the solution.

In my case, my thinking was “I don’t know what learn ahead limit is, so I will keep it at zero; maybe I accidentally put some number here”.


Also consider the fact that learn ahead limit has this one fundamental problem with it: Minimum size of review stack - #3 by wbreeze

with only a few cards remaining in review, I’m answering them correctly merely because I’ve just seen the answer?

Personally sympathise with the author of this post, I also faced that same problem as a new user.


My proposal:

  1. Make the limit zero. The design of Anki already makes it clear that cards wait some time before coming back. The learn ahead limit’s default value gives users conflicting information.
  2. The congrats screen is already too text heavy, so somewhat hesitantly, I also suggest we tell users that they can increase the learn ahead limit if they want to study more.
1 Like

I don’t think we’ve been able to identify the source(s) of the advice to change learn-ahead to 0 (discussed a couple times in other threads). It still strikes me as odd advice, and it seems contrary to what most users would want.

I would completely guess (based on my not entirely reliable memory) that the questions about this feature are about

  • 90% of the “I want to see those cards sooner”/increase-your-learn-ahead variety
  • 10% of the “I want those cards to wait out the delay, like I had it before”/decrease-your-learn-ahead variety (wherein we find out that the person did change that themselves recently)

Yes, fakenumbers, I know (and I’ll stand corrected if anyone wants to survey the various help venues) – but what’s missing is any sort of a majority that would be better served by changing the default learn-ahead to 0.

The thought process we would want to foster there (and a lot of other places! :sweat_smile: ) is “I don’t know what learn ahead limit is, so I shouldn’t touch it.” But for those who second-guess themselves and think they accidentally did anyway, adding a reset-to-default loop :repeat:, like we have in Deck Options, would be a more direct solution.

It seems like there are a lot of recommendations that could help that user –

  • Bury those cards for tomorrow.
  • Stop answering them and come back later today (or in 10 minutes).
  • Accept the fact that flipping through those last few cards a few times before graduating them might have some benefit.
  • “Great, you got them right, so graduate them to Review.”
2 Likes

I think fate wants a solution to this today!

A user posted on Reddit a few hours ago asking how to fix this exact issue

Someone mentioned that it’s attributable to AnkiHub, and I begged them for a reference – which they found! :clap:t4:

I can’t honestly tell whether they are saying to leave learn-ahead set to the default of 0 (which is not the default) – or saying to leave everything else set to the defaults and change only this.

image

I don’t see an account here that looks like it belongs to the AnKing fella that posted this, but I do recognize the person who edited the post a few months ago, so I’m going to risk a ping.

Hi there, Andrew @andrewsanchez !
Pardon the interruption, but do you know why AnkiHub is recommending for users to change the learn-ahead limit to 0? I’d love to understand the reasons behind it. If not, I’ll follow up with Ahmed7 over there.

2 Likes

I feel like there might even be other people who suggest the same or very similar settings and we can not possibly stop it.

Learn ahead limit essentially makes your (re)learning steps defunct. And as we know, algorithmic considerations drive a lot of recommendations in Anki communities. Also this —

with only a few cards remaining in review, I’m answering them correctly merely because I’ve just seen the answer?

Hello!

The “What are AnkiHub’s recommended settings” FAQ is meant for users to understand what it means when they tick the box that says “use recommended settings” upon installation of AnkiHub decks.

These settings come from the butler add-on

When a user installs a deck from AnkiHub, they are met up with a pop up that says “would you like to use recommended settings”. If a user has that box ticked, it automatically sets the settings that are recommended. Here they are below

The primary reason for these “recommended settings” are for users that just want to jump in and start using decks without having to fiddle around with settings at the start.

Users can opt out of this upon installation of a deck. The primary reason for setting the learn ahead limit to 0 (from my limited understanding) is so when users click again, it does not show up right away and it has time to be “forgotten” and recalled in (15m) as per the settings we set. Nick or Abdulla might be better to ask on this specifically on why it’s set to 0

These settings are also what is recommended as part of this video for SM-2 (I can’t include links in posts but here is the YouTube video title: The BEST Anki Settings and Algorithm Explained (by an expert!)). Here we also recommend setting it to 0 unless it’s the end of the day and you want to see cards you have left over and you want to do those right away

The FAQ can be worded better. We are saying that the only thing we change is the learn ahead limit while the other global preferences are just set to default, the post does a poor job of conveying that. I will fix that, thank you for pointing that out :slight_smile:

I hope that clarifies a bit more!

2 Likes

I really appreciate you responding and explaining the butler settings for me! That makes a bit more sense. How long as the butler been including that as the default?

The “why” is definitely the thing I’m trying to understand, so I’d love it if Nick or Abdulla could elaborate. I imagine that a lot of care and thought went into generating these defaults, so the hub/butler experts must see some inherent value in having learners always wait out that step delay. What is that value?

Is setting learn-ahead to 0 a popular feature among your clientele? It looks like you get almost as many posts about it in your community as we do! But what I see are all folks asking how to avoid waiting that delay. (I admit it’s probably a slanted statistic, since your default is to wait it out. :sweat_smile: )

I also noticed that you have a very nice animated tutorial (to which I might start linking folks! :wink: ) showing how to increase it from 0 back up to “typically 15 or 20 minutes.” That makes me think that the request for how to increase it is pretty common.

I rewatched the video [direct link to the timepoint], thanks! The fella (is that Nick?) explains that he leaves it set at 0 – except for when it’s the end of the study day and he wants to finish up the last of the cards quickly. But here’s what confuses me about that: the setting doesn’t do anything at any other time.

I am trying to understand why you would keep it at 0 when it isn’t doing anything, but change it to a higher number to pull cards forward when it can do something. To me, it makes sense to leave it set at your preferred setting all the time.

1 Like

FSRS-5 doesn’t see the actual delays between steps so learn ahead limit might just make the algorithm slightly worse for you.

I can say that I leave it at 0 for the same reason/s listed by Ahmed above.

If I mark a card ‘again’ I don’t want that card to pop back up immediately (specifically because I just saw it, potentially moments ago). Potentially seeing the card again in, say, 30 seconds feels like an unwelcome confounder in whether or not I recall the info.

I feel like I’m maybe in the minority on this one, lol, but I leave the learn ahead limit at 0 and it never changes. That reflects my personal preference in that I want my learning/re-learning step to take its normal course, precisely because I defined them as whatever value/s I want the time duration to be.

At least on Ankihub, requests to change the learn ahead limit are not super common. Of course the most common stuff is the classics like “how do I install a deck? How do I use this thing?” Etc.

Requests related to the learn ahead limit do occur on occasion, though, usually related to some version of “I hit again; why does the number not go up immediately?” Just based on interacting with those folks it’s usually users who are new to Anki and, I suspect, are still getting the hang of a few different things (as are we all, tbh).

My humble 0.02 to the discussion

4 Likes

To me, it feels like those who don’t set it to 0 should be giving me the “why”. I am here for the SRS, of course I want the spacing between reviews. I wouldn’t want to study it back to back a few times and be done with it.

Now, I do understand “you can just study the card later”, but I don’t get how it is not a non-sequitur here. I can study the card later regardless of whether I graduated it or not! In fact, not graduating the card has advantages:

  • It means that if I click Again on such a card the next day, it won’t have its lapse count up by 1.
  • I can study the card the very next day regardless of my graduating interval or initial stability measurements.
  • I won’t make FSRS perform worse for all my cards. As I said, FSRS doesn’t know you didn’t fully wait out the delay.

I think a non-zero value for learn ahead limit requires more explanation than what me or @bbhavens or most AnkiHub users are doing. Also, as I said, the current default gives people conflicting ideas about what Anki is doing. For a very long time, I just thought this was a bug in the app.

I think no one needs to answer why they use a particular Learn Ahead Limit setting (zero or non-zero) because we already know the arguments for both.

  • Setting it to zero allows the user to wait for the duration they have configured in the (re)learning steps before they have to answer the card again.
  • Setting it to a non-zero value (especially a value greater than the step) allows the user to complete the reviews in one session without needing to wait for the cards to become due again.

What the user chooses depends on their personal goals.

We just need to decide the default value. In my opinion, the default value should be 0 because that means Anki will respect the steps the user has set. If the default value is non-zero, the step duration will sometimes be not respected and that’s confusing.

4 Likes

I think the best solution would be to do away with the learn ahead limit entirely. Ideally you get to the end screen and it says “you have finished your reviews. Your next study cards will be ready in X minutes. There are X learning cards left due today” and then there would be a button that says “Study them now” or something and allows you to skip that review. That would be far more user friendly. Perhaps @dae would be open to something like that?

6 Likes

Agreed. “Learn ahead limit” creates more problems than it solves.

2 Likes

Thanks to everyone for giving us so many perspectives to think about!

I agree completely. For one thing, we shouldn’t be setting or altering a default setting based on how any one person uses it or gets confused by it. That’s not a good way to set policy! :sweat_smile:

That’s an interesting thought. But looking at the bigger picture – we’re really only talking about what new users get as the default. It is rare for a new user to have deliberately or consciously set their steps, or to even have a sense yet of what learning steps would be a good fit for their own learning rhythms. [Heck, even experienced users are mostly setting their learning steps based on superstition, tradition, and guessing!]

I think we should pause before resting too much on the respect due to a new user’s learning steps.

It would be sad to give up on this functionality completely just to avoid deciding what the default should be. :wink:

But I would still really love to know what went in to deciding the AnkiHub/butler default would be to turn off learn-ahead. Is it as simple as an aversion to the feature in general? Or is there something about your userbase’s style of study that makes it a better choice?

1 Like

Why would this be sad? My suggestion is to do away with the setting but keep the functionality in a much more user friendly way. What do you think is worse about that?

Basically we set it up with what we recommend are the best settings.

2 Likes

I think it’s a great feature – one of the hidden gems in Anki! If I had started using Anki without it, I don’t think I would have thought to ask if it was possible, and yet it has made my life so much better.

It’s a feature that allows new users to feel like they are immediately in control of a much more significant thing than the length of their learning steps – their own study time. Using learn-ahead allows the study session to reach a natural and successful end – “Congratulations!”

Without it, the final day-1 lesson for a user is that you don’t say when you’re done – Anki says when you’re done. We all know there’s no particular magic in a 1m or 7m or 22m delay between reps of a card. Making the default that a user has to wait to finish their study day (or in the face of options to have to decide whether to wait …) puts more emphasis on the length of the learning steps than I think is warranted.

Yes, and why though? Why is no-learn-ahead the best setting? Maybe there isn’t anything more revelatory than just-because-it-is – and you certainly don’t owe me any sort of answer. But I genuinely am wondering the things I talked about above – especially after seeing how it’s presented in your community, and re-watching the video.

I would not call it more convenient that users will have to do additional actions for what used to be automatic. It is also less functional and will return all the cards regardless of the learning/relearning step.

What originally inspired this post is that we were trying to write an FAQ for this issue
(Mention Learn ahead limit in FAQ · Issue #240 · ankitects/anki-manual · GitHub). But,

The problem is that it often masquerades as other (more dramatic) things when it gets asked – cards are disappearing, learning steps are not followed, etc.

If you find something hard to document, I think sometimes it’s because the functionality is confusing. Anking’s suggestion is much better as it won’t confuse users about what Anki’s doing.

3 Likes

I see the problem is that something is changing users’ settings. Which makes them confused.
If this is a problem that must be solved by all means. Then you can try to prevent third-party programs from changing the anki settings. Or, when trying to change, show users a warning that their settings are being changed.

If a function is deleted every time to avoid documenting it, there will be nothing left of Anki.

It seems to me that the function is too much in demand to delete it.

1 Like

Some people also modify the settings themselves but I do like the idea. The pop-up can show people what settings are being modified and if they want to proceed.

The suggestion is to keep the function but design it to be intuitive to users. The idea is not to use documentation to fix a problem in design.

I as a new user couldn’t for my life figure out why the learning steps were not being followed. The past me could’ve been less frustrated trying to understand how the app works if learn ahead limit was designed differently. I simply wanted to learn a language, not learn about some app I was completely uninterested in.

3 Likes

I can imagine how uncomfortable I would be as a new user if the learn ahead limit was set to 0.

Before changing the basic value of the learn ahead limit, we need to make sure that it will do more good than harm