Leech behaviour

HelenF's Avatar


07 May, 2018 03:23 PM

If I unsuspend a leech, it gets suspended again after half as many lapses. (This has been discussed before but looks like it was a while ago.) I'm using 6 for most decks, and the following 3 lapses seem really short - just when I've spent the time to learn that card again it's gone.

In Japanese vocab, I leave the suspended leeches for about 3 months, then unsuspend a block of cards and review them. I actually pass a good proportion, which is a reason not to reset them to new cards first. I delete some of them while reviewing. The others I might edit, or maybe I think they'll now be easy enough to learn because I've levelled up since they were suspended - many of them are then fine at the 10% modified interval, so I wouldn't have wanted to reset those either.

Something I didn't see mentioned in the previous discussions: if I unsuspend a leech, even though I failed it last time, it's in the review queue and not the learning queue; so if I then fail it right away it loses one of its already-reduced chances. E.g. I unsuspend a card with 6 lapses, fail it right away because I haven't seen it for months (7 lapses), then I'm only allowed one genuine lapse (#8), because the second genuine lapse (#9) suspends it. Similarly, a leech threshold of 4 means you can never fail the card again.


  1. Support Staff 1 Posted by Damien Elmes on 08 May, 2018 12:23 AM

    Damien Elmes's Avatar

    The current implementation doesn't support cards being in learning and suspended at the same time - this has been addressed in the experimental scheduler.

    3 does seem low, but at higher lapse counts waiting the full count each time seems like too much - so I'm not sure what the best way to address this generally would be. What do you suggest? I'll move this to the community section in case anyone else wants to chime in.

  2. 2 Posted by HelenF on 08 May, 2018 06:17 PM

    HelenF's Avatar

    I remember reading that it just uses the total lapse count - is that so? Then there would be strange results for previously-leeched cards if a user changed the leech theshold, or similarly for everyone with many of the possible rule changes.


    Indeed, I can check the code for that:

    if (card.lapses >= lf and
        (card.lapses-lf) % (max(lf // 2, 1)) == 0)
  3. Support Staff 3 Posted by Damien Elmes on 09 May, 2018 12:45 AM

    Damien Elmes's Avatar

    Yes, it's difficult to make changes without any side effects.

  4. 4 Posted by HelenF on 09 May, 2018 01:31 AM

    HelenF's Avatar

    Looking at the "user changed the leech threshold" case:

    Suppose someone studies for a while with a leech threshold of 10.

    • Change it to 11, then unsuspend some leeches: they get suspended again at the next lapse. (expected lapse 15)
    • Change it to 9: cards which already have 9 lapses don't get suspended until lapse 13. (expected the next lapse)
    • Change it to 6: cards with 6-9 lapses get suspended in an apparently random fashion. (expected the next lapse)

    To fix the above (and help with rule changes whether in the core or in add-ons), it would be necessary to know which lapse the card last got leeched on. I'm not sure whether it's currently possible to know that from the data available. If adding a new field, I guess it would be initially populated based on the user's current leech threshold.

  5. Support Staff 5 Posted by Damien Elmes on 15 May, 2018 12:16 PM

    Damien Elmes's Avatar

    This is not something that comes up a lot, so I'm not sure I can justify adding a separate counter at the moment. You make a good point about the side effects though - any changes without the separate counter may do more harm than good.

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