NoisefloorThe Intelligence Company

Roadmap

Every capability, built and planned. Each answers one question with its own data and method. Statuses say how far each has got; planned items are designs, not results.

Validated built and tested against known eventsPartly validated built; first controls passed, more tests openRunning collecting or operating nowBuilt a working toolPrototype a first result, not yet a productPlanned designed, not builtParked set aside with its final state written down; revisited on a named trigger
7Validated
3Partly validated
6Running
2Built
1Prototype
4Parked

Jump to: Positioning, navigation and timing · Emitters seen from space · Satellite communications · Vessels at sea · Context and assessment · Platform · Build order

Positioning, navigation and timing

Where GNSS receivers lose accuracy, are fed false positions, or are told to expect trouble, and how to tell deliberate interference from natural causes.

Validated

GNSS degradation from ADS-B

Phase 1

Share of aircraft per area whose own GNSS accuracy degraded, by day, hour and minute.

What

Aircraft broadcast their own position quality (NACp and NIC). The processor turns a day of worldwide ADS-B into the share of aircraft in each H3 cell (about 1,770 km²) that lost accuracy, at two thresholds: worse than 93 m (severe GPS error) and worse than 10 m for aircraft that showed 10 m capability that day (space weather and SBAS problems).

How

Version-2 reports from the aircraft's own GNSS only, airborne, sampled at most every 30 s. A peer test drops faulty avionics, which are bad where their neighbours are fine. A post-exposure tag separates aircraft still degraded after leaving a jammed area. The cell score uses the formula GPSJam publishes, and cells are coloured only with 5 or more aircraft.

Data
  • adsb.lol daily archive (ODbL 1.0)
Notes

An effect measure, not attribution. Processing takes 53–70 s per worldwide day on one PC. Validated on 20 days (Oct–Nov 2025 and Sep 2026). Runs every day in GitHub Actions; history from 1 Oct 2025. Next: a cross-day blacklist of persistently faulty avionics, to complement the daily peer test.

More

Method card · Validation report · Code

Validated

SBAS outage and storm flags

Phase 1.2

Hours when an SBAS service area loses 10 m accuracy, labelled storm or probable service problem.

What

For each SBAS service area and UTC hour, the share of 10 m-capable aircraft that fell below 10 m. An hour is flagged as an outage at 60% or more and as degraded at 35% or more.

How

GFZ Kp of 5 or more labels a flagged hour as a storm; otherwise it is a probable service problem. Flagged hours are kept out of the 10 m baselines.

Data
  • adsb.lol daily archive
  • GFZ Potsdam Kp (CC BY 4.0)
Notes

Reconstructed the 13–17 Oct 2025 EGNOS outage to within an hour at both ends. On the 12 Nov 2025 G4 storm, 38.5% of capable aircraft fell below 10 m against a 3.7% baseline, while severe GPS error stayed flat. Planned: corroborate flags against EGNOS service notices and FAA WAAS NOTAMs.

More

Validation report

Validated

Minute bursts and anomaly events

Phase 1.2

Short interference bursts timed to the minute, and departures from each area's own baseline.

What

Per-minute counts of aircraft with gross-bad reports catch bursts that an hourly majority rule would dampen. Each region and hour is also compared with the same hour on up to 14 earlier days.

How

An anomaly is a share above the median by more than the larger of a fixed floor and 4 × MAD, with at least 30 aircraft-cell-hours behind it.

Data
  • adsb.lol daily archive
Notes

Recovered both bursts of the 22 Sep 2026 San Francisco Bay Area GPS loss (18:00–18:08Z and 19:52–20:12Z). An FAA flight advisory confirms a Point Mugu Sea Range GPS test that day, 18:30–20:29Z; the second burst falls inside it.

More

Validation report

Validated

Downstream effects by aircraft type

Validated (Oct 2026)

Which aircraft types stay degraded after leaving interference, and how far they carry it.

What

