Guide to Spreading Factors and ADR in LoRaWAN
Spreading Factors
In the previous section, we reviewed LoRa activation methods. LoRa operates based on Chirp Spread Spectrum (CSS) technology, where Chirps (or Symbols) act as data carriers.
The key element here is the Spreading Factor (SF). This factor controls the chirp rate, which directly affects data transmission speed.
- Lower SF → Faster chirps → Higher data rate
- Higher SF → Chirp rate halves → Data rate halves
In simple terms: Increasing the Spreading Factor improves range and noise resistance, but reduces data speed. Lower SF gives higher speed but shorter range — because Processing Gain (signal processing strength and noise immunity) decreases, while bit rate increases.
This allows the network to balance range vs. speed for each device.
Additionally, the network uses Spreading Factors as a traffic and congestion control tool. Since SFs are orthogonal, signals modulated with different SFs can be transmitted simultaneously on the same frequency channel without interference. This is a key reason LoRa can support thousands of devices at once.
Impact of Spreading Factors
LoRa modulation supports six Spreading Factor levels, from SF7 to SF12. Each directly affects:
- Data Rate
- Time-on-Air (channel occupancy duration)
- Battery Life
- Receiver Sensitivity
In simple terms:
- SF7 → Ideal for fast, short-range transmissions
- SF12 → Perfect when you need very long range, even if battery drains faster and data rate drops
This flexibility is why LoRaWAN works so well across diverse applications — from simple sensors sending data occasionally to devices operating over huge distances.
Data Rate
When the Spreading Factor is lower, the bit rate increases (assuming bandwidth and coding rate remain constant). For example, SF7 provides a higher bit rate than SF12. Conversely, if bandwidth is doubled, the bit rate also doubles (again, with SF and Coding Rate fixed).
For instance, the table below shows calculated bit rates for SF7 with Coding Rate = 1 across 125, 250, and 500 kHz bandwidths:
Distance (Range)
The higher the Spreading Factor, the more processing the device performs on the signal, resulting in higher Processing Gain. This means signals modulated with a higher SF have lower error rates and are more easily detected by the receiver — even when very weak.
In simple terms: With SF12, a signal can travel much farther and still be receivable. The same signal sent with SF7 will degrade faster and have shorter range.
Thus, choosing an SF is a trade-off between longer range and higher data rate:
- High SF → Excellent for long range and noise resistance, but slower speed and higher energy use.
- Low SF → Faster, but shorter range.
Time-on-Air
When using a higher Spreading Factor, sending a fixed payload size at a fixed bandwidth takes longer to transmit. This duration is called Time-on-Air.
In simple terms:
- The same data packet sent with SF7 transmits much faster.
- With SF12, it occupies the transmitter for a much longer time.
This directly impacts energy consumption — the device must stay active longer.
For accurate Time-on-Air calculations, use the official LoRaWAN Airtime Calculator provided by The Things Network. Simply input:
- Payload size (in bytes)
- Bandwidth
- Spreading Factor
…and it computes the exact channel occupancy time.
Receiver Sensitivity
The higher the Spreading Factor, the greater the receiver sensitivity. This means the device can detect and process weaker signals. Typically, when signal strength is low or distance is great, LoRa shifts to higher SFs to maintain a stable link.
The table below shows how increasing SF affects receiver sensitivity (exact values vary by hardware and bandwidth, but the pattern is consistent):

Adaptive Data Rate (ADR)
One of LoRaWAN’s key features is Adaptive Data Rate (ADR). This mechanism optimizes:
- Data Rate
- Time-on-Air
- Device Energy Consumption
ADR controls three main parameters on the device:
- Spreading Factor
- Bandwidth
- Transmission Power
When ADR is enabled, the network server instructs the device on necessary changes — for example, reduce TX power or increase data rate. → A device near the gateway doesn’t need high power or high SF — its message reaches easily → minimizes energy use.
Conversely, far-away devices or those in harsh environments must use higher SFs for a stronger link, even if it drains more battery.
In simple terms: ADR ensures each device operates at the best possible settings:
- Nearby devices: Fast + low power
- Distant devices: Slower + reliable
This enables LoRaWAN to balance low energy use with wide, reliable coverage.
When ADR Works Best
ADR is most effective when RF conditions are relatively stable — ideal for fixed devices (e.g., parking sensors, meters). → If RF becomes unstable (e.g., a car parks over a sensor), ADR should be temporarily disabled.
For mobile devices:
- ADR should only activate when the device has been stationary for a long time.
- While moving, RF conditions change constantly → ADR gives poor results.
Key point: The final decision to enable or disable ADR lies with the device itself — not the application or network. The device must intelligently detect when conditions are stable.
FAQ – Guide to Spreading Factors and ADR in LoRaWAN
Resources
Master transmission limits, reliability, and efficiency in one go.
Dive into Part 5: Understanding Duty Cycle, Coding Rate, and Packet Structure in LoRa Protocol –
to optimize performance and maintain compliant, robust communication.

