Mapping the Secret Skies: Lessons Learned From Flight Data

The OCCRP Team
OCCRP: Unreported
Published in
7 min readJun 26, 2020


By Emmanuel Freudenthal

Since January 2019, OCCRP has been tracking flights all over the world. With the project ending this month, coordinator Emmanuel Freudenthal tells us how it was set up and what he learned.

Emmanuel Freudenthal installs an ADS-B antenna to track planes. (Credit: Khadija Sharife)

I held onto the roof of a small house in a suburb of Monrovia, Liberia, balanced on top of a rickety ladder while I bolted down an antenna. Armed with just a screwdriver, I was on the front line of a data-gathering project to track planes carrying dictators, oligarchs, and others.

That antenna collects data from planes flying within about 400 kilometers, including the aircraft’s GPS coordinates, registration, and altitude. The antenna connects to a tiny computer that stores the data and then sends it on to a remote central server. The data is then made available online for anyone to track any plane they like.

We started this flight-tracking project in 2019 with two aims. The first was to make public the movements of aircraft owned by dictatorships, which was relatively straightforward. The second goal was to use flight data as the basis for investigative stories. That part was much harder, although we had some notable successes with upcoming and already-published stories.

Nearly all aircraft emit unencrypted data about their locations so that other aircraft and air traffic controllers can prevent collisions. They use a system called Automatic Dependent Surveillance–Broadcast (ADS–B). Anyone with an antenna, available for less than $10, can collect the data, much like anyone with a radio receiver can tune in to an FM channel.

Another ADS-B antenna on a rooftop in Nairobi.

One of the pioneers of making this information publicly available is Mike Gerard, a retired British computer scientist who worked at a research center in Switzerland. He wanted to know who owned the planes that criss-crossed the sky above his home in Geneva, but the airport refused to give him the details.

As president of his neighborhood association, Gerard’s first concern was the noise from flights. He wanted to know which planes made the most noise so he could present that information to authorities in the hope of limiting the times these aircraft would be allowed to land or take off. He installed a noise detector along with an ADS-B antenna. But it was the flight data that really grabbed his interest.

“I could find out the real traffic coming to Geneva or going away from Geneva, including all these private flights which you never see on the airport board,” he said, adding that some of the information turned out to be “very embarrassing sometimes for the airport.”

“Geneva is a good place for [dictators] to stash their money in the private banks,” he said.

The idea of tracking such people gave rise to the Dictator Alert project, which is wrapping up this month. We launched it in 2019 with support from OCCRP and a goal of tracking planes owned by authoritarian regimes and corrupt elites all over the world. Flight data comes from more than 3,000 antennas hosted by aircraft enthusiasts like Gerard, and the information collected is fed to servers owned by a website called ADSB-Exchange.

ADSB-Exchange is unique because, unlike similar sites such as Flightradar24, it does not remove planes from its website upon the owner’s request. Since around 2016, ADSB-Exchange has collected more than 31 billion flight positions, a dizzying 60-plus terabytes of flight data. We planned to use this trove of data to find stories.

ADSB-Exchange’s Tracking Map (Screenshot above Gibraltar).

Nevertheless, the coverage has big holes. Tracked planes can move beyond an antenna’s reach and then not reappear on the map until another antenna grabs their data. At the launch of our flight tracking project, Africa in particular had almost no antennas. So about a dozen were installed, some of them shipped to remote locations by C4ADS, a U.S. non-profit that focuses on data-driven reporting on security and conflict issues.

Ensuring that the antennas remain powered and connected to the internet is not easy in places with frequent power cuts and surges. But the biggest challenge has been to shape stories out of this data.

Almost none of the flights in the world are interesting to journalists. They mostly take people on holidays or to business meetings. Finding a compelling story from reams of flight data is like digging for a needle in a giant haystack of data. But along the way we learned to search more efficiently — and found a few needles.

How to Make Sense of Flight-Tracking Data

