Suspected bug in FSRS Weight optimiser

Hello @dae @L.M.Sherlock. I have noticed something weird lately. I have a collection of 30000 cards spread over different decks. On a given day, there are some 13000 cards of them due. What I like to do is put all of them in a single filtered deck so that I can sort them all by relative overdueness (i.e. retrievability in the FSRS algorithm) and start grinding them.

Filtered Decks (and any other normal deck) stop the card counter at 9999, however the decks do indeed hold a lot more than 9999 cards (I checked this with AnkiDroid and it shows me that the decks have a total card number of 13000 and not 9999).

I do not like that card decks have a set maximum they can hold. (I would want that every card due is shown in the deck reviewer as intended so that this not affects my scheduling. All I wish for is for this card counter to be fixed to show the real amount of card due.

BUT this is not the main issue As I tried to optimise my weights with all my due cards in normal vs filtered decks, they show different results.
With filtered decks, I did that by clicking on deck options of a normal but empty deck and optimise weights.

So does the cards being in filtered decks disregard them from the optimisation? If that is not the case, what is the reason behind it?

Here is some context:

The limit you put on your filtered deck should be just the number of cards you intend to study in a single session.

If your filtered deck limit is 100, then it will find the top 100 cards in terms of relative overdueness and present them to you for review. Then for your next session, you can just click the Rebuild button again.

Conceptually, a filtered deck doesn’t really “hold” cards, it just borrows them temporarily from their original deck without severing that link, and they automatically return to that deck when you finish reviewing them.

I don’t think filtered decks participate in deck options at all. I have only one preset (in the drop-down at the top of the deck options screen), and it says “used by N decks”, where N is exactly the number of non-filtered decks I have.

Are they using the same preset?

Every single one of my decks have the same preset.

So if filtered decks do not participate in the optimisation of FSRS weights, why does it show me different results then?

Here is my entire collection

Here are my weights.Note that it says that it has used about 122000 reviews to get these weights.

Now if I put those same cards in filtered decks which makes it neater

the following FSRS weights are calculated

This time it says it has only used 59000 of my reviews.

So what is the reasoning behind this weird behavior?

Maybe I was wrong about that, actually. Some of the non-filtered decks that I have are nothing but parent decks with no cards in them, just for the purpose of creating a “tree” structure hierarchy with filtered decks organized underneath them.

But since the cards in a filtered deck really belong to their original deck, and automatically return to the original deck after review, I imagine that those reviews just contribute to the statistics of the original deck? Of course in my own case it wouldn’t matter because I only have one preset.

The way I organize my own study is, almost all of my reviews are done through filtered decks rather than directly studying the original decks.

Anyways, listen to L.M.Sherlock instead of me.


Does the number of reviews in optimizing is the same?


Oops, they are different when I create a filter deck.


All the decks are using the same preset in my test collection. But the cards in a filtered deck couldn’t be searched by the query preset:.

Related code:

So am I right that there is something weird with the optimisation?

The problem is the searching results are unexpected.

1 Like

Logged on preset: search ignores cards in filtered deck · Issue #2927 · ankitects/anki · GitHub


This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.