Why can't anki give the exact number of cards you will seen in a day

Anki has one strange restriction I did not understand at first. It tells you how many cards you will see today, in each deck. However, this number is only an upper bound. In this post, I try to explain why it is impossible to give the exact number, unless severe restriction are made to anki.

Siblings' deck whose sum of limit is greater than the parent limit

A deck called Parent may have a limit of 10 review by day. And 5 subdecks, called child1, ..., child5. If each children have a limit of 5 review by day, it is possible no review of child5 happen at all today. Assuming that the actual number of review for the four first children is greater than or equal to 10.

Note in many deck

Quick recall: a note is something which contains a bunch of related information. From a note, some cards are generated. Those cards are the actual question/answer that the user see. Two cards generated by the same note are called siblings. Usually, when a card of a note is seen, none of its siblings are seen the same day. The siblings card are said to be buried[1].

Imagine that a note have a card in deck A and a card in deck B. To simplify our explanation, you can furthermore assume that no other cards are due today in those two decks. Then you see there is one card in deck A, one card in deck B. But actually, you will see a card in one of the deck, and no card in the other deck. Thus, the number of cards you see in deck B today depends on whether you saw deck A before deck B.

Any decent programmer now imagine the following solution: instead of counting, deck by deck, you can just count the total number of note such that you see one card of these note today. You have the exact number of cards you will see today ! That is exactly what I do to count the number of distinct notes in a deck and its subdecks. Sadly, it does not works for review !

Rules depending on the deck

Note that I stated «usually», when I spoke of burying siblings. You can choose not to bury siblings of cards you review. And this option can be configured deck by deck. Imagine that in deck A, you stated not to bury siblings. In deck B you choosed to bury siblings.

Thus, if you study deck A first, you will see two cards today, while if you study deck B first, you will see only one card today.

Interaction between cards of a same deck

Let's go back to the case where every siblings are buried. But imagine now that there is a second card due today in deck B. However, your configuration state that you never review more than one card by day by deck. Then, if you first review deck B, you will see the card whose sibling is in deck A, and you will not view any cards in deck A today. However, if you first review deck A, its sibling in deck B will be buried, but there will still be a card to review in deck B, thus you will have seen two cards today.

Sync problem

To be ever more precise, the number of card seen depends of your habit regarding synchronization. Indeed, if you see deck A on your computer, the card of deck B will be buried on your computer. But not on your smartphone, until you synchronize it. Imagine now that you see deck B on your smartphone and synchronize. Then you will have seen two cards today, while you should have seen only one.

Let's ignore this case. Indeed it should be clear to any user of anki that synchronization try to do its best[2], but nothing is garanteed when two platform are used.


[1] I should emphasize that a buried card is not a dead card. Indeed, in anki, a card can not be buried and dead/in the graveyard simultaneously !

[2] And this is exactly how it should be done. It would be worse if the case I imagined above would forbid synchronization !

Publié le vendredi 23 février 2018 par Arthur Milchior