Ship & Quality · LOCAL TOOL

Retry Budget Simulator

Build a deterministic schedule from attempt count, initial retry delay, multiplier, delay cap, per-attempt duration, and overall budget. The first attempt starts immediately.

Runs in this page
No API call
WORKSPACEINPUT → RESULT
01

Your input

LOCAL
Retry Budget Simulator inputs
02

Result

Run the tool to see a result.

Your result will appear here. Input is not saved.

Browser-side processingNothing is sent to a tool API.

WHY THIS TOOL EXISTS

A focused job, not a black box.

A visible per-attempt timeline exposes the combined cost of waiting and request time. You can see which attempts finish within the budget instead of comparing retry delays alone.

How to use it

  1. Enter the total attempt count, including the first request.
  2. Set delay growth, cap, per-attempt duration, and overall budget.
  3. Review the completion time and budget status of every attempt.

TRY A WORKING EXAMPLE

Start with known input.

Load this sample into the workspace, run the tool, and compare the result shown below.

Show sample input
{
  "attempts": "4",
  "base": "100",
  "factor": "2",
  "cap": "250",
  "request": "50",
  "budget": "600"
}

Expected sample result from the local tool

750 ms worst-case duration · 3 attempt(s) fit.

{
  "totalWaitMs": 550,
  "totalDurationMs": 750,
  "budgetMs": 600,
  "schedule": [
    {
      "attempt": 1,
      "waitBeforeMs": 0,
      "startMs": 0,
      "endMs": 50,
      "withinBudget": true
    },
    {
      "attempt": 2,
      "waitBeforeMs": 100,
      "startMs": 150,
      "endMs": 200,
      "withinBudget": true
    },
    {
      "attempt": 3,
      "waitBeforeMs": 200,
      "startMs": 400,
      "endMs": 450,
      "withinBudget": true
    },
    {
      "attempt": 4,
      "waitBeforeMs": 250,
      "startMs": 700,
      "endMs": 750,
      "withinBudget": false
    }
  ]
}

Deterministic capped exponential backoff; no jitter, network variability, or server Retry-After is simulated.

LIMITS AND INTERPRETATION

What the result cannot tell you.

At most 100 attempts. Uses deterministic capped exponential delay without jitter. It does not send requests, observe success, honor a real server Retry-After, or determine whether retries are safe for an operation.

Inputs are processed in this page and are not written to local storage.