Max Makovsky
← Projects

Project

Iran Aviation Tracker

Tracks sanctioned Iranian aircraft on a live map, alongside a roster giving each tail's type, operator, sanctions designations and recent flights.

Built with Python, FastAPI, SQLite, React, Leaflet

StatusRepository is currently private, release forthcoming.

The tracker covers the sanctioned Iranian fleet, including Mahan Air, Iran Air, Caspian, Meraj, Qeshm, Pouya and Iran Airtour, together with government and cargo aircraft. Airborne aircraft that are transmitting appear on a live map, alongside a filterable roster giving each tail’s type, operator, status, last flight, resolved Mode-S hex and its US, EU, UK and Canadian sanctions designations. Selecting a tail displays its recent flights as arcs between airports.

The database and tracker

The system maintains two sets. The database contains every airframe designated by a sanctions list, whether or not the aircraft still flies. The tracker contains the aircraft observed transmitting. Most designated airframes have never been observed, and a small number of observed aircraft carry no designation, so neither set contains the other. Combining them would restrict the tracker to aircraft a sanctions list had already identified.

Aircraft discovery

A watchlist can be polled only for registrations already known, which excludes any aircraft whose registration was never published. The backend therefore sweeps Iran’s Mode-S allocation at half-hour intervals and reports any hex in that block not accounted for by the roster.

The sweep provides the only access to the unsanctioned domestic carriers, since Taban, Zagros, Kish and Varesh hold no designation from which information could be drawn. The first sweep identified a Varesh 737 over the Gulf on this basis. A discovered aircraft enters the tracker marked with an asterisk and without a sanctions status, because no source supplies one.

Coverage

Two factors limit how many aircraft are visible at any time. Aircraft still in service routinely disable their transponders near Iranian airspace, with normal operation most consistent on routes to China. A substantial portion of the designated fleet is also no longer in service, since a sanctions list records designations rather than airworthiness; the roster includes sixteen Fokker F28s and thirteen ATR-72s with no recent recorded movement, carried as uncertain. An empty map is therefore the normal state.

Observed and presumed position

For a tail that is not transmitting, the tracker reports the last observed position and the presumed current airport as two separate values. Each presumption carries the evidence supporting it and an assessment of that evidence, ranging from a confirmed ground sighting to a destination filed a week earlier.

Sanctions data is drawn from the OFAC SDN list, with EU, UK and Canadian designations resolved per tail.