Experimental scheduler

Damien Elmes's Avatar

Damien Elmes

14 Jan, 2018 10:48 AM

Please use this thread to discuss the experimental scheduling changes.

  1. 1 Posted by Tobias Predel on 19 Jan, 2018 09:24 AM

    Tobias Predel's Avatar

    Hello Damien,

    I'm excited to try out this new scheduler. Just to add that on German keyboards Ctrl+Shift+; won't pop up the debug console (aqt/main:py:689), switched to Ctrl+; will do it, but users need to hold shift key. And in your manual, there's a ":" instead of ";", so please update it to avoid confusion. Thanks for your great work!


  2. Support Staff 2 Posted by Damien Elmes on 20 Jan, 2018 01:59 AM

    Damien Elmes's Avatar

    Thanks, I've tweaked the instructions.

  3. 3 Posted by Siddhartha13 on 20 Jan, 2018 04:32 AM

    Siddhartha13's Avatar

    Hi Damien!

    Very exciting changes!!!

    Loving these specifically:

    - The day rollover time is now relative to the current local time. It is currently hard-coded at 4am.

    Finally! I had so much confusion when moving across (several) timezones the past few months.

    - Learning cards now use a 4th button - 'Hard' repeats the current step.

    Yes!!! Too many times have I had to hit Again because a card was not easy enough for Good. Also this should set new/review cards to have the same shortcut buttons too instead of Easy being 3 on New and 4 on Review cards! Consistency!!!

    - Reviews are no longer fetched from each subdeck in turn

    Kind of cool, I was hoping something like this would be enabled soon.

    Really excited for when 2.1 is out of beta!

  4. Support Staff 4 Posted by Damien Elmes on 20 Jan, 2018 06:34 AM

    Damien Elmes's Avatar

    Beta 32 is now available - please see the link at the top of this thread for updates related to the experimental scheduler.

  5. 5 Posted by Tobias Predel on 21 Jan, 2018 08:06 AM

    Tobias Predel's Avatar

    This error message spawns when reviewing last card in queue.

    Anki 2.1.0beta32 Python 3.6.4 Qt 5.10.0 PyQt 5.9.2
    Platform: Linux
    Flags: frz=False ao=False

    Caught exception:
      File "/home/tobias/Downloads/anki/aqt/reviewer.py", line 447, in _onTypedAnswer
      File "/home/tobias/Downloads/anki/aqt/reviewer.py", line 216, in _showAnswer
      File "/home/tobias/Downloads/anki/aqt/reviewer.py", line 497, in _showEaseButtons
        middle = self._answerButtons()
      File "/home/tobias/Downloads/anki/aqt/reviewer.py", line 545, in _answerButtons
        buf += but(ease, label)
      File "/home/tobias/Downloads/anki/aqt/reviewer.py", line 539, in but
        due = self._buttonTime(i)
      File "/home/tobias/Downloads/anki/aqt/reviewer.py", line 554, in _buttonTime
        txt = self.mw.col.sched.nextIvlStr(self.card, i, True) or " "
      File "/home/tobias/Downloads/anki/anki/schedv2.py", line 1318, in nextIvlStr
        ivl = self.nextIvl(card, ease)
      File "/home/tobias/Downloads/anki/anki/schedv2.py", line 1336, in nextIvl
        return self._nextLrnIvl(card, ease)
      File "/home/tobias/Downloads/anki/anki/schedv2.py", line 1367, in _nextLrnIvl
        return self._graduatingIvl(card, conf, False, fuzz=False) * 86400
      File "/home/tobias/Downloads/anki/anki/schedv2.py", line 677, in _graduatingIvl
        ideal = conf['ints'][0]
    <class 'KeyError'>: 'ints'

  6. 6 Posted by Tobias Predel on 21 Jan, 2018 08:09 AM

    Tobias Predel's Avatar

    (when I click on the Show Answer button)

  7. Support Staff 7 Posted by Damien Elmes on 22 Jan, 2018 02:57 AM

    Damien Elmes's Avatar

    Thanks for the report, I've fixed this in beta 33.

  8. Support Staff 8 Posted by Damien Elmes on 31 Jan, 2018 06:28 AM

    Damien Elmes's Avatar

    Beta 35 includes some updates to the experimental scheduler.

  9. Support Staff 9 Posted by Damien Elmes on 05 Feb, 2018 07:15 AM

    Damien Elmes's Avatar

    Beta 36 includes some updates to the experimental scheduler, and the scheduler has been integrated into the latest AnkiMobile beta.

  10. 10 Posted by mnhende2 on 05 Feb, 2018 08:25 AM

    mnhende2's Avatar

    @Damien:  I probably need to ask them directly, but do you happen to
    know if the Droid team is actively working on incorporating the
    experimental scheduler?

  11. Support Staff 11 Posted by Damien Elmes on 06 Feb, 2018 05:46 AM

    Damien Elmes's Avatar

    I can't speak for the AnkiDroid team, but given it's a fair amount of work to port over, I'm guessing they'll want to wait until it's stabilised and in regular use.

  12. 12 Posted by Tobias Predel on 17 Feb, 2018 10:38 AM

    Tobias Predel's Avatar

    Hello Damien,

    thanks for the many efforts you put into the scheduler. As it's a fair amount, it can only say by testing that I really like the forth 'hard' button on new cards because sometimes I can get the general idea of a diagram etc. on a card but repeating the step just after one minute is just too short so I really like that! I wonder myself whether it's possible to 'chain' cards because if I want to learn tasks/excercise in a specific order (e.g. exams where one exercise depends on another one) because till today this is only possible with custom learning and put the cramming order to last date modified? Or does that contradicts the philosophy of learning with Anki (cards are independent from each other)?


  13. Support Staff 13 Posted by Damien Elmes on 19 Feb, 2018 11:07 AM

    Damien Elmes's Avatar

    Sorry, it's not possible to enforce a specific ordering: https://apps.ankiweb.net/docs/manual.html#can-i-link-cards-together...

  14. 14 Posted by johnfgravelle on 19 May, 2018 12:18 AM

    johnfgravelle's Avatar

    This. is. amazing. I will let you know if any wonky behavior crops up, but this is a game-changer.

    Thank you so much for this.

  15. 15 Posted by gg on 25 Jun, 2018 11:23 PM

    gg's Avatar

    Hi Damien.

    Would it be possible to also tweak the hard button in reviews? Kindof like how you can adjust the interval for the good button. I think it would be very useful if the hard button allowed you to reduce the interval by some percentage, rather than continue to increase it. For example, right now if you have a 30 day interval and you find the card difficult, you can either see the card in 36 days, 45 days, or reset it completely. Often times you end up with a perpetually 'hard' card (because it doesn't really merit a reset), which can significantly and negatively affect motivation. Of course you can change what the again button does, but then you give up the ability to say "I totally forgot this card".

    I would also be interested in a way to lock or limit the ease of decks, collections, or card types.

    Lastly, have you considered allowing users to opt in to anonymous data collection? Perhaps there could be some enlightening information gleaned from the data.

    Thanks for your hard work.

  16. Support Staff 16 Posted by Damien Elmes on 26 Jun, 2018 02:35 AM

    Damien Elmes's Avatar

    Thanks for the suggestions, I'll give them some thought.

  17. 17 Posted by WT on 25 Aug, 2018 11:39 AM

    WT's Avatar

    Love the idea where Parent deck chooses review cards to present in the order its due not going through each subdeck one at a time.
    HATE the idea where subdeck review limit is ignored.

    Reason: I am a medical student. For each subject I have multiple sub-decks. I want my parent deck to show me review cards from each subdeck however, I also want them limit the card based on the settings of the subdeck. So for example if Pharmacology (Parent deck) has Cardio, Heme, and Resp (subdecks) and each has reivew card limit set to 5 then that should be 15 total parent cards that Pharmacology should show. However the order it shows in should be based on the cards' due date. But it should only show 5 from each. Based on my setting of subdecks review card numbers for the day

  18. Support Staff 18 Posted by Damien Elmes on 26 Aug, 2018 08:32 AM

    Damien Elmes's Avatar

    I'm afraid such a change is unlikely, as it is better to prioritise the more overdue cards that forcing a specific number from each deck, and enforcing separate limits for each subdeck would result in a decrease in performance.

  19. 19 Posted by Chief on 08 Nov, 2018 08:09 PM

    Chief's Avatar

    Is this still under development?

  20. Support Staff 20 Posted by Damien Elmes on 09 Nov, 2018 08:22 AM

    Damien Elmes's Avatar

    I don't expect the new scheduler to go away at this point, but it still needs more testing before it's ready for general use.

  21. 21 Posted by sabayon11 on 18 Nov, 2018 04:54 PM

    sabayon11's Avatar

    I can't see this "Option in the preferences screen to show day learning cards before reviews."

    I can't understand why option: "Show learning cards with larger steps before reviews" was added to Anki, instead of the functionality of "put ALL due learning cards first" add-on.

    When I have a large load of cards, my priority is to review cards that has small intervals, meaning those that I hit as Again yesterday. Cards with larger intervals, either will be hit Good or Again which means they need relearning. Cards with larger intervals are less likely to be affected (in terms of memory) by not being reviewed.

    I use Version 2.1.6-beta1, Qt 5.12.0 PyQt 5.11.3 for Linux

    Besides when I activated experimental scheduling it changed
    Learning 37
    To Review 211

    Learning 0
    To Review 230


  22. Support Staff 22 Posted by Damien Elmes on 19 Nov, 2018 12:48 AM

    Damien Elmes's Avatar

    The resetting of learning cards is mentioned before the experimental scheduler is turned on, and "larger steps" refers to cards with 1+ day learning steps.

  23. 23 Posted by sabayon11 on 19 Nov, 2018 10:03 AM

    sabayon11's Avatar

    Indeed. Today I had them as first in cue. I am glad to discover that this option was added to Anki and add-on is not needed anymore. I appreciate that. Thank you.

  24. 24 Posted by o7016408 on 21 Jan, 2019 04:01 PM

    o7016408's Avatar

    Is it true that the Hard button finally gets its own configurable "Hard factor" just like the Easy button has its "Easy bonus"?

    While we are there, maybe the wording could be unified from the beginning, since both refer to the same thing just for different buttons. So either both "Hard bonus" and "Easy bonus" or "Hard factor" and "Easy factor".

    Don't let it end up like "Graduating interval" and "Easy interval". They mean the same thing, the former for graduated cards via the Good button and the latter via the Easy button. Instead of using "Graduating interval" for the Good button exclusively, it should be reserved for references to the general graduating interval of any card. "Good interval" would be much more consistent instead.

    Same goes for "New interval" which is the name for the specific factor of the new interval after a lapse. It effectively makes it impossible to talk about the new interval of a card in general. It's the worst name choice of all of them.

    I tried to distinguish the terms by using uppercase for the name in settings and lowercase for the general term, but a normal user probably doesn't pay enough attention to even differentiate them. Poor wording makes understanding Anki really harder than it needs to be.

  25. Support Staff 25 Posted by Damien Elmes on 22 Jan, 2019 07:05 AM

    Damien Elmes's Avatar

    The hard factor is static, whereas the easy bonus is an extra bonus applied to the usual calculation, so I'm not sure making the wording consistent there would actually be an improvement.

    If you have suggestions for better wording of some options, please feel free to start a discussion in the community section so we can see what people think.

  26. 26 Posted by Alphyn on 30 Jan, 2019 04:54 PM

    Alphyn's Avatar

    The new scheduler is the best thing that has ever happened to Anki. I think there’s only one thing that’s not great about. It is that new cards from subdecks are still handled like in the old scheduler, they are drawn from the subdecks in the alphabetic order. I would love to see this made consistent with the way the review cards are handled.

    To elaborate, I’d be happy if the subdeck to show the next new card was selected either randomly, or in a weighed manner: the more new cards a subdeck has planned for today, the greater are its chances of showing the next new card. That would ensure a more even distribution.

    There’s an add-on that provides a temporary fix – Hoochie Papa https://ankiweb.net/shared/info/1173108619

    Add-ons don’t work on mobile, however, so it would be great to see this as a part of the new scheduler.

    I realize that there might be people that would like their reviews mixed, but not their new cards, so it would be wonderful to have an option to toggle this behavior in the New cards section of the deck options of the master deck, or something simillar.

  27. Support Staff 27 Posted by Damien Elmes on 31 Jan, 2019 05:39 AM

    Damien Elmes's Avatar

    I don't think it makes sense to change the default, as people often use subdecks to define a card ordering. An option is a possibility in the future, but I'm not 100% sold on the need for one, as you can largely achieve the same thing by simply putting all your cards into a single deck and not using subdecks at all. If such an option were added in the future, it would be subject to the same restrictions as review cards, where the card limit was defined only by the top deck.

  28. 28 Posted by Alphyn on 31 Jan, 2019 12:12 PM

    Alphyn's Avatar

    Thank you for the reply, Damien! I’ll try to sell the idea to you, then.

    I use 3 pre-made decks of cards with 3 different types of material (vocab, kanji, sentences). Two of them are shared decks and the third one I made from a huge spreadsheet. There are thousands of notes in them that are ordered following a certain logic. Some days I need to learn 5 new cards from each of the decks. Sometimes, I need to learn 15 new words from one of the decks, or maybe I don't want to learn any new cards from one of the decks. I can change this easily by changing the new card limit for each of the decks.

    If I were to put all my cards into a single deck I wouldn’t be able to do that. Besides, I fail to see how merging the decks would help with mixing the order in which the new cards are presented. In fact, the merged new card queue would be a monstrous unmanageable thing. Changing the order of the new card queue is what I do quite often depending on what I’m learning. This would be nigh impossible if I didn’t have three separate decks.

    I’ve been active on the Anki subreddit for several years, and from what I’ve seen, people don’t use subdecks to define card ordering. They don’t want to end up with 10 different fragmented review queues, especially taking into account that there was no way to properly handle them before you introduced the new scheduler. People use the actual card ordering within the decks instead. Tags also make a much better job at helping to organize the card order. What I personally do for one of the decks, is tag the words according to the chapters they are introduced in the textbook, suspend the entire new card queue and then, using tags, unsuspend the words I need learning for the next chapter. In other decks, I just use the reposition tool to change the order of the cards, as I mentioned.

    What people actually use the subdecks for is for learning different types of material simultaneously. This requires separate note types, separate deck settings and separate card queues. I don’t know If you’ve noticed, but people love the new scheduler because it lets them to study different types of material at once. This greatly helps with breaking the monotony of the daily card reviews. Mixing the types of activities can make the process of learning much more enjoyable. Only recently there was a post on Reddit about it. And mixing the new cards is a part of it.

    Mixing the new cards would also alleviate the restriction you mentioned, when the top deck overrides the new card limits of the subdecks. Let’s say I was planning on learning 15 new cards today, 5 cards from each deck. But I only had enough time to learn 5 cards total. Currently, this means that I learned 5 cards from the deck that happened to be the first alphabetically, and I learned zero cards from other decks. I’d rather learn one or two cards from each of the decks in this situation.

    Now, when I first downloaded the 2.1 RC, started testing it and realized that the new cards aren’t mixed in the new scheduler, I thought it was a bug. I thought something was wrong with either my collection or my Anki installation, the next thing I thought is that you just forgot to enable it and started waiting for a hotfix. And I’m not alone in this. People keep asking why the new scheduler doesn’t affect the new cards. They view it as an inconsistency or an oversight, not as a purposeful design decision. Someone even went as far as to write an add-on to “fix” this.

    So, taking all this together, I really hope you will consider adding the mixing of the subdeck new card queues, at least as an optional feature.

  29. Support Staff 29 Posted by Damien Elmes on 01 Feb, 2019 08:58 AM

    Damien Elmes's Avatar

    I appreciate you taking the time to elaborate on your use case, but I'm afraid it is difficult to implement what you want in a performant manner - while you may only have 3 subdecks, many users end up with deck trees with thousands of children, and having to check the due counts for each deck separately would make things slower. The review scheduling in contrast is a performance win, because Anki does not need to worry fetching each deck's counts separately.

  30. 30 Posted by Martin on 22 Apr, 2019 02:09 PM

    Martin's Avatar

    Hi Damien!

    Thank you so much for Anki, it's been life-changing for me.

    Like WT #17, I feel that not enforcing sub-deck limits is a step backwards. I have some decks that are tremendously important (eg. upcoming exams) and some where time doesn't matter much (eg. quotes). I have these sorted under separate parent decks, and all of them under a general "All" deck.

    This means that I can press "all" and review whatever is necessary, but during exam weeks I can easily "turn off" extracurricular decks. Furthermore, sometimes I add a bunch of quotes on the same day. I don't want a larger study load, so I limit "New" quotes to 3 a day. To get maximum inspiration without the quotes fading together, I also limit "Review" to 3 a day.

    With the new behaviour, I can't press "all" because then I'll be faced with hundreds of quotes at a time. This made me switch back to 2.0.

    I realise that it may be a performance hit, but in my world Functionality >> Performance until performance becomes painful.

    Does that make sense? :-)

Comments are closed, but you can start a new discussion.

Keyboard shortcuts


? Show this help
ESC Blurs the current field

Comment Form

r Focus the comment reply box
^ + ↩ Submit the comment

You can use Command ⌘ instead of Control ^ on Mac