Skip to content

RF Link Budget Calculator Guide: Free Space, Friis, and Fade Margin

A walkthrough of a free RF link budget calculator: EIRP, FSPL, received power, link margin and max range, with LoRa, CubeSat and GEO broadcast scenarios.

RF Engineering7 min readUses the RF Link Budget Calculator

Link budgets are algebra. Every dB is additive: Pt + Gt + Gr − FSPL − L_misc = Pr. You could do this in Excel or on graph paper. The reason to use a dedicated RF link budget calculator is iteration speed — you change one input, see all six outputs update in under 500 ms, and copy a shareable URL back into your design review. The calculator on rftools.io runs entirely in your browser with no signup, so the time from question to answer is measured in keystrokes, not minutes.

Full RF simulation packages (Keysight ADS, Cadence AWR, MATLAB RF Toolbox, AGI STK) solve problems the link budget equation cannot: time-varying satellite geometry, propagation raytracing through terrain databases, nonlinear amplifier modeling. If your question fits into the Friis equation, those tools are overkill. If your question needs any of those, a calculator is under-kill. Pick the right tool for the job.

The equation the calculator solves

Pr=Pt+Gt+Gr−Ltx−Lrx−FSPL−Lrain−Latm−LptP_r = P_t + G_t + G_r - L_{tx} - L_{rx} - FSPL - L_{rain} - L_{atm} - L_{pt}

where

FSPL=20log⁡10 ⁣(4πdfc)FSPL = 20 \log_{10}\!\left(\frac{4 \pi d f}{c}\right)

with dd the distance in meters, ff the frequency in Hz, and cc the speed of light. The calculator exposes each term as a named input so you can trace the arithmetic without hidden magic.

Every result is derived from just those inputs:

  • EIRP = Pt+Gt−LtxP_t + G_t - L_{tx} (what the antenna radiates)
  • Received power = EIRP + Gr−LrxG_r - L_{rx} − FSPL − additional losses
  • Link margin = received power − receiver sensitivity
  • Max range solves the Friis equation for dd when link margin = 0 dB

Reading the calculator's output pills

The RF link budget tool color-codes link margin with a three-tier threshold system:

Pill colorLink marginInterpretation
Green (GOOD)≥ 10 dBComfortable for terrestrial fixed wireless; marginal for satellite (add 5-15 dB more)
Yellow (WARNING)3-10 dBWorks in clear-sky conditions but will drop in rain / multipath / interference
Red (OUT)< 3 dBLink will not close reliably — add power, antenna gain, or drop modulation order

Those thresholds are deliberately conservative. ITU-R P.530-17 recommends 25-40 dB fade margin for 99.999% availability microwave links; the calculator's green threshold is a rule-of-thumb floor for any fixed wireless service, not a target.

Scenario 1 — 2.4 GHz WiFi point-to-point, 500 m

Parameters:

  • Tx power 20 dBm, Tx antenna 12 dBi (panel), Tx cable loss 1 dB
  • Frequency 2400 MHz, distance 0.5 km
  • Rain fade 0 dB, atmospheric 0.2 dB, pointing 0.5 dB
  • Rx antenna 12 dBi, Rx cable 1 dB, Rx sensitivity −85 dBm (typical 802.11n at MCS15)

Open this scenario in the calculator.

Result: FSPL = 94.0 dB, EIRP = 31 dBm, received power = −53.7 dBm, link margin = 31.3 dB (GOOD), max range = 18 km at 0 dB margin.

Reading the output: 31.3 dB margin sounds like overkill, but WiFi at 2.4 GHz in an urban environment routinely loses 20-30 dB to building penetration, multipath, and other APs. The green pill is misleading if you interpret it as "definitely works" — it means the free-space math says the link closes. Use ITU-R P.1411 or Okumura-Hata to reality-check urban deployments.

Scenario 2 — 915 MHz LoRa IoT sensor, 10 km rural

Parameters:

  • Tx power 20 dBm, Tx antenna 2 dBi (whip), Tx cable 0 dB
  • Frequency 915 MHz, distance 10 km
  • Rain fade 0 dB, atmospheric 0.1 dB, pointing 0 dB (omni)
  • Rx antenna 6 dBi (ground gateway), Rx cable 2 dB, Rx sensitivity −137 dBm (SF12/125kHz per Semtech SX1276)

Open this scenario.

Result: FSPL = 111.7 dB, EIRP = 22 dBm, received power = −85.8 dBm, link margin = 51.2 dB (GOOD), max range = 3,641 km theoretical.

