Developer docs

SpaceNoneSuch · Benchmark report · Public, recomputed daily

Predictive handover vs. reactive handover on real passes and real rain

4 ground sites, 224 one-hour windows (224 hours of link time), 80 satellites, from Sep 24, 2026, 3:00 AM UTC to Oct 1, 2026, 3:00 AM UTC. Generated Oct 1, 2026, 3:08 AM UTC.

Summary

Link outage, recorded weather84%less outage: 90.2 min down to 14.5 min
Delivered throughput, heavy storm+15.0%15 mm/h storm added to every window
Windows won, recorded weather224 of 2240 lost, 0 tied

Both policies see the same satellites at the same times. The reactive policy stays on a satellite until it is lost, then takes the highest one in view. The predictive policy looks four minutes ahead at elevation, range and the rain forecast for the site, and moves early to the satellite whose link will stay cleanest.

Results by site, recorded weather

SiteRainy windowsOutage reactiveOutage predictiveThroughputWon
Svalbard4 of 5622.6 min0 s+11.2%56/56
Punta Arenas3 of 5618.9 min0 s+1.9%56/56
Hawaii18 of 5630.9 min14.5 min+0.9%56/56
Brooklyn Navy Yard11 of 5617.9 min0 s+1.0%56/56

Results by site, stress test (+15 mm/h storm)

SiteOutage reactiveOutage predictiveThroughputWon
Svalbard22.6 min0 s+23.3%56/56
Punta Arenas351.4 min143.0 min+11.0%50/56
Hawaii1647.9 min1546.0 min+6.3%51/56
Brooklyn Navy Yard808.4 min642.5 min+7.4%53/56

A storm this heavy defeats any single Ka-band link, so outage stays high for both policies at low-latitude sites, where rain extends higher into the atmosphere. Predictive still delivers more data in most windows. This is where a second orbit or a held DTN bundle takes over (see the link arbiter).

Hardest windows

Site and startPeak rainOutage reactiveOutage predictive256-QAM time
Hawaii, Sep 30, 2026, 3:00 AM UTC17.2 mm/h44.8 min42.5 min0% → 0%
Hawaii, Sep 29, 2026, 3:00 AM UTC16.9 mm/h43.8 min43.0 min0% → 0%
Hawaii, Sep 26, 2026, 3:00 AM UTC16.6 mm/h43.4 min39.5 min0% → 0%
Hawaii, Sep 26, 2026, 3:00 PM UTC15.6 mm/h43.4 min42.0 min0% → 0%
Hawaii, Sep 27, 2026, 3:00 PM UTC15.1 mm/h41.3 min41.0 min0% → 0%
Hawaii, Sep 27, 2026, 3:00 AM UTC15.4 mm/h41.3 min41.0 min0% → 0%

Totals

Recorded weather (224 windows)

MetricReactivePredictive
Total outage90.2 min14.5 min
Average efficiency (bit/s/Hz)5.906.13
Time on 256-QAM25%37%
Average SNR (dB)18.018.8
Handovers22722708

Rainy windows only (36 windows)

MetricReactivePredictive
Total outage16.1 min5.0 min
Average efficiency (bit/s/Hz)5.395.53
Time on 256-QAM19%24%
Average SNR (dB)16.517.0
Handovers333378

Stress test (224 windows)

MetricReactivePredictive
Total outage2830.2 min2331.5 min
Average efficiency (bit/s/Hz)2.923.36
Time on 256-QAM4%10%
Average SNR (dB)7.99.4
Handovers22722673

Method

  • Satellite positions: live two-line elements for the Iridium NEXT constellation from CelesTrak, propagated with SGP4 every 30 seconds. Iridium stands in for any LEO constellation; it is not an SpNH asset.
  • Rain: hourly precipitation recorded at each site over the past 7 days, from Open-Meteo.
  • Link model: free-space loss referenced to an overhead pass, plus rain attenuation at 20 GHz using a simplified ITU-R P.838 / P.618 slant-path method. Minimum elevation 10 degrees.
  • Modulation: each 30-second step uses the highest of 256-QAM, 64-QAM, 16-QAM or QPSK the SNR supports. Below QPSK the step counts as outage.
  • Windows start every 3 hours at every site. A window is called for the policy with less outage, then higher delivered efficiency.

Limits, stated plainly

  • This is a simulation on real inputs, not a field measurement on a live terminal.
  • The predictive policy uses hand-set look-ahead weights. A trained reinforcement-learning policy would replace them; these results are the baseline it has to beat.
  • Predictive makes more handovers (2708 vs. 2272). The model assumes make-before-break switching, so a planned handover costs no outage; reactive pays a 2-second reacquisition each time it loses a satellite.
  • The rain model is simplified and assumes the recorded hourly rate holds for the whole hour.
  • Any customer evaluation should rerun this on their own terminal data. The engine is deterministic and reruns from the same inputs.