Practical guide
Calculate file transfer time from bandwidth
Use file size, link speed, and efficiency to estimate transfer time, with a 10 GB over 100 Mbps worked example and unit checks.
By StackCalcs · Updated
Transfer time is file size in bits divided by effective throughput in bits per second. Protocol overhead, congestion, storage speed, server limits, and Wi-Fi conditions mean effective throughput is normally below the advertised link rate.
Formula and variables
seconds = file size in bytes × 8 ÷ (link bits/second × efficiency)
File size is the input payload. Link speed is the nominal bandwidth. Efficiency is the measured or assumed fraction of that bandwidth available to the transfer.
Worked example
Input: 10 decimal GB, 100 Mbps, and 90% efficiency. The file contains 80,000 megabits and the effective link rate is 90 Mbps. Output: 80,000 ÷ 90 = 888.89 seconds, about 14 minutes 49 seconds.
The most common error is reading Mbps as MB/s. One byte contains eight bits, so 100 Mbps is at most 12.5 MB/s before overhead. Use the bandwidth transfer time calculator for your inputs. On long-latency paths, the bandwidth-delay product calculator estimates the data that must remain in flight to fill the link.
Choosing an efficiency value
Efficiency is the fraction of the nominal link rate a transfer actually achieves, and it varies more than people expect:
| Scenario | Typical efficiency |
|---|---|
| Clean gigabit LAN, single large file | 95–98% |
| Wi-Fi 5/6, good signal | 60–85% |
| VPN tunnel over a WAN link | 60–80% |
| Congested shared internet uplink | 30–60% |
| Many small files (metadata-heavy) | 20–50% |
Small files hurt efficiency the most because per-file overhead (connection setup, directory lookups, filesystem metadata writes) dominates when payloads are small, regardless of link speed.
Decimal versus binary units
This guide and its calculator use decimal GB (1 GB = 1,000,000,000 bytes) and decimal Mbps, matching how ISPs and cloud providers report both file size and bandwidth. If a tool instead reports GiB (1 GiB = 1,073,741,824 bytes), convert by multiplying by 1.073741824 before using this formula, or the transfer-time estimate will run about 7% low.