Some avionics keep reporting degraded accuracy for hours after an aircraft leaves a jammed or spoofed area. Over 17 days, A350-900s made up 24.9% of post-exposure aircraft-days against 1.3% of traffic (19.4×), A380s 19.2× and 777-300ERs 4.7×; most narrowbodies were near 1×.

How

An aircraft's exposure point is its first degraded cell-hour where its peers were degraded too. Later degraded reports 300 km or more away, among healthy peers, are tagged post-exposure.

Data
  • adsb.lol daily archive
Notes

Explained 23–26 Oct 2026 (verdicts 43 and 48). Inside jamming, A350s stay visible while degraded where other types go dark, and A350/A380 degraded episodes last 4–8 times longer. Australia reported to ICAO in June 2025 that on these types the ADS-B accuracy value is set to zero when one satellite is flagged degraded, so the type pattern is most likely a reporting artefact. It can't be removed by type without losing real detections (A350s and A380s also carry most real burst detections in hotspots), so the method stays v1.4: the type chart shows them apart and every daily table counts them, so each event says how much it rests on those types.

More

Post-exposure results

Parked

Radio-horizon jammer localizer

Parked (Oct 2026)

Narrow down where a jammer sits from where aircraft lose and regain GNSS.

What

A jammer on the ground can only reach aircraft above its radio horizon. Each aircraft's first jammed position and altitude define a horizon circle, and where many circles' edges meet points to the source area.

How

tools/horizon_fix.py fits the jammer's reach from the data and scores candidate cells by how tightly aircraft onsets agree. Scored against a 2025 TDOA network's fixes in Kaliningrad over two held-out sets: the best version is within 25 km of a known site on 3 of 5 days, but a single fixed point between the two sites does as well.

Data
  • adsb.lol daily archive
Notes

Parked 26 Oct 2026. Held-out tests (verdicts 41, 42 and 44) show it gives an area, not a site: two sites 21 km apart can't be told apart, and its likelihood version did no better than a constant guess. The code stays; revisit if a day with one known active site and time turns up. Positions stay off the public map.

More

Research note · Validation (verdicts 40–44)

Validated

ADS-B spoofing detection

Validated (Oct 2026)

Aircraft fed false positions: jumps, convergence on false points, altitude mismatches.

What

Spoofing shows up as position jumps, many aircraft converging on the same false point, and divergence between GNSS (geometric) and barometric altitude.

How

tools/spoof_day.py looks for positions an aircraft can't have flown: near-zero ground speed at altitude, staying in one spot at altitude, and jumps to a separate track and back. It doesn't rely on accuracy values: 61% of spoofing episodes kept good NACp. Over 22 days, the places aircraft were shown match published spoofing points (Beirut within 1 km, Amman 3 km, Moscow Sheremetyevo 2 km) and change when sources say they did; MLAT confirms 90% of the episodes it can test; six quiet control regions stay at 0.002% of aircraft-hours.

Data
  • adsb.lol daily archive
Notes

Validated 26 Oct 2026: a held-out test on 12 days fixed in advance passed all five pre-registered checks, first for version 0.4 and again for version 0.5, the default since late October. Version 0.4 adds a 'replay' class for feeds re-sending old positions (found over northern Florida, 6 Mar 2024). Version 0.5 lets indicated airspeed, from air data rather than GNSS, qualify an aircraft for the tests, so aircraft spoofed for their whole visible flight are tested: 13% more episodes over 41 days, controls unchanged at 0.002%. Two of the 12 held-out days were seen while designing 0.5, so that rerun is only partly independent. Spoofing and jamming are mostly separate signals. Maps show where receivers were told they were, not where a transmitter is. Offset tracks with no jump are missed; no coverage over Iraq and almost none over Iran. Not on the public map yet.

More

Validation

Validated

Spoofing at sea (AIS)

Validated, regional (Oct 2026)

Ship position reports that jump, circle or land ashore.

What

Ships broadcast GNSS-derived positions over AIS. Spoofed fixes appear as impossible tracks, ships placed on land and clusters in patterns.

