Ethan Gallant · OSINT

Research

Original work, each piece built around a question the open record can actually settle, and explicit about the places where it cannot.

Projects

MedGraph

Eastern Mediterranean, Red Sea, South Caucasus

A dependency cascade model with an interactive viewer. Every edge weight is labelled measured or analyst assigned, every judgement references an assumption carrying a recorded falsifier, and sensitivity analysis identifies which assumption a given conclusion actually rests on.

Measuring three edges against IMF PortWatch and UN Comtrade did not confirm the earlier finding. It promoted the weakest assumption in the register to load-bearing, and the evidence needed to test it was already logged as an intelligence gap.

PythonSQLiteNetworkXSensitivity analysisInteractive viewer

Commercial Infrastructure, Strategic Dependence

Mediterranean container terminals

A forty page open source study mapping Chinese state-linked ownership across eleven Mediterranean container terminals and assessing each position against NATO logistical exposure. Confidence is graded separately for commercial influence, military utility and evidence of operational use, because the evidence behind each is qualitatively different.

The finding that carries: dependence operates at the level of the corporate network, not the individual port. When the Red Sea closed in 2024 and Piraeus throughput fell, the traffic reappeared at Valencia and Zeebrugge, and never left the COSCO perimeter.

Two positions where beneficial ownership could not be established from open sources are recorded as intelligence gaps rather than inferred.

Corporate registriesHKEX filingsACHKepler.glUnpublished

Method case studies

Short investigations written so the method can be followed and checked step by step, rather than presented as a finished conclusion. Published on Substack, June 2026.

Mapped the sanctions gap across the Shvidler, Abramovich and Davidovich network using Companies House filings, the ICIJ Offshore Leaks Database, the UK Supreme Court judgment in [2025] UKSC 30 and the OFAC SDN list. The gap is structural rather than an oversight: a designation in one jurisdiction does not travel to another.

SanctionsBeneficial ownershipEntity resolution

Identified MSC Euribia at Zayed Port from a single photograph. A Bellingcat Discord challenge, solved by correcting an anchoring bias: the initial read was an airport, revised to a cruise terminal, with the vessel then resolved from visible hull livery. Written up with the wrong turning left in.

MaritimeImagery verificationGeolocation

Resolved the aircraft from the electrochromic window tint visible in one aerial photograph, with alternative explanations tested and calibrated confidence stated on the variant rather than the type.

AviationImagery verification

How I work

Confidence, stated per claim

A judgement graded low next to one graded high is more use than a document with a single confidence line at the top. Grading claim by claim also forces the weak ones into the open, where they can be argued with.

Gaps recorded, not filled

Where the open record does not answer a question, the question is written down along with where it was looked for. Substituting a plausible figure destroys the distinction between what is known and what is assumed, which is the only thing making the rest of the work checkable.