Private Jets, Public Data
How lots and lots of private jet passengers left Kazakhstan during protests in early 2022
Highlights from today’s post (and some notes):
Lots and lots of flight tracking data
Kazakhstan’s political situation in early 2022
How keeping an eye on oligarchs’ flights can tell us more about a country
FYI: it’s a shorter post this week since I’m working on a few bigger-ticket items that I’m hoping to share with you all in the next few weeks!
PS: I know Russia invaded Ukraine -I haven’t had time to put together a full piece yet, but if there’s anything you think I should look into, drop me a line at email@example.com, on Twitter at @LOActualControl, or ask for my Signal number.
Need to convert geo coordinates into useful location information?
This week's edition is sponsored by OpenCage who operate a highly available, simple to use, worldwide, geocoding API based on open data. Try the API now on the OpenCage demo page.
In case you missed it amid your New Year revelries, Kazakhstan’s government faced a crisis in early 2022. At the beginning of the year, the country lifted its natural gas price cap, which allowed the free market to determine the country’s gas prices. This move led to a spike in prices during the depths of winter, which in turn sparked localized protests.
In the face of government inaction over skyrocketing gas prices, the protests spiraled to not only cover the entire country, but also to demand wider concessions like the resignation of the government and the end of longstanding corruption. The Kazakh authorities met the protests with brutal force. Eventually, hundreds of protesters and dozens of security forces were killed, thousands were arrested, and a peacekeeping mission led by the Collective Security Treaty Organization, spearheaded by Russia, entered the country to restore order.
But what caught my eye about these protests was a somewhat underreported fact: the exodus of private jets in the days leading up to the main crackdowns on January 6 and 7.
Using Open Sky Network data, I pulled information about a variety of flights leaving Kazakhstan both before and after the main protests during the first and second weeks of January. I found that, despite Kazakhstan being a relatively poor country, no less than 25 private jets departed the country between January 1 and January 14, including high end models like Bombardiers and Gulfstreams.
Two things are worthy of note: first of all, while Open Sky Network has the best data availability (I’ve found) of all flight tracking sites, its global coverage isn’t quite as good as Flight Radar 24 or some other sites. So I may be missing a few flights. Therefore, the 25 jets I found should be seen as a floor, not a ceiling.
Second, there was a massive internet outage in Kazakhstan between roughly January 6 and January 9. Granted, much of that time corresponds to when the country’s main airport was overrun by protesters, but if a few private jet flights snuck out during that period, their data was not recorded by any flight trackers - Open Sky Network, Flight Radar or anyone else.
Anyway, without further ado, let’s get into the data.
Open Sky Network records two “types” of data for flights:
Aggregated data about the flight itself - where it took off from, where it landed, the aircraft’s callsign, etc.
Granular positional data about the flight - its altitude, latitude, longitude, heading, and other similar information
The second type of data was more valuable for my purposes, but unfortunately, I needed to know the first type of information to obtain the second.
I started by making a call to the Open Sky Network API that records the aggregated flight data (i.e. the first type of info) for all flights that left Kazakhstan’s three main airports between January 1 and 14. After some tinkering, the code spit out a table showing these departures.
I took that table and zipped the icao24 column (essentially an aircraft ID) to the firstSeen column (time at which the plane was first “seen” by Open Sky Network) to make an index that I would use to call the other Open Sky Network API to get the second type of information - flight track and position data.
Finally, I fed that index into the other Open Sky Network API to obtain a loooooooong table of every latitude and longitude recorded for every flight that left Kazakhstan between January 1 and January 14.
I filtered that table to exclude the callsign of every airline and cargo service (i.e. not private jets) I could find, did a bit more boiling down, and exported the resulting to a csv file. I uploaded the csv to the mapping platform Kepler to visualize the results:
While the map shows several unsurprising locations for Kazakh oligarchs to flee to (Moscow, Tbilisi, Budapest, London), there are a few locations that raised my eyebrows. The Gulf, for instance.
At least five private jets flew from Kazakhstan to Riyadh, Dubai, and Abu Dhabi. One of these aircraft, with registration number A6-RAS, is owned by DC Aviation Al Futtaim LLC, an Emirati branch of a German aircraft management, charter, and consulting company.
In fact, the registration details of several of many of these private jets raise questions. Not one, not two, but five of the aircraft were registered in tiny San Marino, including the subtly-named T7-VIP1. While a Kazakh owner registering an aircraft in San Marino may seem strange, the San Marino jurisdiction exempts aircraft from a number of taxes and fees and does not force planes to comply with EU or European Union Aviation Safety Agency regulations, despite being entirely located, you know, within Italy.
I noticed another pair of interesting outbound flights by the aircraft 9H-AVA on January 5 and January 10. The aircraft, registered in Malta, is owned by Maleth-Aero AOC Ltd. Maleth-Aero, in turn, is owned by Frontier Services Group. Who started and until recently led Frontier Services Group, you may ask? None other than former Navy SEAL, soldier of fortune, and probable coup-instigator Erik Prince.
Your guess is as good as mine as to why a Frontier Services Group-linked plane was ferrying folks in and out of Kazakhstan during the protests. But one possible option is that, given FSG’s raison d’etre of protecting Chinese investment in Belt and Road locations, the aircraft could have been removing Chinese business owners, investors, or other movers and shakers from Kazakhstan.
While I certainly don’t blame those who had the means to leave the country for doing so, it is nonetheless remarkable that many important people (not to mention potentially foreign investors, like those transported by the Maleth Aero plane) clearly fled the country while thousands of their countrymen were being hurt, killed, and arrested by Kazakh security forces. And although the government was able to clamp down on the protests after a few weeks, we may see another wave of private jet departures if protests reignite.
Finally, as always, if you’d like to dig into the data on your own, just let me know and I’d be happy to send you the file.
I've heard people say they get geo-location from video or pictures. How do you do that? Thanks, I enjoyed the article!