How

A collector records Finland's open AIS stream (Digitraffic), and detectors flag impossible speeds, course swinging against a fixed heading, positions on land, and many ships reported on one spot. The same detectors also look for rendezvous, loitering, going dark and identity changes, for the maritime work.

Data
  • Digitraffic AIS (CC BY 4.0)
  • Kystverket AIS (NLOD; licence text not yet read)
Notes

Validated 26 Oct 2026 for Finnish waters and the approaches, on a 24-hour capture held out and checked by rules set in advance: flagged ships were 0.13% in the control areas, 97% of those with a trusted position were in the eastern Gulf of Finland (140 times the control rate), and the aircraft map agreed (22 times). The ships' own lost-fix reports agreed less than set in advance (2.6 times against 3). Flagged ships peak at night, and the circle in inland Russia (Tver region) that their receivers were moved to on 24 Oct was used again by 19 ships. The flags point to GNSS spoofing of the ships' receivers rather than false AIS. Coverage is regional: Finland's open AIS only.

More

First results · Sea map

Running

Declared interference and test notices

Phase 2

What authorities say: announced GPS interference tests now; navigation warnings and NOTAMs next.

What

Official notices that GNSS may be unreliable in an area and time window: maritime navigation warnings, US GPS interference test notices, NOTAMs and announced test events.

How

The FAA's public flight advisories for US GPS interference tests are read every morning (window, centre and radius by altitude). An anomaly or burst inside a test's window and reach is tagged on the map as consistent with an announced test, rather than counted as an incident. Other notices will join the same layer.

Data
  • FAA SPANS GPS interference testing flight advisories (US government)
  • NGA Maritime Safety Information broadcast warnings (next)
  • US Coast Guard NAVCEN GPS test notices (next)
  • UKMTO advisories (Open Government Licence; next)
  • FAA NOTAMs (API access pending)
Notes

Live: 214 announced US tests from Sep 2025 on, back-matched to the full history. It matched the White Sands test of Oct 2025 day by day and the Point Mugu test behind the 22 Sep 2026 Bay Area GPS loss. Announced events such as Jammertest serve as known positives.

More

Map · Validation · Collector

Parked

Low-frequency navigation and VLF

Parked (Oct 2026)

Chayka (Loran-type) and RSDN-20 Alpha VLF signals, the backups to GNSS.

What

Long-range terrestrial navigation systems matter more when GNSS is denied. Public receivers and direction-finding work make their activity observable.

How

Follow published receiver captures and VLF direction-finding methods; add public KiwiSDR receivers.

Data
  • Public Loran/Chayka receiver captures (reuse terms UNVERIFIED; private watch only)
  • KiwiSDR public receivers
Notes

Parked 26 Oct 2026: kept in the private watch until reuse terms are confirmed.

Emitters seen from space

Transmitters that show up as interference in satellite radar and radiometer data, inside the instrument's own band.

Partly validated

L-band emitters from NISAR radar

Phase 7 (pulled forward)

Transmitters inside NISAR's L-band receive slices (one contains GPS L2), from the processor's own RFI tables.

What

NISAR's L-band radar listens in 1219–1239 MHz (contains GPS L2) and 1291–1296 MHz over most land. Its processor records, for every block of raw data, how much interference it found and at which frequencies, before filtering it out.

How

Two detectors run on those tables. Tones: frequencies hit in most pulses, excluding the radar's own two tones. Broadband: the cross-polarized channel far above what the ground produces, the signature of a noise jammer. Positions come from the orbit, and a cheap first pass on the processor's score decides which passes get the full read.

Data
  • NISAR L1 RSLC and L2 GCOV via ASF DAAC (NASA data, CC0 unless marked)
Notes

