open-spaced-repetition / fsrs4anki

A modern Anki custom scheduling based on Free Spaced Repetition Scheduler algorithm
https://github.com/open-spaced-repetition/fsrs4anki/wiki
MIT License
2.76k stars 137 forks source link

Doc/deal with backlog after rescheduling #692

Open L-M-Sherlock opened 2 months ago

L-M-Sherlock commented 2 months ago

May close https://github.com/open-spaced-repetition/fsrs4anki-helper/issues/175

brishtibheja commented 2 months ago

A similar suggestion can be found in the Manual but with filtered decks. I assume they modified it because some of their users might not know about filtered decks. The way you do it is pull all the cards in the filtered deck using a search like deck:"deck_name" prop:due<-7 and make it the "overdue deck". Then you create another filtered deck called "just due deck", but you may just use your main deck for that one.

Backlog is bad, and I don't think you can really find a solution that feels great. Ultimately it's upto the users. I think the warning about rescheduling can be changed a bit? It's possible someone might look at their cards that just got due and not anticipate the huge number of reviews they are going to get over the next couple of days/weeks. "large number of cards getting due" can be a little more expressive than that.

On Tue, 17 Sep 2024, 18:13 Expertium, @.***> wrote:

@.**** commented on this pull request.

In docs/tutorial.md https://github.com/open-spaced-repetition/fsrs4anki/pull/692#discussion_r1763177746 :

@@ -90,6 +90,14 @@ This option controls whether the due dates of cards will be changed when you ena

If rescheduling is enabled, the due dates of cards will be immediately changed. This often results in a large number of cards becoming due, so is not recommended when first switching from SM-2.

+If you insist on rescheduling cards and then see a huge backlog, here is the suggesion to deal with the backlog: + +1. Set review sort order to “relative overdueness” +2. (Optional) set the deck option Maximum reviews/day

I feel like that's too clunky. @user1823 https://github.com/user1823 @brishtibheja https://github.com/brishtibheja suggestions are welcome

— Reply to this email directly, view it on GitHub https://github.com/open-spaced-repetition/fsrs4anki/pull/692#discussion_r1763177746, or unsubscribe https://github.com/notifications/unsubscribe-auth/BATHNXWB6H2L7DWIZKKXY7DZXAPWFAVCNFSM6AAAAABOLKR5D2VHI2DSMVQWIX3LMV43YUDVNRWFEZLROVSXG5CSMV3GSZLXHMZDGMBZGY2DKNRSGM . You are receiving this because you were mentioned.Message ID: @.***>

Expertium commented 2 months ago

New idea: only reschedule cards if at least one of these two conditions is met: 1) The new interval is different from the last one by more than 5%. Rationale: if we decrease the number of cards that are being rescheduled, it will also decrease the backlog for the user. If a card's interval has changed only slightly, it's fine to skip it. Example: old interval = 100 days, new interval = 90 days. abs(100-90)/100=10/100/10%. Should be rescheduled. 2) The previous interval is >1 year long. Rationale: if a long time Anki user switches to FSRS, he may have cards with very long intervals that, ideally, should be due now (or at least sooner than in 1 year), but aren't. This is bad. This means that optimal FSRS scheduling will kick in very late, and these cards will spend >1 year not being scheduled by FSRS.

This should decrease the amount of due cards when "Reschedule cards on change" is used while simultaneously ensuring that cards that were under SM-2 and had long intervals won't have to wait for literal years to finally be scheduled by FSRS. @L-M-Sherlock I think this should be implemented natively in Anki, as well as in the add-on rescheduling functions. @user1823 your opinion is also welcome

EDIT: I could've sworn I proposed something like 1) a long time ago. I wonder why it wasn't implemented.

L-M-Sherlock commented 2 months ago

EDIT: I could've sworn I proposed something like 1) a long time ago. I wonder why it wasn't implemented.

Because it cannot reduce the backlog in our experiments:

I even keep the branch: https://github.com/open-spaced-repetition/fsrs4anki-helper/tree/Feat/reschedule-cards-only-if-the-new-interval-is-different-by-x

user1823 commented 2 months ago

I think that this advice should be in Anki's FAQs because backlogs are a common problem, irrespective of whether the user is using SM-2 or FSRS.

There is a lot of good advice in https://controlaltbackspace.org/catch-up/. It would be great if someone can summarize that advice (and add your own points) and then open a PR in https://github.com/ankitects/faqs/pulls.

By the way, this is what I do (and advise to others) for dealing with backlogs.

user1823 commented 2 months ago

As far as this PR is concerned, we can just add a link to the Anki FAQ page (once it is created).

brishtibheja commented 2 months ago

The docs mention this method: https://docs.ankiweb.net/filtered-decks.html?highlight=backlog#catching-up

A seperate FAQ page would be nice, but would take time before dae actually gets to it. Perhaps, link to some good external sources (refold, controlaltbackspace) for now? Advice on backlog seems to be abundant on the internet.

user1823 commented 2 months ago

Users will be more willing to follow an "official" advice. So, a link to Anki FAQs would be better.

Also, I don't think that there is any rush to add the link. So, we can wait until the new page is created.