# The SM-2 algorithm in Keeplet: intervals and ratings

Applies to: website and Android and iPhone app · Last updated: 2026-10-30

Keeplet schedules reviews with a version of the SM-2 algorithm (SuperMemo 2): every time you rate a card with one of the four ratings, Keeplet updates the card's ease factor and calculates how many days to wait before showing it to you again. **Great** (website) or **Perfectly** (app) lengthens intervals the most, **Somewhat** (website) or **Fairly well** (app) lengthens them less, **A little** sends the card back to tomorrow, and **Not at all** restarts it.

## The numbers Keeplet remembers for each card

For every card, Keeplet keeps three values:

| Value | Meaning | Starting value |
|---|---|---|
| Ease factor | How fast the interval can grow. The higher it is, the "easier" the card | 2.5 (minimum 1.3) |
| Interval | Days between the last review and the next one | 1 day |
| Successful reviews in a row | How many ratings other than **Not at all** you have given since the last time you got it wrong | 0 |

## The four ratings and their effect

The app and the website show the same four ratings, but the labels of the last two differ: the website uses **Not at all / A little / Somewhat / Great**, the app uses **Not at all / A little / Fairly well / Perfectly**. Each rating corresponds to a "quality" from 0 to 5 in the original algorithm:

| Rating (website / app) | Quality | Ease factor | Next review |
|---|---|---|---|
| **Not at all** | 0 | drops by 0.80 | 1 day; the card is also put back at the end of the queue in the session (in the app) |
| **A little** | 2 | drops by 0.32 | 1 day |
| **Somewhat** / **Fairly well** | 3 | drops by 0.14 | 1st review: 3 days · 2nd: 6 days · then interval × factor |
| **Great** / **Perfectly** | 5 | rises by 0.10 | 1st review: 5 days · 2nd: 6 days · then interval × factor |

The ease factor never drops below 1.3. With **Not at all** the successful-reviews counter goes back to zero; with the other three ratings it goes up by one.

## How the next review is calculated

