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.