Spaced Repetition Interval Calculator

ANALife Services AuthorityNational 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

More Calculators

Read Next

Study Time Planner Authority Network America › Life Services Authority › National Calculator Authority .calc-container { max-width: 640px;...

References