Exponential Backoff Calculator

Pick a retry strategy — full jitter, equal jitter, decorrelated jitter, or deterministic — set the base delay and cap, and see the next 8 attempts with per-attempt delay, cumulative time, and the random draw window. Export the schedule as TSV, JSON, or as a copy-paste JavaScript function. Pure client-side, no upload, no tracking.

Min
Mean
Max
Total
# Delay Cumulative Anchor (base × 2^n, capped) Random draw [low, high]
Adjust the form to preview the schedule.

Export

Copy or download the schedule for code review, a runbook, or a notebook. TSV pastes straight into Google Sheets or Excel; JSON round-trips through JSON.parse; the JS tab gives you a copy-paste function delay(attempt) for the strategy you picked.

// Press any of the buttons above to see the export here.

How the strategies compare

All four grow the anchor delay as base × factorattempt, capped to your maximum. They differ in how they translate that anchor into an actual sleep duration.

Full jitter
delay = random(0, anchor) — maximises spread, best when many clients retry in lockstep.
Equal jitter
delay = anchor / 2 + random(0, anchor / 2) — a 50/50 split between deterministic and random; a calmer schedule.
Decorrelated jitter
delay = min(cap, base + random(0, prev × factor − base)) — each attempt depends on the last; the AWS Architecture Blog recommendation.
Deterministic
delay = anchor — no jitter, fully predictable. Easiest to reason about, easiest to thunder.

The lib (and this page) are deterministic given a pinned RNG, so you can copy a schedule into a test fixture without re-running. The preview button redraws with Math.random() for a quick "what does it look like in production" feel.