I was messing around with this idea and tried implementing it with the help of Claude. After testing the build it seemed to be working as expected. Working draft here: Allow card.desired_retention to be set in custom scheduling js by jhhr · Pull Request #1 · jhhr/anki · GitHub
Use case
Currently card.desired_retention is already set according to the deck config (25.07) or deck (25.09+). When the review card order is ascending/descending retrievability, the card queue order is based on each card’s individual DR value.
This would allow setting card-specific DR values and have fine control over which cards get prioritized in a backlog - for whoever is willing to code custom JS logic for themselves to do that (at least me).
The change wouldn’t affect normal scheduling since if the custom scheduling JS doesn’t modify the DR values, then things work the same as before.
My current workaround
Currently I’m already doing this by having a super-complicated setup where I set different flags into custom data in my scheduling JS and then use my own addon to automatically move cards to different decks that have different DRs. The downsides with this are
- the deck moving only happens on desktop due to being done by an addon,
- I have to have one deck for each possible DR value I want to switch between, leaving me with 20 extra decks littering my collection
If the card.desired_retention modification were native, then I’d only need one deck and it’d also work on mobile.
Any other power users who’d want this?