The broadband detector passed its first positive control: an area with documented L1/L2/L5 jamming was detected on 12 of 13 passes that covered it. The published Shiraz jammer was not confirmed by either detector, and the earlier image-based method failed that test. A pre-registered check against announced US GPS tests failed too (27 Oct 2026): passes inside test windows had hits no more often than passes outside them (21% against 18%), and none of the hits was at GPS L2, so they fit other L-band emitters near the ranges. Since 28 Oct 2026 the repeat sites are on the map as leads, with this status beside them; the daily file is in the nisar-data release. Credit to @auonsson, whose post prompted the idea.

More

README · Validation · Map layer

Partly validated

L-band radars and other emitters from SMAP

Phase 7

Emitters in or spilling into the protected 1400–1427 MHz band, from the RFI flags of NASA's SMAP radiometer.

What

SMAP's radiometer listens in 1400–1427 MHz, a band reserved for passive sensing. Its processing flags each look that carries interference. Long-range air-surveillance radars transmit just below the band, at 1215–1400 MHz, and spill into it.

How

tools/smap_rfi.py counts, for each 36 km cell over 7 days, the share of looks flagged and how far that share stands above the cells 100–300 km around. The map shows cells that stand out (single emitters) and, faintly, regions where the band is busy everywhere.

Data
  • NASA SMAP L1C radiometer brightness temperatures, SPL1CTB v006 (NSIDC DAAC, NASA open data, doi:10.5067/DV7IX2DQ681Y)
Notes

A first check against 31 US long-range sites from a 2010 FAA file failed (AUC 0.50): the US background is busy and the positions are old. A second check, pre-registered, against the 14 active North Warning System long-range radars on two unseen weeks held: AUC 0.988, 10 of 14 sites heard in both weeks, 1.2% of far cells flagged. SMAP finds L-band radars against a quiet background; in Europe, East Asia and the Middle East most looks are flagged, so single emitters can't be told apart there. It does not show GPS jammers.

More

Validation

Partly validated

C-band radar activity from Sentinel-1

Phase 7

Where C-band (5.4 GHz) transmitters, mostly radars, interfere with the Sentinel-1 radar satellites, by region over 28 days.

What

Sentinel-1 Level-1 products carry per-burst radio-frequency-interference annotations. Counted over four weeks, they show where C-band transmitters are active. This band is not GPS: the layer shows radars and other C-band transmitters, not jammers.

How

tools/s1_rfi_global.py reads only the RFI reports of every IW product of a day worldwide (about 950 a day, a few hundred kB each, never the imagery) and records, for each pass and H3 cell, whether any burst carried RFI. tools/s1_daily.py counts the share of passes with RFI per res-3 cell (about 110 km across) over 28 days; the map shows cells passed over at least 4 times with RFI on a quarter of passes or more.

Data
  • Copernicus Sentinel-1 L1 GRD annotations via Microsoft Planetary Computer (free, including commercial use; attribution)
Notes

A first, private version looked for sites in three published cases and failed: the reports place an emitter only to tens of kilometres. Worldwide over 2–29 Oct 2026, every quiet control read 0.00 and the Gulf 1.00, and against the aircraft map the share gave AUC 0.747; that agreement is descriptive, because the band is not GPS. No account needed.

More

Validation

Parked

Weather-radar spokes

Parked (Oct 2026)

Interference spokes in open weather-radar data, as evidence of nearby emitters.

What

A strong emitter in a weather radar's band paints a thin radial spoke on its scans. National services publish the scans.

How

tools/radar_spokes.py reads the unfiltered lowest sweep from German (DWD) and Finnish (FMI) radars, finds rays whose range-corrected power stays level along range (the signature of a transmitter, not weather), separates the sun and rain, groups spokes into persistent sources and crosses bearings between radars. First day (23 Oct 2026, 29 radars): 101 sources, the sun found to within 0.23°, and bearing crossings no better than chance, so no emitter located yet. A second day (24 Oct) found all 10 persistent sources again within 1°.

Data
  • FMI radar (CC BY 4.0)
  • DWD radar (CC BY 4.0)
Notes