Your likely starting point will be to look for who owns the plane that you are researching. To find that out, you will first need to look at plane registers. Those are government-held lists of the planes that have been registered in their jurisdictions.

To understand how to use these registers, you need to know some nerdy plane facts. Each plane is given two identifiers. The first is the hex code or Mode-S code, which is what the aircraft sends to antennas to identify itself and looks something like this: AC82EC. The second is the aircraft’s registration, a tail number like N-123AZ, which is painted onto the body of the aircraft itself. The first one or two characters tell you the country where the plane is registered. For example, any tail number that starts with ’N’ is registered in the United States.

Authorities in each country have a registry of information including the model of a plane and its owners, along with its registration number and hex code. The United States registry for civilian planes is available online, but that is not the case everywhere.

Raw flight tracking data. Plane UID in first column.

Usually, the quickest way to find details about a plane is to look it up on, although the site is not always up to date. However, a plane’s owner may be a shell company, obscuring the real owners.

Even after identifying the owner, you’ll need to take more steps to get a story out of the data.

For example:

  • You spot an aircraft with the hex code 4D2046 and plug it into The site provides the registration number 9H-BOM, and an owner, a company called Orion (Malta) Ltd. The 9H prefix corresponds to Malta and so can check that this is accurate on the Maltese aircraft registry, which gives you the company’s full address: 85 St. John Street, Valletta, Malta.
  • This could be the end of the road for your investigation. However, further digging reveals that the Malta firm is listed in the Paradise Papers, which shows two companies as its shareholders. Those shareholders, one of which is a U.S. defense contractor, ultimately own the aircraft.
  • But you still need to do further research to find the individuals behind the shareholding companies. And you need to know who was on board a flight and figure out the reason for their trip. Luckily, there are more tools at your disposal, many of which the Global Investigative Journalism Network has listed here.


Over time, we learned that the most effective way to find stories is to get data from a place where most planes are noteworthy, for example in a war zone. There are not too many people holidaying in Libya or Somalia, and commercial planes usually try to stay clear of active combat. The challenge is installing a receiver and maintaining it, including keeping the host safe.

An upcoming OCCRP story focuses on U.S. surveillance flights over Somalia. The U.S. military operates out of a small air base at Manda Bay just over the border in Kenya. We had a tip that it would be worth checking on planes in the area, so we set up an antenna nearby, which fed us information about planes taking off and landing from the base.

Visualization of flight data

We eventually had to take down the antenna due to security concerns. But we managed to collect data on a number of planes that had been purchased by obscure shell companies and modified with advanced surveillance equipment before being sent to Kenya.

Journalists may also find good leads on plane-spotter forums or discussions between aircraft aficionados on Twitter. In the absence of a tip, it is possible to find kernels of stories by digging deep into data and cross referencing one flight dataset with another. For example, we compared data from the Paradise Papers — a massive leak of information relating to offshore companies — to a worldwide database of aircraft owners on ADSB Exchange. Cross-checking the databases took an hour with a 96-core supercomputer, and yielded about 100 interesting aircraft owned by anonymous offshore firms.

Of course, simply finding a jet with an anonymous owner, or even tracking its movement, is not a story in itself. In order to show the significance of a flight, you need to know who was on it and why they travelled. This means that journalists working with flight data will ultimately need to bolster it with other forms of reporting.

One such story was published by Swiss newspaper Tribune de Genève. We got a tip that Swiss intelligence and special forces had gone to Syria to interview detainees. Their flight, on a government plane, does not show up on most flight tracking websites. But we were able to confirm the tip with data from ADSB-Exchange.

Having eyes on the ground is the most valuable tool in a flight journalist’s toolbox. There are not many other ways to know that someone was actually on a plane. One of the main lessons of this project was that teaming up with journalists with complementary knowledge is key — especially if they have friends at the airport.



The OCCRP Team
OCCRP: Unreported

Members of the Organized Crime and Corruption Reporting Project.