Read Frog

How Scheduling Works

Why one card comes back tomorrow and another in eight months, and what the optimizer learns from your own review history.

Read Frog schedules with FSRS, an open-source spaced-repetition algorithm. This page is about what it is doing and why, not about which numbers to set — for those, see Study Settings.

Three numbers per card

FSRS keeps a small model of your memory of each card, and it is made of three quantities.

  • Stability — how long this card stays learned. Concretely, how many days can pass before your chance of recalling it drops to about 90%. A new card has stability measured in minutes; a card you have known for a year has stability measured in months.
  • Difficulty — how hard this particular card is for you. It rises when you answer Again or Hard, falls slowly when you answer Easy, and it governs how much each successful review is worth: a difficult card's stability grows more slowly than an easy one's.
  • Retrievability — the chance you would recall the card right now. It starts near certain after a review and decays from there, faster on a low-stability card.

Only stability and difficulty are stored. Retrievability is computed from them and from how long it has been since you last saw the card.

Where the interval comes from

The next due date is the moment your retrievability for that card is predicted to fall to the memory retention you asked for — 90% by default.

That single sentence explains most of the behaviour you will notice:

  • The interval is not a multiplier on the last one. It is recomputed from the card's new stability each time.
  • Raising target retention shortens every interval, because the predicted curve reaches a higher number sooner.
  • A card whose stability barely moved gets barely more time than last time, however patiently you keep answering Good.

Your answer is what moves stability. Good on a card you recalled after a long gap moves it a great deal — the long gap is itself the evidence that the memory was strong. The same Good ten minutes after the last look moves it very little, because recalling something you just read proves almost nothing.

That is also why Again, Hard, Good and Easy are worth using honestly rather than kindly. They are the entire input. A card you always mark Good while actually struggling gets intervals built for someone who knows it.

The first day, and going wrong

A brand-new card does not get days at all. It walks two short steps in the same session — about a minute, then about ten — so you see it a few times before it leaves for a real interval. This is what the learning count in the session header is: cards partway through those steps.

Answering Again on a card that had reached real intervals is a lapse. The card drops back to a ten-minute step, its stability falls, and its difficulty rises. It then climbs again from a lower base, which is why one forgotten card can cost several weeks of apparent progress.

A card that keeps lapsing eventually stops being worth the room it takes. After eight lapses, Read Frog suspends it automatically and it leaves the rotation. You will find it under Suspended in the notebase's Cards list. A card that gets there is usually asking to be rewritten rather than re-learned: split it, add context to the front, or drop it.

Why two cards differ so much

Everything above is per card, so two cards you created on the same day diverge as soon as their histories do. Beyond that, three rules shape what you see:

  • The four intervals are always ordered. Easy is never shorter than Good, Good never shorter than Hard. The numbers above the grade buttons are real previews for this card, and they will never invert.
  • Intervals are capped, at 100 years — high enough that you will not meet the cap.
  • Intervals are not jittered. Some schedulers add a little randomness to stop cards created together from staying together. Read Frog does not, so two cards with genuinely identical histories get genuinely identical dates.

The optimizer

FSRS ships with default parameters fitted to a large body of other people's reviews. Your memory, your material and your grading habits are not that average, so Read Frog retrains the model on your own history, per notebase.

A training run works on a notebase's review log and produces a candidate set of parameters. It keeps the candidate only if it predicts your actual answers better than the parameters currently in use — measured on how well each one would have predicted reviews it was not fitted on, so a set that merely memorises your history does not win. The same run also recomputes recommended learning and relearning steps from the same data.

Roughly when it happens:

  • A notebase becomes eligible once about 64 of its cards have come back after a real interval. Reviews concentrated on a handful of cards do not count for much here — the model needs breadth, not volume.
  • After that, it retrains once another 64 or so reviews have accumulated.
  • Runs happen on the server, about once a week. Nothing to start, and nothing to wait for.

When a run has changed something, a notification appears on the notebase list: the new review schedule better reflects your memory patterns, with how much better it scored and how many review records it learned from. Dismiss it and carry on; your existing due dates are not rewritten, and the new parameters apply from your next answer onward.

Until a notebase reaches that threshold it runs on the defaults, and the defaults are good. There is nothing to configure and nothing to fix — a young notebase is simply scheduled by other people's averages for a while.

Looking at one card

In Templates & Cards, every card has a View memory button. It opens that card's forgetting curve — the decay from its last review, where it sits now, where the due date falls, and your target retention as a line across it — above the full review history with the grade, the elapsed time and the stability before each answer.

It is the honest way to settle an argument with the schedule. A card that feels overdue usually turns out to have a stability you had over-estimated, and one whose interval looks absurdly long usually earned it.

Across a notebase

The Statistics tab on a notebase, and the Statistics page across all of them, plot reviews per day, time spent, and long-term memory growth — the number of cards whose stability has passed 21 days. That last one is the closest thing to a measure of progress here: not how much you have saved, and not how much you have reviewed, but how much has actually settled.

On this page