1. **New ease factor**: the change shown in the table is added to the current value (SM-2 formula: `EF' = EF + (0.1 − (5 − q) × (0.08 + (5 − q) × 0.02))`).
2. **New interval**:
   - if the rating is **Not at all** or **A little** (quality below 3): 1 day;
   - if the counter is at 0 (first review, or the first after a **Not at all**): as many days as the quality (3 with **Somewhat** / **Fairly well**, 5 with **Great** / **Perfectly**);
   - if the counter is at 1: 6 days;
   - if it is 2 or more: previous interval × new ease factor, with decimals discarded.
   If you reviewed the card late, Keeplet applies the [late penalty](#what-happens-if-i-review-late) before these steps.
3. **Date of the next review**: the moment you give the rating plus the interval in days.

## Calendar example

This example is calculated by applying the rules above to a new card (factor 2.5) that you always give the same rating.

| Review | Always **Somewhat** / **Fairly well** | Always **Great** / **Perfectly** |
|---|---|---|
| 1st | after 3 days | after 5 days |
| 2nd | after 6 days | after 6 days |
| 3rd | after 12 days | after 16 days |
| 4th | after 23 days | after 46 days |
| Ease factor after the 4th | 1.94 | 2.90 |

In practice your ratings vary and the intervals adapt. If, after a run of successful reviews, you give **Not at all**, the card restarts: 1-day interval, counter at zero, and at the next successful review the 3 or 5 days come back.

## What happens if I review late?

Lateness counts. This is an addition exclusive to Keeplet that the original SM-2 does not have: in standard SM-2, if you review late and remember, you advance as if you had been on time. Keeplet instead compares the time since the last review with the interval that was planned:

| When you review | What happens if you remember the answer |
|---|---|
| Within 1.5 times the planned interval | You are on time: you advance to the next level, as above |
| Over 1.5 and up to 2 times the interval | You stay at the same level: the counter of successful reviews does not go up and the interval does not grow |
| Over 2 times the interval | You go back one level: the counter drops by one |

In detail:

- **When it applies.** Only if you answer **Somewhat** / **Fairly well** or **Great** / **Perfectly** on a card you have already reviewed at least once. With **Not at all** and **A little** the interval is 1 day anyway and lateness changes nothing; a new card, or one that just restarted after a **Not at all**, has no penalty.
- **Staying at the same level.** In the first two levels the interval is the level's own (3 or 5 days, then 6); from the third level on it stays equal to the previous one.
- **Going back one level.** The counter never drops below the first level (3 or 5 days). From the fourth level on, the interval becomes that of the previous level, that is the current interval divided by the new ease factor, with a minimum of 6 days.
- **The ease factor** depends only on the rating: lateness does not change it.
- **How it is measured.** The time since the last review divided by the planned interval, at the moment you give the rating. A rating given offline counts at the moment you gave it, not when it reaches the server. The calculation is the same with and without an account.

Example: a card with a 10-day interval and 3 successful reviews, with factor 2.5, rated **Great** / **Perfectly**. Within 15 days of the last review: it comes back in 26 days. Between 15 and 20 days: it comes back in 10 days. After more than 20 days: it comes back in 6 days.

## Where the calculation happens

- **With an account**, the Keeplet server calculates the due dates, starting from the result (successful or not, and difficulty) that the website or app sends it.
- **In the Android and iPhone app**, the same calculation is repeated on the phone: it is used to show under the ratings when the card will come back and to make review work without a connection, even without an account. The two versions use the same formulas.
- When you save your progress for the first time, the guest values are reset and the cards start over as new (factor 2.5, interval 1, no reviews): see [Save your progress](/en/help/app/save-your-progress).

## How Keeplet differs from the original SM-2

- There are four ratings (quality 0, 2, 3, 5) instead of the six levels of the original algorithm.
- At the first successful review the card comes back after 3 or 5 days, not after 1.
- The ease factor drops even with low ratings.
- Reviewing late has a cost: beyond 1.5 times the planned interval you do not advance, beyond 2 times you go back one level (the original SM-2 advances anyway).

## Frequently asked questions

### Why does a card rated "A little" come back tomorrow?

With **A little** the quality is 2, below the threshold of 3: the algorithm treats the card as one to see again soon. The review does not reset anything, though: **A little** raises the counter of successful reviews in a row by one (only **Not at all** resets it) and the ease factor drops by 0.32. Because the counter goes up, the next review is treated as the next one in the run: after a first **A little**, the following rating gives 6 days, and from the third review on the interval is calculated by multiplying the leftover 1-day interval by the factor, so it stays short until better ratings arrive.

### What is the ease factor of a new card?

2.5. It is also the value an imported card, or a card saved from guest mode, starts from.

### Can I choose a different algorithm?

No. Today Keeplet uses only SM-2. FSRS and other algorithms are not available.

### Why do the previews under the ratings change from card to card?

Because they depend on the state of that card: after several successful reviews, the previous interval and the ease factor weigh much more than the starting value. See [How to rate a card: the four ratings](/en/help/app/rate-a-card).

### How precise are the days shown?

They are whole days, counted from the moment you give the rating: a card rated at 6:00 pm with a 3-day interval becomes available again in three days at the same time.

## Related articles

- [Spaced repetition explained with Keeplet](https://keeplet.app/en/help/concepts/spaced-repetition)
- [Card mastery levels in Keeplet](https://keeplet.app/en/help/concepts/mastery-levels)
- [How to rate a card: the four ratings](https://keeplet.app/en/help/app/rate-a-card)
- [How to rate a card during review](https://keeplet.app/en/help/web/rate-a-card)
- [Active vs passive review in Keeplet](https://keeplet.app/en/help/concepts/active-and-passive-review)

Source: https://keeplet.app/en/help/concepts/sm2-algorithm-in-keeplet
