# Bandwidth delay product calculator

- Human page: https://happytails.ai/en/developer-tools/bandwidth-delay-product-calculator/
- Markdown: https://happytails.ai/en/developer-tools/bandwidth-delay-product-calculator.md
- Structured JSON: https://happytails.ai/agents/en/developer-tools/bandwidth-delay-product-calculator/index.json
- Visibility: public

## Tool capabilities

| Property | Value |
| --- | --- |
| Tool ID | `bandwidth-delay-product-calculator` |
| Category | developer-tools |
| Implementation | Registered implementation. Registration alone is not a production-quality guarantee. |
| Browser execution | Use the visible action or interactive controls. |
| Browser processing | Browser; see tool notes for network behavior. |
| HTTP API | Not callable through HTTP. |
| Browser-agent interface | run_current_tool |

### Implementation notes

Bandwidth multiplied by round-trip time estimates the data in flight. Eight bits make one byte; decimal and binary prefixes are distinct. The whole-byte result rounds upward. An optional receive window gives a theoretical throughput ceiling. Zero round-trip time has no finite window-derived ceiling. Results that exceed precise whole-byte representation are rejected. This does not measure throughput, losses or congestion control and is not a router buffer sizing recommendation. Runs locally without uploads. Limit: 500000 combined input characters, 1000 services and 5000 conflicting pairs. Complete JSON and JSON Pointer CSV exports are each capped at 2000000 characters; CSV contains at most 200000 typed values. Preview shows at most 200 rows. Calculations stop after 10 seconds. Downloads retain your source inputs, units, assumptions and complete results.

### Inputs and settings

No free-text input is required. Use the file inputs and/or settings below.

| Setting | Meaning | Control type | Default | Constraints |
| --- | --- | --- | --- | --- |
| `bandwidth` | Bandwidth | text | "100" |  |
| `bandwidthUnit` | Bandwidth unit | select | "Mbps" | Allowed: bps, kbps, Mbps, Gbps, Tbps, B/s, kB/s, MB/s, GB/s, KiB/s, MiB/s, GiB/s |
| `roundTripTime` | Round-trip time | text | "50" |  |
| `timeUnit` | Time unit | select | "ms" | Allowed: s, ms, us |
| `receiveWindowBytes` | Receive window (bytes), optional | text | "" |  |

### Browser-agent workflow

1. Open the human page in a browser that supports WebMCP.
2. Discover the interface exposed by that page; use its actual schema.
3. Select files on the page first when the tool requires files.
4. Call `run_current_tool` with valid input and settings.
5. Inspect the returned result or error and the displayed output. Retrieve files from the displayed download links.

Calls do not automatically copy or download results. Browser permissions still apply. Interface availability alone is not proof of successful execution.

### Planning specification

Bandwidth multiplied by round-trip time estimates the data in flight. Eight bits make one byte; decimal and binary prefixes are distinct. The whole-byte result rounds upward. An optional receive window gives a theoretical throughput ceiling. Zero round-trip time has no finite window-derived ceiling. Results that exceed precise whole-byte representation are rejected. This does not measure throughput, losses or congestion control and is not a router buffer sizing recommendation. Runs locally without uploads. Limit: 500000 combined input characters, 1000 services and 5000 conflicting pairs. Complete JSON and JSON Pointer CSV exports are each capped at 2000000 characters; CSV contains at most 200000 typed values. Preview shows at most 200 rows. Calculations stop after 10 seconds. Downloads retain your source inputs, units, assumptions and complete results.

This describes intended requirements. Use the implementation notes, interface schema and observed output to determine current support.

### Complete machine-readable capability record

