How are words spaced in Readlang's SRS?

I’m wondering what logic Readlang uses for the spaced repetition system (SRS). For example, if I remember a word that was last shown to me 15 days ago, will it appear again 16 days later? (+1 day)

The current system is working well for me, but I’m just curious about what to expect whenever I remember a word. This helps with motivation, too.

On a related note I’ve got >300 words to review and trying to bring this down count down as quickly as possible before adding more words.

Thanks in advance for guidance!

I manually mapped the intervals for a few words to get a sense of the pattern. Realised the SLS is based on an exponential multiplier, where each next interval is roughly 1.5 to 2.5x the current number of days. Guess that answers my question :sweat_smile::grinning_face_with_smiling_eyes:

@Zaia In case you are interested in some thoughts about how to approach a growing review stack, there was some discussion about that in this thread: Greater SRS control?

1 Like

Good detective work, your 1.5–2.5x observation is basically right. Here’s the how it works:

Readlang uses a modified SM-2 algorithm. Each word has its own “easiness factor” (between 1.3 and ~2.5+) that gets used to grow the interval after a successful review. So:

  • “I remembered” (active recall): next interval ≈ current interval × easiness factor, so roughly 1.3x for words you find hard up to 2.5x+ for words you find easy.
  • “Yes” in passive review uses a smaller multiplier than active recall (so passive reviews still grow the interval, just more gently).
  • “I forgot” / “Show answer”: interval resets to 0 and the word comes back into the ready-to-test pile.

The easiness factor itself nudges up or down each time you review the word: get it easily and it creeps up, struggle and it creeps down (floor of 1.3). So over time, words you consistently know well end up spacing out faster than words that give you trouble.

There’s also a bit of random jitter (±10%) on each interval to avoid big clumps of words landing on the same day.

One extra wrinkle: if you review a word later than scheduled (say it was due 10 days ago), Readlang uses the actual elapsed time as the base for the next interval, not the originally scheduled one. So overdue reviews don’t get “punished” with short intervals.

For your >300 backlog: don’t feel you have to clear it. Readlang prioritises by word frequency, so the most useful words come up first, and it’s perfectly fine to never empty the queue. If you’re curious about the history, I wrote a bit about the switch to this approach years ago: Spaced Repetition, Version 2 - Readlang Blog

3 Likes

Thanks for the background info :blush: Will showing the hint also effect the factor?

Yes. If you reveal the hint and then type the correct answer, Readlang scores it as ease 3 (the lowest “success” tier) with difficulty 0.5, rather than the ease 5 / difficulty 1 it’d give for an unaided correct answer.

Two effects on scheduling:

  • Easiness factor drops by ~0.14 (but not lower than the floor of 1.3). For comparison, an unaided correct answer using the original word nudges it up by 0.1, and an unaided correct alternative leaves it unchanged.
  • The next interval still grows, but more gently, because the halved difficulty pulls the interval multiplier closer to 1 instead of using the full easiness factor.

So it sits between an unaided success and “I forgot” (which resets the interval to 0). The word comes back sooner than if you’d nailed it without help, but it doesn’t restart from scratch.

1 Like