Why We Switched to FSRS
Spaced repetition has been around since the 1980s, and most apps still schedule reviews the way they did then. pimReader now uses FSRS — here is what changed, and why you will notice.
Every spaced-repetition system answers one question: when should I see this again?
Get it right and you review each item just before you'd forget it — maximum retention for minimum time. Get it wrong in one direction and you waste hours reviewing things you already know. Wrong in the other and you forget material before it comes back.
For about forty years, most apps answered that question with variations on the same 1980s algorithm. pimReader now uses FSRS, and the difference is worth explaining.
The old way: one curve for everything
Classic schedulers work roughly like this: get an item right, multiply its interval by a fixed factor. Get it wrong, reset. There's an "ease" number per card that drifts up and down.
It works. It was a genuine breakthrough. But it makes an assumption that isn't true: that all your items forget at the same shape.
They don't. A cognate that's nearly identical in your native language and an irregular verb with four stem changes do not decay the same way. Treating them with the same multiplier means one gets over-reviewed and the other under-reviewed, permanently.
The classic algorithm also has a nasty failure mode people hit constantly: get a mature card wrong once, and its ease is punished so hard it never fully recovers. Cards get stuck in a rut of frequent reviews they don't deserve. The community name for this — "ease hell" — tells you how common it is.
The new way: a model per item
FSRS — the Free Spaced Repetition Scheduler — takes a different approach. Instead of one multiplier, it models three things for every individual item:
- Retrievability — how likely you are to recall it right now
- Stability — how slowly it decays once learned
- Difficulty — how hard this specific item is for you
Every review updates that model. The scheduler then picks an interval that puts your next review at a target probability of recall.
The practical consequence: the easy items get out of your way much faster, and the genuinely hard ones stop hiding.
Most people see a noticeably smaller daily review load for the same or better retention. That's not magic — it's the algorithm no longer spending your time on cards you demonstrably know.
What you actually see

Open an item for review and you get four buttons:
AGAIN · HARD · GOOD · EASY
Each one carries its own interval label — 5 Min, 1 D, 2 D, 4 D. Those aren't decorative. That's what will happen if you press it, calculated for this specific item and your history with it.
We think showing them matters. A scheduler that hides its reasoning trains you to press buttons semi-randomly. Showing the consequence makes you rate honestly, and honest ratings are the entire input to the model. The single biggest thing you can do to improve your own schedule is stop pressing "Good" on cards you actually fumbled.
There's also a progress slider if you want to override an item's state directly — useful when you know something is far more or less solid than the algorithm currently believes.
Do you need to do anything?
No. FSRS is on by default. Existing items keep their history and are scheduled going forward under the new model.
If you've been using pimReader for a while, expect your review counts to shift over the first few weeks as the model catches up with what you actually know. Usually downward, for the same retention.
The one thing that matters most
Whatever scheduler you use, the input is your honesty.
FSRS is a better model of forgetting than what came before, and it will do a better job of choosing your intervals. But it can only model the ratings you give it. Press Again when you had to think hard about it. Press Easy only when it was genuinely instant.
Do that, and the algorithm handles the rest — which is, after all, the entire point of having one.