```json
{
  "id": "bandwidth-delay-product-calculator",
  "category": "developer-tools",
  "built": true,
  "requirements": "Bandwidth multiplied by round-trip time estimates the data in flight. Eight bits make one byte; decimal and binary prefixes are distinct. The whole-byte result rounds upward. An optional receive window gives a theoretical throughput ceiling. Zero round-trip time has no finite window-derived ceiling. Results that exceed precise whole-byte representation are rejected. This does not measure throughput, losses or congestion control and is not a router buffer sizing recommendation. Runs locally without uploads. Limit: 500000 combined input characters, 1000 services and 5000 conflicting pairs. Complete JSON and JSON Pointer CSV exports are each capped at 2000000 characters; CSV contains at most 200000 typed values. Preview shows at most 200 rows. Calculations stop after 10 seconds. Downloads retain your source inputs, units, assumptions and complete results.",
  "implementation": {
    "fields": [
      {
        "key": "bandwidth",
        "label": "Bandwidth",
        "value": "100",
        "type": "text",
        "inputMode": "decimal",
        "maxLength": 24,
        "help": "Use 0 to 1000000000000 in the selected bandwidth unit."
      },
      {
        "key": "bandwidthUnit",
        "label": "Bandwidth unit",
        "value": "Mbps",
        "type": "select",
        "values": [
          "bps",
          "kbps",
          "Mbps",
          "Gbps",
          "Tbps",
          "B/s",
          "kB/s",
          "MB/s",
          "GB/s",
          "KiB/s",
          "MiB/s",
          "GiB/s"
        ]
      },
      {
        "key": "roundTripTime",
        "label": "Round-trip time",
        "value": "50",
        "type": "text",
        "inputMode": "decimal",
        "maxLength": 24,
        "help": "Use 0 to 86400 in the selected time unit. Enter round-trip time, not one-way delay."
      },
      {
        "key": "timeUnit",
        "label": "Time unit",
        "value": "ms",
        "type": "select",
        "values": [
          "s",
          "ms",
          "us"
        ]
      },
      {
        "key": "receiveWindowBytes",
        "label": "Receive window (bytes), optional",
        "value": "",
        "type": "text",
        "inputMode": "decimal",
        "maxLength": 24,
        "help": "Leave empty to omit the window comparison, or enter a whole number from 0 to 9007199254740991."
      }
    ],
    "registrationFamily": "network-planning",
    "input": false,
    "presentation": "metrics",
    "note": "Bandwidth multiplied by round-trip time estimates the data in flight. Eight bits make one byte; decimal and binary prefixes are distinct. The whole-byte result rounds upward. An optional receive window gives a theoretical throughput ceiling. Zero round-trip time has no finite window-derived ceiling. Results that exceed precise whole-byte representation are rejected. This does not measure throughput, losses or congestion control and is not a router buffer sizing recommendation. Runs locally without uploads. Limit: 500000 combined input characters, 1000 services and 5000 conflicting pairs. Complete JSON and JSON Pointer CSV exports are each capped at 2000000 characters; CSV contains at most 200000 typed values. Preview shows at most 200 rows. Calculations stop after 10 seconds. Downloads retain your source inputs, units, assumptions and complete results.",
    "inputMaxLength": 500000,
    "inputErrorCode": "NETWORK_PLANNING_INPUT",
    "example": {
      "input": "",
      "options": {
        "bandwidth": "100",
        "bandwidthUnit": "Mbps",
        "roundTripTime": "50",
        "timeUnit": "ms",
        "receiveWindowBytes": ""
      }
    },
    "experience": {
      "automatic": false,
      "single": false,
      "inputMaxLength": 500000,
      "inputMode": "text",
      "label": "Your text",
      "placeholder": "Type or paste your input…",
      "help": "Up to 500,000 characters. Review the settings before running.",
      "action": null
    },
    "mode": "explicit",
    "interactive": false
  },
  "execution": "Browser interface",
  "api": null,
  "browser_agent": {
    "supported": true,
    "name": "run_current_tool",
    "discovery": "WebMCP on the human page in a supporting browser",
    "verification": "See audit/API-AUDIT.md; availability is not verification"
  }
}
```

## Page guide

Estimate in-flight data from bandwidth and round-trip time, with an optional receive-window comparison.

How can we improve this tool?

Report a problem or share an idea.

Please leave out private information. Your message and the tool name go to our team via PostHog.

### How to use Bandwidth delay product calculator

1. Enter bandwidth and select its bit or byte unit.
2. Enter round-trip time, select its unit and optionally enter a receive window in bytes.
3. Compare the in-flight data estimate and window limit, then download the complete report.

## Useful next steps

- [MTU overhead calculator](https://happytails.ai/en/developer-tools/mtu-overhead-calculator/) ([Markdown](https://happytails.ai/en/developer-tools/mtu-overhead-calculator.md))

- [IP allowlist overlap checker](https://happytails.ai/en/developer-tools/ip-allowlist-overlap-checker/) ([Markdown](https://happytails.ai/en/developer-tools/ip-allowlist-overlap-checker.md))

- [IPv6 address scope inspector](https://happytails.ai/en/developer-tools/ipv6-address-scope-inspector/) ([Markdown](https://happytails.ai/en/developer-tools/ipv6-address-scope-inspector.md))

## Use round-trip time and explicit units

At 100 Mbps and 50 ms round-trip time, the bandwidth-delay product is 5000000 bits or 625000 bytes. One byte contains eight bits. Decimal prefixes such as MB and binary prefixes such as MiB are different; the selected units control the calculation.

### A window ceiling is not measured throughput

The optional receive-window ceiling divides window bytes by round-trip seconds and converts to bits per second. Actual throughput can also be limited by congestion control, loss, overhead and application behavior. A zero round-trip time has no finite window-derived ceiling. This estimate is not router buffer sizing advice.