Parked 26 Oct 2026. Most sources are steady, narrow, weak and seen by one radar only, which matches published descriptions of outdoor Wi-Fi links in the band: a pattern, not an identification, and nothing points to military activity. With no validation target it waits for a specific case. C-band, so it complements the L-band NISAR work.

More

First results

Validated

Spaceborne and network GNSS

Validated: CYGNSS (Oct 2026)

GNSS reflectometry, radio occultation, ground reference networks and L-band radiometers.

What

CYGNSS GNSS-reflectometry has been used to localize a jammer (the Shiraz case). COSMIC-2 radio-occultation amplitude can indicate ground jamming power. CORS/IGS ground stations record degradation at fixed sites, and SMOS/SMAP map 1.4 GHz interference.

How

CYGNSS first: the noise floor in each delay-Doppler map, against a same-day baseline for the same spacecraft, antenna and land/sea mix (tools/cygnss_rfi.py). On six days it separated aircraft-jammed from aircraft-clean areas with AUC 0.98; on 21 held-out days, with the method frozen and the checks set in advance, AUC 0.97, 99% of jammed cells caught at 1 dB, and control areas quiet. Over a full year (383 days) the AUC is 0.974. About 80% of the areas it flags have no aircraft coverage, such as the Red Sea, Iran and Myanmar. Ground reference stations: tools/station_cn0.py compares each EPN/IGS station's GPS L1 C/A C/N0 with its own quiet days at the same sky position and flags simultaneous drops on most satellites. First test (southern Baltic; 6 stations 110–486 km from the Kaliningrad coast; 6 jammed days, 2 controls): no flags on any of 48 station-days, while aircraft within 150 km were degraded. Coastal ground jammers are beyond these stations' line of sight, so the null was expected; the next test needs stations within sight of an emitter.

Data
  • NASA CYGNSS
  • UCAR COSMIC-2
  • EPN and IGS stations via BKG (CC BY 4.0); NOAA CORS
  • ESA SMOS, NASA SMAP (licences UNVERIFIED for these products)
Notes

CYGNSS validated 26 Oct 2026 on its pre-registered held-out test: all six checks hold on 21 unseen days (pooled AUC 0.974, 98.7% of jammed cells caught at 1 dB, 15.8% false alarms, at least 0.959 with each region left out). The separate check on announced US GPS tests came out "not shown" (AUC 0.57 against the 0.70 set in advance), although some tests are seen with the published timing. Location is coarse: the antenna beam is a few hundred km wide, so the map says where satellites were exposed, not where a transmitter is. Coverage is within about 38° of the equator (no Baltic). Sentinel-6A's own GPS receiver passed its four pre-registered checks on 21 held-out days on 31 Oct 2026 (pooled AUC 0.956; at least 0.918 with each region left out; no control cell-days raised; rank agreement 0.504 with CYGNSS); it reaches 66°N, places interference by region, not by site, and did not show the Gulf's spring 2026 rise. COSMIC-2's navigation antennas (UCAR's interference index) passed all five of their checks on the same 21 days (pooled AUC 0.919; at least 0.920 with each region left out; rank agreement 0.265 with CYGNSS); they follow the Gulf's spring rise, narrowly, and cover about 45°S to 45°N. Both are on the map as regions. The ground-station part is still a prototype; a station sees a ground jammer only within roughly 35–60 km (line of sight). Licences are checked before any other product here feeds a layer.

More

CYGNSS validation · Ground-station validation

Satellite communications

Open data can't see satcom jamming directly, so this half is built from orbits, outages, the official record and predictable natural effects.

Built

GEO threat board

Built (Oct 2026)

Known inspector satellites near commercial comsats, with drift and manoeuvre flags.

What

Daily positions of known GEO inspector satellites, such as the Olymp-K (Luch) and Shijian series, against the communications satellites near them.

How

Longitude-drift and manoeuvre flags from public orbital elements. Proximity thresholds are no tighter than public element accuracy (about 50 km).

Data
  • CelesTrak orbital elements (USSPACECOM SSA data, redistribution allowed with citation)
