ADS-B surveillance research · Beta service

Transponder anomaly detection
across European airspace

This service continuously cross-checks ADS-B ICAO24 hex addresses against callsigns broadcast by aircraft in real time. For countries where the ICAO allocation follows a documented mathematical algorithm, the expected registration is computed locally and compared to the received callsign. Mismatches are logged with full flight trace and station metadata for ground-truth analysis. Data sourced from radarvirtuel.com — operated and maintained by ADS-B NETWORK SAS.

Beta · June 2026 icao_checker v1.4 icao_monitor v1.1 mg23 · adsbnetwork.com
01 — INGEST
InfluxDB query
Last callsign + station per ICAO over a 5-min rolling window — ~2,400 aircraft per cycle
02 — FILTER
Callsign classification
Flight numbers (AFR27QN, SWA296…), corrupted fields (@@@@) and military callsigns are discarded
03 — DECODE
ICAO verification
Stride or base26 algorithm computes expected registration from the hex address — no external API
04 — STORE
Anomaly capture
Divergences saved to MongoDB with flight trace, position, altitude and originating station

Detection statistics

Total anomalies
—
since service start
Unreviewed
—
pending analysis
Reviewed
—
confirmed or dismissed
Last 24 h
—
rolling count

Anomaly log

—
Auto-refresh every 60 s
ICAO24 Received Expected Country Station Altitude Detected (UTC) Status
Loading…
About UNKNOWN entries. Aircraft from the UK (G-), Spain (EC-), Italy (I-), USA (N-) and most non-European registries use administrative ICAO allocation — no mathematical relationship exists between the hex address and the registration mark. These are classified as UNKNOWN and require an official registry database lookup. Only the 9 countries listed below support algorithmic real-time decoding.

Country coverage

✓ Algorithmically decodable
🇫🇷FranceSTRIDE-1024/32 · F-B/G/H/I/O
Decodable
🇩🇪GermanyBASE26 + STRIDE · D-A..I
Decodable
🇧🇪BelgiumSTRIDE-1024/32 · OO-
Decodable
🇩🇰DenmarkSTRIDE-1024/32 · OY-
Decodable
🇫🇮FinlandBASE26 · OH-
Decodable
🇬🇷GreeceSTRIDE-1024/32 · SX-
Decodable
🇵🇹PortugalSTRIDE-1024/32 · CS-
Decodable
🇷🇴RomaniaSTRIDE-1024/32 · YR-
Decodable
🇹🇷TurkeySTRIDE-1024/32 · TC-
Decodable
○ Administrative allocation — registry lookup required
🇬🇧United KingdomG- · confirmed administrative
Admin.
🇪🇸SpainEC- · no pattern found
Admin.
🇮🇹ItalyI- · 4-letter suffix
Admin.
🇳🇱NetherlandsPH- · disparate ratios
Admin.
🇦🇹AustriaOE- · operator blocks
Admin.
🇸🇪SwedenSE- · no stride match
Admin.
🇨🇭SwitzerlandHB- · spread 0.79
Admin.
🇳🇴NorwayLN- · spread 1.21
Admin.
🇵🇱PolandSP- · spread 0.53
Admin.