Reading the output: the 51 dB margin on paper is what makes LoRa's long range look magical. In practice, vegetation absorption (ITU-R P.833: 0.4 dB/m at 900 MHz) and Fresnel zone intrusion steal 20-30 dB at 10 km through forest. The 3,641 km "max range" figure is a mathematical artifact of free-space propagation; real LoRa rural range is 15-30 km with clear line of sight, and we've documented a 700 km satellite-to-ground LoRa record at altitude where Fresnel is clear.

Parameters:

  • Tx power 27 dBm (0.5 W beacon), Tx antenna −3 dBi (deployed monopole), Tx cable 0 dB
  • Frequency 437 MHz, distance 1930 km (slant range at 10° elevation from 500 km altitude)
  • Rain fade 0, atmospheric 0 dB, pointing 2 dB (linear ground antenna, tumbling spacecraft = polarization loss averaged)
  • Rx antenna 13 dBi (5-element Yagi), Rx cable 2 dB, Rx sensitivity −130 dBm (RTL-SDR + LNA, 10 kHz bandwidth)

Open this scenario.

Result: FSPL = 151.0 dB, EIRP = 24 dBm, received power = −119.0 dBm, link margin = 11.0 dB (GOOD), max range = 6,879 km at 0 dB margin.

Reading the output: 11 dB is green on the pill but tight for a satellite — the 10° elevation number is the worst case of a pass (pass edge). At zenith (0° zenith angle, slant range 500 km), FSPL drops to 139.2 dB, giving 23 dB margin. So this link works at zenith with strong signal and closes at the horizon with just-barely-audible signal. That's the acceptance criterion for amateur CubeSat teams planning AX.25 beacon decodes. Use the Fresnel Zone calculator to confirm horizon clearance.

Scenario 4 — 12 GHz GEO broadcast to a consumer dish

Parameters (DVB-S2 Ku-band direct-to-home):

  • Tx power 52 dBW = 82 dBm (satellite EIRP per transponder), Tx antenna 0 dBi (already in EIRP), Tx cable 0 dB
  • Frequency 12000 MHz, distance 39300 km (slant at 30° elevation from GEO)
  • Rain fade 4 dB (99.9% availability, temperate zone, ITU-R P.838-3)
  • Atmospheric 0.5 dB, pointing 1 dB (consumer dish misalignment)
  • Rx antenna 35 dBi (60 cm dish at 12 GHz, 60% efficiency), Rx cable 0.5 dB, Rx sensitivity −102 dBm (DVB-S2 QPSK 3/4 at 27.5 Msym/s)

Open this scenario.

Result: FSPL = 205.9 dB, EIRP = 82 dBm, received power = −94.9 dBm, link margin = 7.1 dB (WARNING), max range ≈ 89,000 km at 0 dB.

Reading the output: the yellow pill is correct here. Modern DVB-S2 systems target 7-10 dB clear-sky margin to survive 99.9% rain availability; moving to 99.99% (nine extra nines of uptime) typically requires an extra 5-8 dB, achieved through adaptive coding (DVB-S2X ACM) rather than a bigger dish. At Ku-band, rain is the dominant design lever.

Common iterations after the first result

Most designs don't close on the first try. The calculator's URL encoding makes it fast to branch scenarios:

  • Link doesn't close (red pill)? Add 3 dB of antenna gain to either side — that's equivalent to 2× transmit power but usually cheaper. Or drop the data rate (lower sensitivity threshold) by moving to a lower-order modulation.
  • Plenty of margin (very green pill)? Check whether you can reduce antenna size, drop transmit power for battery life, or increase data rate by stepping up modulation (16-QAM → 64-QAM).
  • Sanity check: double the distance — FSPL should increase exactly 6 dB. Double the frequency — same thing. If it doesn't, you've entered frequency in the wrong units somewhere.

Chain with other tools: once you have a received power, feed it into the BER vs SNR calculator to confirm the modem achieves your target bit error rate. Or use Noise Figure Cascade to compute the effective sensitivity from component datasheets rather than a single receiver-sensitivity number.

Limits of the free-space model

This calculator assumes free-space propagation — no Earth curvature, no terrain, no buildings, no absorption by the atmosphere beyond what you type in. It is correct in three cases:

  1. Line-of-sight in vacuum or clear atmosphere — satellite-to-satellite, satellite-to-ground above 10° elevation, high-altitude balloon to ground
  2. Anechoic lab — chamber measurements, calibration of antennas
  3. As a best-case sanity check — always compute the free-space number first, then subtract environment-specific losses

