How Spaced Sets works

Spaced Sets is a learning companion that ensures you remember the topics you study, using science backed techniques (FSRS) by scheduling your revision sessions at the right times to improve your neural connections.

1 · Retrievability & the forgetting curve

The moment you finish reviewing a topic, your ability to recall it is at its peak — call it 100%. From there it decays along a curve. FSRS models this as retrievability R(t) — the probability you could recall the topic right now, t days since your last review.

FSRS schedules the next review the moment R(t) is predicted to fall to your target retention (90%). This is when a card becomes due. It is early enough that you haven't forgotten, late enough that the recall effort strengthens the memory.

60 70 80 90 100 0d 15d 30d 45d 60d target 90% → due due ≈ 14d recall %
A reviewed card's real FSRS recall curve. Recall starts at 100% and decays; when it reaches the 90% target, the card is due for another review.

2 · Why spacing works

Each successful review does two things: it resets the recall back towards 100%, and it increases the memory's stability so that the next decay is slower. That's why the intervals between successful revisions get longer and longer. Reviewing a topic when it's due, by actively recalling it before you are forced to look at your notes or the solution, is what makes it stick.

80 85 90 95 100 target 90% 0d 3d 17d 74d recall %
The same card over several reviews (green dots). Each review restores recall to ~100%; notice the gaps between reviews grow — the memory lasts longer every time.

3 · The memory score (your health bar)

The memory score, the big number on your dashboard answers one simple thing: "How much of what I've learned am I currently holding at full strength?" It's built directly on FSRS retrievability, in three simple steps:

# 1. each card's real recall right now (the forgetting curve above)
recall = R(t) — ~100% just after a review, decaying over time, 0% if never reviewed

# 2. turn it into a "full strength?" score, capped at 100%
health = min( recall / 0.9, 1.0 ) — at/above the 90% target counts as full

# 3. the dashboard score is the average across all your reviewed cards
score = average(health) × 100

Because a card counts as "full strength" until it decays past the target (90%), the score reads 100% when you're fully caught up — i.e., nothing overdue. As cards come due it slips, and reviewing them pushes it back up. That's the game: keep the bar topped up and be able to retrieve what you study.

This is also why the dashboard can tell you ↑ how much you'd gain by studying and ↓ how much you'd lose by skipping - it simply re-computes the score for those two futures.

4 · Durability & “durability-days”

Every card also has a stability — the number of days its recall takes to decay down to the target (90%). That's the width of the forgetting curve at the top of this page: a wider curve = a more durable memory that lasts longer before it's due again.

Each successful review widens that curve — with increasing gaps between reviews each time. So when the dashboard says “studying today adds ~N durability-days”, it means: if you review all your due cards, their stabilities will grow by N days in total.

Where the memory score is a health bar that rises and falls, durability-days are the ground you've permanently gained - a number that only ever grows when you study.

5 · How your ratings feed back in

When you review a card you rate your recall, and FSRS updates the schedule accordingly:

There's also a practice-daily toggle per card that ignores FSRS pacing and brings a card back every day - handy for things you want to drill regardless of the schedule.

6 · Further reading & the science

Spaced Sets stands on decades of memory research. Here are some of the most-cited papers and a few accessible deep-dives if you want to go further. (Paper titles link to Google Scholar.)

The spacing & testing effects — why spacing reviews and self-testing work:

From science to a schedule — the algorithms:

Accessible deep-dives:

The plots above are generated from the actual scheduler this app runs - not a stylised illustration.