Introduction
As a WiFi admin, you are probably familiar with WiFi Data Rates and the concept of DRS (Dynamic Rate Switching/Shifting/Selection).
Numbers like 6Mbit/s, 54MBit/s, 144MBit/s, 300MBit/s and 400MBit/s all look pretty familiar – but what are they based on?
The numbers are not random at all – the data rates of OFDM PHYs (802.11a, 802.11g, 802.11n, 802.11ac) are all based on the same single formula, which consists of 5 variables:
 Data Subcarriers (number of subcarriers that transmit modulated data)
 Modulation (amount of bits each data subcarrier can represent; predefined mix and match possibilities with coding)
 Coding (defines how much of the modulated data is useful data and how much of it is for error correction; predefined mix and match possibilities with modulation)
 Spatial Streams (number of unique MIMO data streams that can be sent in parallel)
 Symbol Interval Time (the sum of Data Interval Time + Guard Interval)
I’d like keep this blogpost short and sexy, and just show how you can calculate the different data rates based on these numbers.
In the following days and weeks, I’m going to publish additional blogposts, where I’ll explain the different variables thoroughly, and link them in this blogpost.
Formula
With the variables described above, the following formula is used to calculate OFDM data rates:
Data Subcarriers * Modulation * Coding * Spatial Streams / (Data Interval Time + Guard Interval) = Data Rate in Bits/Microsecond = Data Rate in Mbit/s
Possible Values Of Variables

802.11a 
802.11g 
802.11n 
802.11ac 
Data Subcarriers 
48 
48 
52 108 
52 108 234 468 
Modulation & Coding 
BPSK 1/2 BPSK 3/4 QPSK 1/2 QPSK 3/4 16QAM 1/2 16QAM 3/4 64QAM 2/3 64QAM 3/4 
BPSK 1/2 BPSK 3/4 QPSK 1/2 QPSK 3/4 16QAM 1/2 16QAM 3/4 64QAM 2/3 64QAM 3/4 
BPSK 1/2 QPSK 1/2 QPSK 3/4 16QAM 1/2 16QAM 3/4 64QAM 2/3 64QAM 3/4 64QAM 5/6 
BPSK 1/2 QPSK 1/2 QPSK 3/4 16QAM 1/2 16QAM 3/4 64QAM 2/3 64QAM 3/4 64QAM 5/6 256QAM 3/4 256QAM 5/6 
Spatial Streams 
1

1

1 2 3 4

1 2 3 4 5 6 7 8 
Symbol Interval Time 
4us

4us

4us 3.6us 
4us 3.6us 
As you can see in the table above, Data Subcarriers, Symbol Interval Time and Spatial Streams are fixed values for 802.11a & 802.11g. Only Modulation and Coding are variable – therefore only a small number (8) of different data rates are possible for these PHYs.
In 802.11n & 802.11ac, all 5 numbers are variable and can be mixed almost randomly, leading to a massive amount of different possible data rates, making it impossible to keep all of them in mind:
Examples
To wrap this blogpost up, here are the calculations of the 5 data rates I mentioned at the beginning of this blogpost:
Calculation 
Data Rate 
Description 
48 * 1 * 1/2 * 1 / (3.2u + 0.8u) 
6Mbit/s 
Lowest possible Data Rate for 802.11a & 802.11g 
48 * 6 * 3/4 * 1 / (3.2u + 0.8u) 
54Mbit/s 
Highest possible Data Rate for 802.11a & 802.11g 
52 * 6 * 5/6 * 2 / (3.2u + 0.4u) 
144.4Mbit/s 
Highest possible Data Rate for 802.11n, where Channel Width = 20MHz, Spatial Streams = 2, Guard Interval = Short 
108 * 6 * 5/6 * 2 / (3.2u + 0.4u) 
300Mbit/s 
Highest possible Data Rate for 802.11n, where Channel Width = 40MHz, Spatial Streams = 2, Guard Interval = Short 
108 * 8 * 5/6 * 2 / (3.2u + 0.4u) 
400Mbit/s 
Highest possible Data Rate for 802.11ac, where Channel Width = 40MHz, Spatial Streams = 2, Guard Interval = Short 