# Download Time Calculator

> Computes how long a file transfer takes from the file size (MB, GB, TB) and the connection speed (Mbit/s, MB/s or Gbit/s), converting bytes to bits at 8 bits per byte with decimal (SI) prefixes.

- Calculator id: `download-time` · Category: Everyday Life (`everyday`) · Tool name: `estimate_download_time`
- Canonical page: https://tttkmbb.com/everyday/download-time · This document: https://tttkmbb.com/everyday/download-time.md · JSON definition: https://tttkmbb.com/everyday/download-time.json

## Purpose

Computes how long a file transfer takes from the file size (MB, GB, TB) and the connection speed (Mbit/s, MB/s or Gbit/s), converting bytes to bits at 8 bits per byte with decimal (SI) prefixes.

**Use when:** You want to estimate how long a download, upload or backup will take at a given bandwidth, or compare connection speeds.

**Do not use when:** You need to convert between data-storage units themselves (use data-storage); real transfers are also slowed by protocol overhead, server limits and Wi-Fi conditions.

## Input

| Parameter | Type | Unit | Required | Description |
| --- | --- | --- | --- | --- |
| `file_size` | number |  | required | Size of the file in the chosen unit. (> 0, max 1000000000) |
| `size_unit` | enum: mb \| gb \| tb |  | optional, default "gb" | Unit of file_size (decimal SI prefixes). |
| `speed` | number |  | required | Transfer rate in the chosen unit. (> 0, max 1000000000) |
| `speed_unit` | enum: mbit_per_s \| mbyte_per_s \| gbit_per_s |  | optional, default "mbit_per_s" | Unit of speed. Internet plans are quoted in megabits per second (Mbps); browsers show megabytes per second (MB/s), which is 8 times larger per unit. |

## Output

| Field | Type | Unit | Description |
| --- | --- | --- | --- |
| `seconds` | number | s | file_size in bits / speed in bits per second. |
| `time_formatted` | string |  | Same time as h:mm:ss. |
| `minutes` | number | min | seconds / 60. |
| `hours` | number | h | seconds / 3600. |
| `speed_mb_per_s` | number | MB/s | Connection speed expressed in megabytes per second. |

## Formula

`bits = file_size × bytes_per_unit × 8 (MB 10⁶, GB 10⁹, TB 10¹² bytes); bits_per_second = speed × (Mbit/s 10⁶, MB/s 8×10⁶, Gbit/s 10⁹); seconds = bits / bits_per_second`

Uses decimal prefixes as network operators and drive makers do. Operating systems often report sizes in binary units (1 GiB = 1.074 GB), and real throughput is typically 5–15% below the nominal line speed.

## Data Sources

- Data-rate units (Wikipedia) — https://en.wikipedia.org/wiki/Data-rate_units (reference, retrieved 2026-09-23)
- NIST – Prefixes for binary multiples — https://physics.nist.gov/cuu/Units/binary.html (standard, retrieved 2026-09-23)

Data freshness: `static`. Deterministic formula with fixed constants; results never go stale. Inputs supplied by the caller determine the output.

## API

- `GET https://tttkmbb.com/api/v1/calculate/download-time?file_size=…&speed=…`
- `POST https://tttkmbb.com/api/v1/calculate/download-time` with JSON body `{"inputs": {…}}`
- Response: unified envelope (`success`, `request`, `result.values`, `result.units`, `sources`, `freshness`, `timestamp`, `next_actions`, `links`); see https://tttkmbb.com/docs/response-format.md
- Schema: https://tttkmbb.com/api/v1/calculators/download-time · OpenAPI operationId `estimate_download_time` in https://tttkmbb.com/openapi.json
- Authentication: none. Rate limit: fair use, see https://tttkmbb.com/docs/rate-limits.md.

## MCP

- Server: `https://tttkmbb.com/mcp` (Streamable HTTP, JSON-RPC 2.0, no auth)
- Tool:  `run_calculator` with `{"calculator_id": "download-time", "inputs": {…}}`

## Example

- 4.7 GB at 100 Mbit/s: inputs `{"file_size":4.7,"size_unit":"gb","speed":100,"speed_unit":"mbit_per_s"}` → `{"seconds":376,"time_formatted":"0:06:16","minutes":6.27,"hours":0.104,"speed_mb_per_s":12.5}`
- 1 TB at 1 Gbit/s: inputs `{"file_size":1,"size_unit":"tb","speed":1,"speed_unit":"gbit_per_s"}` → `{"seconds":8000,"time_formatted":"2:13:20","minutes":133.33,"hours":2.222,"speed_mb_per_s":125}`

```
GET https://tttkmbb.com/api/v1/calculate/download-time?file_size=4.7&size_unit=gb&speed=100&speed_unit=mbit_per_s
```

## Limitations

You need to convert between data-storage units themselves (use data-storage); real transfers are also slowed by protocol overhead, server limits and Wi-Fi conditions. Uses decimal prefixes as network operators and drive makers do. Operating systems often report sizes in binary units (1 GiB = 1.074 GB), and real throughput is typically 5–15% below the nominal line speed. All values are computed from the formula above; no measurement or live data is involved.

## FAQ

**Why is my download slower than the calculator says?**

The estimate uses the nominal link speed; protocol overhead, the server's upload limit, Wi-Fi signal and other traffic usually cut throughput by 10% or more.

**Mbps or MB/s – which one do I have?**

Internet plans quote megabits per second (Mbps); download managers show megabytes per second (MB/s). 100 Mbps equals 12.5 MB/s.

## Related

- [Data Storage Converter](https://tttkmbb.com/conversion/data-storage.md) — Convert between MB, GiB, TB and other data units.
- [Time Converter](https://tttkmbb.com/conversion/time.md) — Convert seconds to minutes, hours and days.