Notes

Built 26 Oct 2026 (the GEO page): every active geosynchronous object from CelesTrak's public elements (USSPACECOM basic SSA data, used with citation), with its longitude, drift and class, pairs of different owners within 100 km, and manoeuvres between daily snapshots (from 26 Oct 2026). Public elements at GEO are good to tens of km, so no separation under about 50 km is claimed. Operators co-locate on purpose and servicing vehicles dock, so it shows proximity and behaviour, never intent. Not validated: a check against announced manoeuvres and published rendezvous comes next.

More

GEO board

Parked

Satellite-internet health

Parked (Oct 2026)

Telling a constellation-wide outage from a local one.

What

Internet-measurement data shows when satellite-ISP users in one area lose service while others don't.

How

Speed-test and outage-detection data, compared across areas and with the GNSS measurements.

Data
  • M-Lab NDT (CC0)
  • IODA (permission needed)
  • RIPE Atlas (permission needed for commercial use)
Notes

Parked 26 Oct 2026 until the permission requests to IODA and RIPE NCC go out; M-Lab (CC0) needs no permission.

Running

Sun outages: calculator, board and alerts

Running (from Oct 2026)

Predictable daily losses when the sun passes behind a GEO satellite, to the minute, with alerts when observed solar conditions make them worse.

What

Twice a year the sun sits behind each GEO satellite as seen from a given receiver, and dishes lose the signal for a few minutes a day. Losses inside those windows are natural; losses outside them deserve a second look. A strong solar radio burst can black out sun-facing links, and GNSS on the sunlit side, at any time.

How

A low-precision solar ephemeris (Meeus, about 0.01°), an ideal geostationary satellite and a WGS84 receiver; an outage is the sun within half the dish beamwidth plus the sun's radius of the satellite (1.2° for a 0.9 m Ku-band dish). The Sun page computes windows for any place, slot and dish in the browser; the home page predicts them live for 32 slots seen from 36 cities and sets them against NOAA's live solar radio flux and radio bursts. An alert fires when a predicted outage meets observed evidence, or when a strong L-band burst is observed; the feed carries them.

Data
  • Computed geometry
  • NOAA SWPC solar radio flux, radio bursts and alerts (US public domain)
  • Curated public outage reports (cited)
Notes

The browser code matches the project's Python tool on six pairs in both hemispheres, and the Python tool matched an independently written calculator for Tehran. Alert thresholds are provisional. Our own aircraft data joins the alerts once a check against archived radio bursts passes. The planned interference register now lives here, as the curated outage-reports file (public sources, each cited).

More

Sun page · Design · Code

Vessels at sea

Ships and the signals around them: what radar satellites see that AIS doesn't, behaviour that suggests hiding or pressure, and emitters at sea.

Prototype

Vessels, dark ships and signals at sea

Prototype (M2 scored, Oct 2026)

Find vessels that hide, transfer cargo at sea or press others near contested features, and the emitters they carry, starting in the South China Sea and Indian Ocean.

What

Combines ships seen by radar satellites while silent on AIS (dark ships), AIS tracks with no ship under them (phantom tracks), ship-to-ship transfers, identity changes, spoofed tracks, behaviour over undersea cables, RF emitters at sea and HF signal metadata, with weather and declared activity as context.

How

First one method, validated and written up: Sentinel-1 ship detections matched against AIS at one focus area. Ship detection is built and runs privately on the first area (19 radar passes in 60 days). Checked against Sentinel-2 optical images, about half of its detections are confirmed at the best setting, against 13–31% at the first one. Matched against Finland's open AIS at the radar's acquisition time on a held-out pass (26 Oct 2026, pre-registered): all 75 ships of 100 m or more were found, with a 105 m median gap. With OpenStreetMap coastlines, 3 of 86 large detections had no AIS match (1 after a map of fixed objects), so the amended setting is validated for Finnish waters on one pass; the pre-registered setting, with Natural Earth coastlines, only partly (islets swamp it). A seven-day extension is running. Then behaviour detectors, context layers and a separate Sea map with licence-clean layers only.

