The SM-2 algorithm, in plain English

SM-2 is the scheduling formula Reps uses. It stores three numbers per card and does a little arithmetic after every answer. Here is what those numbers are and what happens to them.

There is arithmetic below, but nothing past multiplication.

The three numbers SM-2 keeps per card

SM-2 stores exactly three things about each card, and nothing else about your history with it.

The ease factor

The ease factor is a multiplier that says how fast this card's schedule stretches out. Every card starts at 2.5, so its interval multiplies by 2.5 each time you answer correctly: ten days becomes twenty-five, twenty-five becomes sixty-three. Your ratings move it up and down, and it can't go below 1.3 — without that floor, a card you keep getting wrong would drift toward zero and come back every few minutes forever.

The interval

The interval is how many days until the card is due again. It is the only one of the three numbers you ever see directly, and it is the output of the whole exercise.

The repetition count

The repetition count is how many times in a row you've gotten this card right. The first two reviews are handled as special cases, so the algorithm needs to know which one you're on. Miss a card and the counter resets to zero, sending it back to the start of the schedule.

What your rating does to the ease factor

Your rating adjusts the ease factor by a small amount, and that adjustment compounds over the life of the card. In Reps the four buttons map onto the grading like this:

RatingEase factorWhat happens to the card
AgainComes down the mostRepetition count resets to zero. The card goes to the back of the pile and you see it again before the session ends.
HardComes down a littleStill counts as correct. Interval grows, but slowly.
GoodLeft aloneThe normal case. Interval multiplies by the current ease factor.
EasyGoes upInterval multiplies by a larger number, so you wait longer to see it again.

The change is permanent until you change it back — rate a card Hard three times during a bad week and it's still carrying that reduced multiplier months later, when the card is no trouble at all.

Why the first two intervals are fixed

The first two intervals are fixed because multiplying by an ease factor doesn't work until there is something to multiply. A brand new card has an interval of zero days. Multiply zero by 2.5 and you still have zero.

So SM-2 hard-codes the start. Get a new card right and it returns in one day. Right again and Reps brings it back in three. From the third correct answer on, the multiplication takes over: new interval equals old interval times the ease factor. The spaced repetition page covers why that curve works.

learned 1 day 3 days 8 days 20 days 50 days day 0 day 1 day 4 day 12 day 32 day 82 two fixed steps, then × the ease factor
Six reviews cover 82 days. After the fixed 1- and 3-day steps, each gap is the last one times the ease factor.

A worked example: one card, several months

One card, followed from the day you make it: "Krebs cycle — where does it happen?" with the mitochondrial matrix on the back. The kind of card that fills a med and nursing deck. Intervals are rounded to whole days.

ReviewYou rate itEase factor afterNew intervalNext due
1 — Sept 3Good2.501 daySept 4
2 — Sept 4Good2.503 daysSept 7
3 — Sept 7Good2.503 × 2.50 = 8 daysSept 15
4 — Sept 15Hard2.358 × 2.35 = 19 daysOct 4
5 — Oct 4Again2.15Back to 1 dayOct 5 (and again today)
6 — Oct 5Good2.151 dayOct 6
7 — Oct 6Good2.153 daysOct 9
8 — Oct 9Good2.153 × 2.15 = 6 daysOct 15
9 — Oct 15Easy2.256 × 2.25 = 14 daysOct 29
10 — Oct 29Good2.2514 × 2.25 = 32 daysNov 30

The decimals are illustrative, but the shape is the point. The lapse on October 4 cost real time: the card had been out at nineteen days and had to climb back through 1, 3, 6 before it was near that again. And the ease factor never recovered to 2.50 — it went 2.50, 2.35, 2.15, up to 2.25, and every future interval is computed off that lower number. Without the lapse the card would have been out at roughly 45 days by early November instead of 32.

Note what "Again" did on October 4: the long-term interval reset to one day, but the card also went to the back of the current pile and came around again before the session ended. Getting a card wrong and then not seeing it for a day would be a strange way to learn it.

Ease hell

"Ease hell" is what happens when a card's ease factor gets driven down near the 1.3 floor and stays there, so the card's interval barely grows no matter how many times you get it right. A card stuck at 1.3 goes from ten days to thirteen days to seventeen. You will be reviewing it for years.

It happens for two reasons. One is honest difficulty — some cards deserve to come back often. The other is a habit: people press Hard when they mean "I got it, but it took a second," which isn't what Hard is for. Do that on fifty cards over a semester and the daily count creeps up without your understanding why.

The defense isn't in the algorithm. A card that keeps failing is usually a badly written card, and splitting it fixes more lapses than any scheduling tweak — that's the guide to writing flashcards that actually stick. The other defense: use Hard sparingly. Hard means you retrieved it with real struggle, Good means you retrieved it, and both are correct answers.

What Reps does with SM-2

Reps runs SM-2 and does the scheduling for you. You rate a card Again, Hard, Good, or Easy, and the next date is set.

The Reps review screen: a flipped card showing the answer, above the four rating buttons — Again, Hard, Good, and Easy.
The four ratings are the whole interface to SM-2. Everything the algorithm tracks sits behind them.

Reps shows you a due count and a date. The home page leads with the number that actually governs your behavior: cards due today, broken out by class.

Reps is a flashcard app for iPhone, iPad, and Mac. SM-2 scheduling, no account, no ads, no analytics, no server. Sync runs through your own iCloud account, so nobody at BSR LABS can see your cards. One payment of $6.99 USD covers all three platforms.

Get Reps on the iOS and macOS App Store

FAQs

What happens to a card's ease factor when I answer it wrong?

It comes down, and the repetition count resets to zero, which sends the interval back to the start of the sequence. The ease factor itself is not reset — it carries the reduction forward, which is what makes repeated lapses expensive over a semester.

Does SM-2 show me the cards I am closest to forgetting first?

No, and apps sometimes imply otherwise. SM-2 decides which day a card is due. Within a given day's queue the order is a separate decision, and in Reps the queue is shuffled. Shuffling is deliberate: a fixed order lets you learn the sequence instead of the material.

If I miss a week, does SM-2 handle it?

The cards pile up as overdue and you work through the backlog. SM-2 has no built-in notion of a vacation or a load balancer, so a week away means a heavy day when you come back. The cards themselves are fine — a card reviewed late is still a card reviewed.