All posts

The Math Behind Wi-Fi Airtime Calculation

192 microseconds. That's how long 1500 bytes of data occupies a 20 MHz Wi‑Fi channel at MCS 7. Not the preamble, not the ACK, not the backoff. Just the data. Where does that number come from? Let's trace it from first principles.

The scenario

A device wants to transmit a 1500-byte payload with these parameters:

ParameterValue
StandardHT / VHT (802.11n/ac)
MCS7
Bandwidth20 MHz
Spatial streams1
Guard interval0.8 µs

Step 1: How much are we actually sending?

Wi‑Fi never sends your raw data on its own. Before transmission, the payload is wrapped with MAC headers and PHY control bits, and every one of those bits costs airtime.

ComponentSize
Application payload1500 bytes
MAC header30 bytes
FCS4 bytes
SERVICE bits16 bits
TAIL bits6 bits
Total to transmit12,294 bits
(1500 + 30 + 4) × 8 + 16 + 6 = 12,294 bits

So the real question becomes: how long does it take to push 12,294 bits over the air?

Step 2: What MCS 7 tells us

The Modulation and Coding Scheme index unpacks into two key parameters:

  • Modulation: 64-QAM, which carries 6 bits per subcarrier.
  • Coding rate: 5/6.

64-QAM: the number 64 is the count of constellation points. Since 26 = 64, each subcarrier can carry 6 bits in a single symbol.

Coding rate 5/6: not every transmitted bit is real data. Some are redundancy added for error correction. A rate of 5/6 means that out of every 6 bits sent, 5 are payload and 1 is protection.

Step 3: How long is one symbol?

Wi‑Fi transmits data in chunks called OFDM symbols, and each symbol has two parts:

Symbol time = FFT window + guard interval = 3.2 + 0.8 = 4.0 µs

FFT window (3.2 µs): the fixed duration during which the receiver decodes all subcarriers at once. It's set by the 312.5 kHz subcarrier spacing defined in the OFDM standard.

Guard interval (0.8 µs): a cyclic prefix prepended to each symbol. Its job is to absorb multipath reflections, signals bouncing off walls and objects that arrive slightly late. Without it, echoes from the previous symbol would bleed into the current one and cause inter-symbol interference (ISI).

Step 4: How many subcarriers carry data?

A 20 MHz OFDM channel is divided into 64 subcarriers, spaced 312.5 kHz apart. Not all of them carry your data:

Subcarrier typeCountPurpose
Data52Carry the actual payload
Pilot4Phase tracking and channel estimation
Null / Guard / DC8Center frequency protection

Only 52 subcarriers are doing the real work of carrying data.

Step 5: Data bits per symbol

Now combine the parameters to find how many useful data bits fit in one symbol:

52 × 6 × (5/6) × 1 = 260 bits
  • 52 data subcarriers, each carrying modulated data independently.
  • × 6 bits, the coded bits per subcarrier from 64-QAM.
  • × 5/6 coding, since only 5 of every 6 bits are useful data.
  • × 1 spatial stream. With MIMO you'd multiply by the stream count, as each stream carries an independent OFDM symbol.

Result: 260 usable data bits per OFDM symbol.

Step 6: How many symbols do we need?

To carry 12,294 bits when each symbol holds 260 bits:

⌈12,294 ÷ 260⌉ = ⌈47.28⌉ = 48 symbols

You can't transmit a partial symbol, so the result rounds up. The last symbol is partially filled with padding zeros.

Step 7: The final data duration

Each symbol takes 4.0 µs, and we need 48 of them:

48 × 4.0 = 192 µs

That 192 µs is the time the medium is occupied for the data frame alone, before you layer on preambles, IFS gaps and acknowledgments. Trace any rate the same way and the magic number stops being magic: it's just subcarriers, bits and symbols.

— Gopi Raga