Is your feature request related to a problem? Please describe.
Descending retrievability sort is the optimal chose of sorting atm. It sacrifices “bad” siblings to maximise chances for “good” siblings, but sacrifices are painfull and not always nessesary. There is a room for improvement.
For example:
- DR is 85%
- A “good” sibling has retrievability of 87% today and 84% tomorrow.
- A “bad” sibling has retrievability of 86% today and 50% tomorrow.
No sacrifice is needed here if we review the bad-sibling first, but it will be made if we have optimal settings.
Describe the solution you’d like
The idea is to introduce some kind of “recommended sort” order, which will do mostly the same what “Descending retrievability”, while avoiding unnecessary sacrifices.
Solution I) The most primitive intuitive way to do it is to limit amount of cards we want to secure the progress on:
- First goes only cards, which will have less than 95% of DR tomorrow (81% DR in my example). They are sorted in Descending retrievability.
- Then goes the rest of the cards. They are sorted in Descending retrievability.
Solution II) The most optimal condition should have a seemless transition between those two groups obviously.
I state that sorting by descending “retrivability today minus retrivability tomorrow” should be pretty good.
The proof:
Consider a simplest case: a pair of old two siblings. Basically we want to increase a probability to save as many cards out of these 2 as possible.
If we review card1 today and card2 tomorrow we save “R1_today + R2_tomorrow” cards (this is probability).
If we test them backwards we save “R1_tomorrow + R2_today” cards.
So the descision is made based on condition:
R1_today + R2_tomorrow > R1_tomorrow + R2_today.
we can change it to be:
R1_today - R1_tomorrow > R2_today - R2_tomorrow.
So if we sort by (R_today - R_tomorrow) we do exactly what we need. No need to even check who is sibling to whom.
III) obviously this can be improved, one can consider all probabilities, like failing and reviewing first card tommorow, which will postpone the card2 for not 1 but 2 days. If you want I can improve the formula, but probably the best way to do it is to test different approaches with user data.