For terrestrial propagation with obstructions, layer in one of:

  • Okumura-Hata model — 150 MHz – 1.5 GHz urban/suburban/rural
  • COST-231 Hata — 1.5 – 2 GHz extension of Okumura-Hata
  • ITU-R P.1411 — short-range outdoor, picocellular environments
  • ITU-R P.1812 — terrain-aware path loss above 30 MHz
  • Ray-tracing / FDTD — for specific building geometries

The Fresnel Zone calculator is the companion tool for checking whether your line-of-sight path actually has clearance above obstacles — the most common cause of terrestrial link failures is insufficient first-Fresnel clearance, which manifests as 6-15 dB of diffraction loss that free-space math completely ignores.

Summary

  • An online RF link budget calculator is the right tool when your question fits into Friis: received-power arithmetic with uniform free-space propagation and user-supplied loss terms.
  • The four outputs (FSPL, EIRP, received power, link margin) are derived from the same 11 inputs; there's no hidden model.
  • Green pills indicate ≥ 10 dB link margin — enough for clear-sky fixed wireless, tight for satellite, potentially misleading in dense urban environments.
  • For anything beyond free space, add an environment-specific loss term or move to a propagation-model-aware tool.
  • Share scenarios via URL; branch designs fast; chain with BER/sensitivity calculators before committing to hardware.

Frequently asked questions

Yes. Every feature on /calculators/rf/rf-link-budget/ runs in your browser without signup, without ads in the calculation flow, and with URL-shareable scenarios for design handoff. Pro and API tiers exist for cloud-saved scenarios, API access, and advanced async tools (Monte Carlo, Touchstone export), but the core link budget math is always free.
The free-space portion (Friis + FSPL) is mathematically exact — no approximation. Commercial software like AGI STK, Keysight ADS, or MATLAB RF Toolbox solves the same equation with the same result. The value commercial tools add is in *what comes next*: time-varying satellite geometry, terrain-aware propagation, raytracing through 3D environments, nonlinear amplifier chains. Within the free-space scope, the rftools.io calculator is bit-for-bit accurate.
Yes for first-pass sizing — plug in slant range (not altitude), satellite EIRP, ground station G/T minus 10·log10(bandwidth) as sensitivity, and the relevant rain-fade margin from ITU-R P.838. For production mission-planning — especially if you need time-varying orbital geometry, link availability statistics, or beam-hopping — use the dedicated [Satellite Link Budget tool](/tools/sat-link-budget/), which adds 8 preset orbits, AMSAT-format CSV export, and full ITU-R P.618 rain model integration.
0.1 MHz to 1,000,000 MHz (1 THz) — covers HF (1.8-30 MHz ham radio), VHF/UHF (30-3000 MHz), microwave (3-30 GHz), and millimeter-wave (30-300 GHz). Below 10 GHz the free-space model is usually the dominant term; above 10 GHz, rain fade and atmospheric absorption (O2 at 60 GHz, H2O at 22 GHz) start to dominate and you must supply them as inputs. The calculator itself does not lookup ITU-R rain tables for you — that's on the designer.
Max range solves Friis for distance at zero link margin, assuming perfect free-space propagation. A 915 MHz LoRa link shows 3,500+ km theoretical max range because (a) LoRa sensitivity is extremely low (−137 dBm) and (b) free-space math has no Earth, no Fresnel zones, no atmosphere. Real LoRa range depends on Fresnel clearance, terrain, vegetation, and antenna height; the free-space number is the upper bound, not the expectation. Use it as a sanity check, not a deployment target.
Click the "Copy scenario URL" button in the calculator toolbar. The URL encodes every input and round-trips exactly when pasted. This is faster than emailing a spreadsheet screenshot and leaves an auditable trail: you can attach the URL to a design review doc and reviewers get the same numbers by clicking, not by re-typing.
PNG design card is available on every calculator (toolbar → Card button, 1200×630). CSV BOM isn't applicable to a link-budget calculation (no component list). KiCad export is reserved for calculators that synthesize a schematic (attenuator pads, filter networks, impedance matching, etc.). For pipeline automation, the Pro API serves link-budget calculations over /api/py/v1/calculate in JSON.
Not directly. The calculator computes received power and link margin; mapping that margin to a specific MCS (Modulation and Coding Scheme) requires the modem's datasheet sensitivity curve. Workflow: compute received power here, look up the MCS threshold in the modem vendor datasheet (or use [BER vs SNR](/calculators/signal/ber-snr/) for an approximate Eb/N0 → BER mapping), then confirm the chosen MCS's sensitivity is below your received-power result.
Back to the blog