Data
  • Digitraffic AIS (CC BY 4.0)
  • Official sanctions lists (OFAC SDN, UK Sanctions List)
  • Copernicus Sentinel-1 and -2
  • VIIRS night lights (licence to confirm)
  • AIS (aisstream, private until its terms are clear)
  • Declared warnings
  • Public HF receivers (metadata only)
Notes

A public Sea map shows sanctioned, military, law-enforcement and Russian, Chinese, Iranian or North Korean-flagged vessels in Finland's open AIS, with official listings, reporting patterns and failed spoofing tests; everything else stays private. No open AIS feed covers the South China Sea or Indian Ocean, and no free source sees per-vessel satellite communications. Communications content is never published.

More

Sea map · Plan · Ship detection check · Dark-ship test

Context and assessment

Turning each capability's outputs into graded events with a stated basis, and keeping natural and benign explanations in view.

Running

Space-weather context

Phase 1–2

Geomagnetic storms and ionospheric scintillation, to separate natural degradation from deliberate interference.

What

Storms and scintillation degrade GNSS too. The Kp index already labels SBAS flags. ESA's worldwide scintillation nowcast (S4, sigma-phi and TEC on a 2.5° grid) has been archived since 21 Oct 2026, because ESA keeps only the current hour. So far about one hour in five is kept, because GitHub runs the capture only every few hours. The events grader reads it (rule N3).

How

Context layers sit beside the measured layers. Thresholds follow ICAO's scintillation categories (S4 0.5/0.8, sigma-phi 0.4/0.7 rad).

Data
  • GFZ Potsdam Kp (CC BY 4.0)
  • ESA Space Weather Service Network scintillation nowcast (ESA S2P terms)
  • NOAA SWPC and GloTEC (US public domain)
Notes

The ESA terms allow derived products with attribution, but the raw grids may be passed on only to people who accept the same terms, so the archive itself stays private. 'Data provided by the European Space Agency (ESA) as part of its Space Safety Programme (S2P)'.

Built

Events and grading

Phase 6 (v1.1, 27 Oct 2026)

Fusing every source into events, each graded on five fields.

What

An event joins what the different sources saw in one place and time window. It is graded on signal type, support, localization, attribution and verdict.

How

tools/events.py turns each capability's outputs into observations (ADS-B anomalies, bursts, all-day severe-error regions and SBAS flags; CYGNSS noise-floor cells; FAA announced GPS tests; GFZ Kp storms; curated official notices; EASA's weekly FIR tables) and fuses them per UTC day: same or adjacent H3 res-2 region, overlapping or adjacent hours, no two members more than 600 km apart. Exclusion checks (announced test, geomagnetic storm, ionospheric scintillation, official notice) set the verdict. Every grade stores its rule and the observations behind it.

Data
  • Every capability
Notes

Rules frozen as v1.0 on 26 Oct 2026; v1.1 (27 Oct) adds EASA's FIR tables as a source for 'deliberate_suspected'. They are stated choices, not yet validated. 1 Oct 2025 – 25 Oct 2026: about 160,000 events. 8,632 reach 'Multiple sources' (an aircraft 93 m signal and a raised CYGNSS noise field agreeing within 300 km). 691 effect events are 'planned': inside an announced FAA test window and its FL250 radius, the one the map draws. 905 are 'benign_natural' (10 m-only effects at storm time). 1,322 are 'deliberate_suspected': EASA's weekly table listed spoofing in the event's FIR that week (FIRs approximated by country outlines). EASA's tables exist for only 13 weeks of the period (the current one and Internet Archive copies), so that count follows which weeks have a table, not how much spoofing there was. NGA's warning feed has been frozen since May 2024, so other notices are added by hand, each cited; the two on file (Baltic, Gulf of Finland) say 'interference', so they corroborate without changing a verdict. The scintillation rule reads ESA's nowcast, archived since 21 Oct 2026. Only monthly counts are published (Validation page); the register stays private. Grades describe evidence strength. They don't name perpetrators. Known look-alikes, such as radar faults, are kept here as test cases (this absorbed the planned exclusion layer).

