Spaced Repetition Interval Calculator
ANA›Life Services Authority›National Calculator Authority›Spaced Repetition Interval Calculator
.calc-container { max-width: 640px; margin: 2rem 0; padding: 1.5rem; background: #fff; border: 1px solid #ddd; border-radius: 8px; box-shadow: 0 1px 3px rgba(0,0,0,0.06); font-family: system-ui, -apple-system, sans-serif; } .calc-container h3 { font-family: Georgia, serif; font-size: 1.15rem; color: #1a1a1a; margin-bottom: 1rem; padding-bottom: 0.5rem; border-bottom: 2px solid var(--ac, #3d5a80); } .calc-row { display: flex; align-items: center; gap: 0.75rem; margin-bottom: 0.75rem; flex-wrap: wrap; } .calc-row label { min-width: 160px; font-size: 0.9rem; color: #333; font-weight: 500; } .calc-row input[type="number"], .calc-row select { flex: 1; min-width: 120px; max-width: 200px; padding: 0.5rem 0.6rem; border: 1px solid #ccc; border-radius: 4px; font-size: 0.9rem; font-family: system-ui, sans-serif; color: #1a1a1a; background: #fafaf8; } .calc-row input:focus, .calc-row select:focus { outline: none; border-color: var(--ac, #3d5a80); box-shadow: 0 0 0 2px rgba(26,74,138,0.12); } .calc-row .unit { font-size: 0.82rem; color: #888; min-width: 30px; } .calc-btn { display: inline-block; margin-top: 0.5rem; padding: 0.55rem 1.5rem; background: var(--ac, #3d5a80); color: #fff; border: none; border-radius: 4px; font-size: 0.9rem; font-weight: 600; cursor: pointer; font-family: system-ui, sans-serif; } .calc-btn:hover { opacity: 0.9; } .calc-result { margin-top: 1.25rem; padding: 1rem 1.25rem; background: #f0f6fc; border-left: 3px solid var(--ac, #3d5a80); border-radius: 0 6px 6px 0; display: none; } .calc-result.visible { display: block; } .calc-result-label { font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.06em; color: #666; margin-bottom: 0.25rem; } .calc-result-value { font-size: 1.6rem; font-weight: 700; color: var(--ac, #3d5a80); } .calc-result-detail { font-size: 0.85rem; color: #555; margin-top: 0.5rem; line-height: 1.5; } .calc-note { margin-top: 1rem; font-size: 0.8rem; color: #888; font-style: italic; } .calc-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0.75rem; margin-top: 0.75rem; } .calc-grid-item { padding: 0.6rem 0.8rem; background: #f8f9fa; border-radius: 4px; border: 1px solid #eee; } .calc-grid-item .label { font-size: 0.75rem; color: #888; text-transform: uppercase; letter-spacing: 0.04em; } .calc-grid-item .value { font-size: 1.1rem; font-weight: 600; color: #1a1a1a; } @media (max-width: 720px) { .calc-row { flex-direction: column; align-items: flex-start; gap: 0.3rem; } .calc-row label { min-width: auto; } .calc-row input[type="number"], .calc-row select { max-width: 100%; width: 100%; } .calc-grid { grid-template-columns: 1fr; } } .calc-chart { margin: 1rem 0; text-align: center; } .calc-chart svg { max-width: 100%; height: auto; } .calc-chart-legend { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.6rem 1.2rem; margin-top: 0.6rem; font-size: 0.8rem; color: #555; } .calc-chart-legend span { display: inline-flex; align-items: center; gap: 0.3rem; } .calc-chart-legend i { display: inline-block; width: 10px; height: 10px; border-radius: 2px; font-style: normal; } .calc-related { max-width: 640px; margin: 2rem 0 1rem; padding: 1.25rem 1.5rem; background: #f8f9fa; border: 1px solid #e8e8e8; border-radius: 8px; } .calc-related h3 { font-family: Georgia, serif; font-size: 1rem; color: #1a1a1a; margin: 0 0 0.75rem; padding-bottom: 0.4rem; border-bottom: 2px solid var(--ac, #3d5a80); } .calc-related-list { list-style: none; padding: 0; margin: 0 0 0.75rem; display: grid; grid-template-columns: 1fr 1fr; gap: 0.4rem 1.5rem; } .calc-related-list li a { font-size: 0.88rem; color: var(--ac, #3d5a80); text-decoration: none; } .calc-related-list li a:hover { text-decoration: underline; } .calc-browse-all { margin: 0.5rem 0 0; font-size: 0.9rem; font-weight: 600; } .calc-browse-all a { color: var(--ac, #3d5a80); text-decoration: none; } .calc-browse-all a:hover { text-decoration: underline; } @media (max-width: 720px) { .calc-related-list { grid-template-columns: 1fr; } }
Spaced Repetition Interval Calculator
Calculate your next optimal review interval using the SM-2 spaced repetition algorithm — the same method used by Anki and SuperMemo.
Repetition Number (n)
How many times you have successfully reviewed this item (1 = first review)
Easiness Factor (EF)
Difficulty multiplier (1.3 = hardest, 5.0 = easiest; default 2.5)
Response Quality (q)
5 — Perfect response 4 — Correct after hesitation 3 — Correct with difficulty 2 — Incorrect; easy to recall 1 — Incorrect; remembered on seeing answer 0 — Complete blackout
How well you recalled the item (0–5 scale)
Previous Interval (days)
Number of days since the last review (0 if this is the first review)
Calculate Next Interval
function spaCalc() { var n = parseFloat(document.getElementById('spa-repetition').value); var ef = parseFloat(document.getElementById('spa-easiness').value); var q = parseInt(document.getElementById('spa-quality').value); var prev = parseFloat(document.getElementById('spa-prev-interval').value);
// --- Validation --- if (isNaN(n) || n ⚠ Repetition number must be a positive integer (≥ 1).'; return; } if (isNaN(ef) || ef 5.0) { document.getElementById('spa-result').innerHTML = '⚠ Easiness Factor must be between 1.3 and 5.0.'; return; } if (isNaN(prev) || prev ⚠ Previous interval must be 0 or greater.'; return; }
// --- SM-2 Algorithm --- // Step 1: Update Easiness Factor // EF' = EF + (0.1 - (5 - q) * (0.08 + (5 - q) * 0.02)) var newEF = ef + (0.1 - (5 - q) * (0.08 + (5 - q) * 0.02)); if (newEF ' + 'Next Review Interval' + '' + interval + ' day' + (interval !== 1 ? 's' : '') + '' + resetNote + '' + 'Review Date' + '' + dateStr + '' + 'Updated Easiness Factor' + '' + newEF.toFixed(2) + '' + 'Next Repetition Number' + '' + nextN + '' + 'Response Quality' + '' + q + ' — ' + qualityLabels[q] + '' + ''; }
#### Formula — SM-2 Algorithm
1. Update Easiness Factor (EF):
EF' = EF + [0.1 − (5 − q) × (0.08 + (5 − q) × 0.02)] Minimum EF = 1.3
2. Calculate Next Interval I(n):
If q < 3 → reset: I = 1 day (start over) If n = 1 → I(1) = 1 day If n = 2 → I(2) = 6 days If n > 2 → I(n) = I(n−1) × EF
Where q = response quality (0–5), EF = easiness factor, n = repetition number.
#### Assumptions & References
- Implements the SM-2 algorithm by Piotr Woźniak (SuperMemo, 1987), the most widely used spaced repetition algorithm.
- The default Easiness Factor is 2.5; it adjusts after each review based on response quality.
- EF is clamped to a minimum of 1.3 to prevent intervals from collapsing.
- A response quality of q < 3 (failed recall) resets the repetition counter to 1 and schedules a next-day review.
- Reference: Woźniak, P.A. (1990). Optimization of Learning. SuperMemo World. supermemo.com/sm2
- Used by: Anki, SuperMemo, Mnemosyne, and many other flashcard applications.
More Calculators
- Gutter Sizing Calculator
- Macronutrient Balance Calculator
- Stress & Cortisol Load Estimator
- Intermittent Fasting Window Calculator
- Body Toxin Load & Detox Timeline Estimator
- Target Heart Rate Zone Calculator
Read Next
Study Time Planner Authority Network America › Life Services Authority › National Calculator Authority .calc-container { max-width: 640px;...