IncRem Scheduler¶
This page explains how the plugin calculates the next review interval each time you press Next on an Incremental Rem in the queue.
[!NOTE] "Interval" here means days until the next review after pressing Next. This is separate from the Initial Interval setting, which controls how many days pass between tagging a Rem as incremental and its first appearance in the queue (before any review happens).
Default Scheduler (Exponential)¶
The default scheduler uses a simple exponential formula:
where N is the review number (1st, 2nd, 3rd…) and Multiplier is a configurable setting (default 1.5).
Example progression (Multiplier = 1.5)¶
| Review | Exponent | Raw | Interval |
|---|---|---|---|
| 1st | 1.5¹ | 1.50 | 2 d |
| 2nd | 1.5² | 2.25 | 3 d |
| 3rd | 1.5³ | 3.38 | 4 d |
| 5th | 1.5⁵ | 7.59 | 8 d |
| 8th | 1.5⁸ | 25.63 | 26 d |
| 10th | 1.5¹⁰ | 57.67 | 58 d |
Strengths¶
- Extremely simple — only one setting to tune.
- Grows naturally for items you only need to revisit a few times.
The problem with pure exponential growth¶
Incremental Rems cover a wide range of processing depth. A single Rem may be:
| Stage | Example | Typical reviews |
|---|---|---|
| 📕 Raw import | An entire PDF book | 20–50+ |
| 📄 First extract | A chapter or section | 10–20 |
| 📝 Refined extract | A paragraph | 5–10 |
| 💡 Atomic fact | A sentence to cloze | 2–4 |
With the default scheduler:
- Books/chapters (many reviews needed): After the 8th review the interval is already 26 days and keeps growing. This means you'll barely touch the material, making it nearly impossible to finish processing.
- Single sentences (few reviews needed): The early intervals might feel too short (2 → 3 → 4 days) when you've already extracted the key idea and just want to space things out.
Beta Scheduler — Saturating Curve ✨¶
Enable this via Settings → Use Beta Scheduler (Saturating Curve).
The beta scheduler solves both problems with a saturating curve that:
- Starts at a comfortable interval you choose (default 5 days).
- Gradually approaches a ceiling you set (default 30 days), growing slower the closer it gets.
- Never exceeds the ceiling, so high-volume items are always revisited in time.
Formula¶
The constant 4 controls how quickly the curve saturates: by review 5 you're halfway between your first-review interval and the max.
Example progression (First Review Interval = 5, Max Interval = 30)¶
| Review | Fraction | Interval |
|---|---|---|
| 1st | 0 % | 5 d |
| 2nd | 20 % | 10 d |
| 3rd | 33 % | 14 d |
| 4th | 43 % | 16 d |
| 5th | 50 % | 18 d |
| 6th | 56 % | 19 d |
| 8th | 64 % | 21 d |
| 10th | 69 % | 23 d |
| 15th | 78 % | 25 d |
| 20th | 83 % | 26 d |
Why one global setting works for all item types¶
Because the curve saturates, the same settings naturally adapt to different items:
- Books and chapters: You can do 20+ reviews and the interval stays under your Max. You'll reliably come back often enough to continue processing.
- Single sentences: The first interval is already 5 days (not 2), giving you room to breathe before the next review, especially when you've already made a cloze deletion.
- Everything in between: The curve automatically adapts — early reviews grow quickly, later reviews settle into a steady rhythm.
Settings Reference¶
| Setting | Type | Default | Scheduler | Description |
|---|---|---|---|---|
| Initial Interval | Number | 1 |
Both | Days before a new IncRem first appears in the queue (before any review). |
| Multiplier | Number | 1.5 |
Default | Base of the exponential formula (Multiplier ^ N). Ignored when the Beta Scheduler is enabled. |
| Use Beta Scheduler | Boolean | false |
— | Toggle between the default exponential and the beta saturating curve. |
| First Review Interval | Number | 5 |
Beta | Interval in days after the first review. |
| Max Interval | Number | 30 |
Beta | Ceiling the interval gradually approaches but never exceeds. |
Why we do not adopt A-Factors¶
SuperMemo brings in its documentation:
The algorithm for determining inter-review intervals for topics is much simpler and is entirely under your control. Each article receives a specific priority. The priority determines which articles are reviewed first and which can be postponed in case you run out of time. Each article is also assigned a number called the A-Factor that determines how much intervals increase between subsequent reviews. For example, if A-Factor is 2, review intervals will double with each review. Priority and A-Factors are set automatically, but you can change them manually at any time. Priorities and A-Factors are determined and modified heuristically on the basis of the length of the text, the way it is processed, the way it is postponed or advanced, and by many other factors.
As we understand it, SuperMemo uses A-factor for topics (passive material, analogous to our IncRems) only because, when they implemented Topics and Incremental Reading, they decided to use the same frame already existing for items (flashcards), that, at that time, had this so called Absolute Difficult Factor governing the scheduling. But there is no theoretical ground to support an element-based (or IncRem based) multiplier. Science proved that spacing reviews of a given study subject improves learning and memory retention compared to massed practice. But the optimum interval theory is applicable only to active recall items (flashcards). Theoretically speaking, there is no such a thing as an "optimum interval" for passive reading. So, the aim to be achieved is a scheduler convenient enough to cope with the diverse learning situations and needs in a satisfactory way.
We evaluated that implementing an IncRem level set multiplier would be too complex and bring few value, as we already have the Reschedule feature, where the user can set an arbitrary interval length, and as we have implemented the Beta Scheduler aiming to achieve larger initial intervals and also cap intervals when they get too long (this way catering with the most commom and general needs).
Scheduling and the Queue¶
The scheduler described above determines when an Incremental Rem becomes due again. But once an item is due, how does the queue decide which item to show you first?
Due Date is a Yes/No Gate¶
The due date is not a ranking factor. The queue does not care about how overdue an item is — whether it was due 1 hour ago or 3 months ago makes no difference. The due date serves purely as a binary filter:
- Due (
Date.now() >= nextRepDate) → the item enters the pool of candidates. - Not due → the item is excluded entirely.
An item that has been overdue for months receives no special treatment over an item that became due just now. This is by design: in the context of passive reading material, there is no meaningful "urgency" metric tied to overdue time the way there is for flashcards.
Priority is the Sole Sorting Criterion¶
Among all items that pass the due-date filter, the queue sorts them strictly by Priority (lower number = higher priority). A Priority 5 item will always appear before a Priority 30 item, regardless of how long either has been waiting.
Controlled Randomness¶
After sorting by priority, the Sorting Randomness setting introduces a configurable degree of shuffling:
- 0% randomness: The queue is fully deterministic — always the highest-priority due item first.
- 20% randomness (default) and above: A slice of the sorted list is randomized via a priority-weighted lottery — lower-priority items get a chance to surface, but the items pulled forward are drawn in proportion to their priority weight (not uniformly). This prevents the queue from becoming too rigid while keeping the priority gradient intact, so higher settings stay safe. (Note: the slider is non-linear and eases in, so the left portion finely tunes small amounts while the middle reaches a meaningful ~25%.)