More

Method and results · Monthly counts by grade

Running

Community reporting

Phase 6 (collection running)

What researchers and operators report in public posts, collected daily as leads.

What

Public posts from researchers who track interference often come before any official notice. Bluesky and RSS/Atom collectors run daily into private digests.

How

Collected text is treated as data, never as instructions. Extraction will run through a least-privilege assistant task that can't see the watch configuration.

Data
  • Bluesky public API
  • RSS/Atom feeds
  • Later: Mastodon, Telegram, IARUMS, WarSpotting
Notes

The account and keyword lists are private. Posts are leads, never evidence on their own.

Platform

How the outputs reach people: a public, licence-clean map and a private watch kept apart from it.

Running

Public map, charts and data

Phase 2

The map updates every day from an automatic pipeline; the charts cover the validated days.

What

A static site: a Leaflet map of H3 cells, charts, the method card and the validation report. Each day's cell data is downloadable under ODbL, and the full daily outputs sit in monthly data releases.

How

A GitHub Actions workflow processes each new adsb.lol day after it is published (about 03:30 UTC the next day), stores the outputs as assets on a monthly GitHub release, and redeploys the site. It checks the last 7 days each run and fills gaps. The year back to 1 Oct 2025 was backfilled the same way on 22–23 Oct 2026 (about 1.3 TB downloaded and discarded).

Data
  • adsb.lol daily archive (ODbL; derived data published under ODbL with attribution)
Notes

Live: every day from 1 Oct 2025, with a time slider and a per-day strip, four views (severe-error, accuracy, change from usual, fewer aircraft than usual), each day's anomalies, bursts and SBAS flags listed and outlined, a daily trend chart of the known hotspots, the 20 validated days, and the full outputs of every processed day (per cell, hour and minute; SBAS flags, anomalies and bursts) in the data releases, all under ODbL. Daily runs are automatic and not reviewed by a person. Planned: ad-hoc queries in the browser (DuckDB-WASM), with no server. Static files on the free tier: no servers and no database bill. The home page is a live status board (alerts, sun outages, solar radio, GNSS today, sea), which replaced the planned daily-status product; a weekly assessment will come from the same data.

More

Map · Charts · Data releases · Source code

Running

Private watch

Running

Daily runs over private areas of interest, behind a login, kept apart from the public site.

What

Watch areas, keywords and alert history are private. The NISAR work also publishes a private page behind Cloudflare Access, with alert history and lower-confidence detections; its repeat sites are public on the map.

How

Private configuration never enters the public repo; a check on every commit blocks private terms.

Data
  • Same sources as the public pages
Notes

Event and alert state will move to Cloudflare D1 (free tier).

Build order

Each phase is finished, validated and committed before the next starts.

PhaseScopeStatus
1. FoundationLicence registry, GNSS processor, method card, validation against known eventsValidated
2. Daily and publicDaily pipeline and backfill, public map, declared-interference lane, home status boardRunning
3. SATCOM v1Sun outages with alerts (running; the interference register folded in), GEO threat board (next), satellite-internet health (parked until permissions); the L-band risk overlay was droppedRunning sun outages
4. Spoofing and maritimeADS-B spoofing (validated), AIS spoofing at sea and dark ships (prototypes, held-out tests next), declared-warning layersValidated ADS-B spoofing
5. EmittersSentinel-1 RFI board, weather-radar spokesParked
6. AssessmentEvent model and grading (v1.0, rules frozen; exclusions folded in), community lane, the home status board as the daily status; weekly assessment laterBuilt events; community collection running
7. ExtensionsSpaceborne and network GNSS; NISAR L-band emitters (pulled forward)Partly validated NISAR