Retry timing workflow

Exponential backoff and jitter: retry timing and deadline boundaries

Use the calculator to compare timing ranges for a retry policy. Its model does not send or schedule requests, or predict whether they succeed.

Content updated: · Maintained by Hung Chi-Hsueh · corrections

Count retries and calculate each wait

The initial request starts at t=0. N retries allow at most N+1 requests, including the initial request; zero retries means one initial request and no retry waits. For retry n, starting at n=1, the baseline d is min(cap, base × multiplier^(n−1)). The cap applies to this baseline.

Before applying Retry-After, None has range [d, d], Full has [0, d], and Equal has [d/2, d]. These are possible wait ranges, not measured timings or success-rate predictions. The calculator preserves half-millisecond values.

Account for request duration and deadlines

Optionally enter a fixed duration for each request. Each retry start includes the durations of all preceding requests and the preceding waits. For example, the first retry starts after one request duration plus its wait. The model assumes that same duration each time; it does not measure network or processing time.

Assuming each retry is attempted under this model, a start at or before the deadline is within it. If the latest modeled start is at or before the deadline, it is within the deadline; if only the earliest is, it may miss; if even the earliest is later, it misses. This classifies modeled start times, not whether a retry occurs, completes or succeeds.

Retry-After is a floor in this model

When supplied, Retry-After is a nonnegative integer number of seconds. This calculator assumes every retry wait is at least that duration, even when it exceeds the backoff cap. Both ends of the jitter range are raised to the floor as needed; this is a calculator policy, not a claim about every client or service.

RFC 9110 also permits an HTTP-date. This calculator does not parse that form. Use the separate Retry-After calculator with an explicit reference time to calculate its wait, then enter the integer seconds here.

Input limits and scope

Product limits are: base 1–600,000 ms; multiplier 1–10; cap 1–3,600,000 ms; retries 0–30; fixed request duration 0–600,000 ms; Retry-After 0–86,400 seconds; deadline 0–3,000,000,000 ms. These are calculator limits, not protocol rules.

Inputs stay in local page / Worker memory; they are not persisted or uploaded. The tool does not send or schedule requests, decide which status codes are retryable, or guarantee idempotency. Check the target service's documented policy and whether repeating an operation is safe before implementing retries.

Example
Base: 500 ms
Multiplier: 2
Cap: 30,000 ms
Retries: 3; jitter: None
Waits: 500, 1,000, 2,000 ms
Total wait: 3,500 ms
Up to 4 requests

Data provenance

Sources