← All insights
Geopolitics·Analysis·6 min read

Primorsk, two records

Russia's own port statistics against public ship tracking, month by month. The Baltic's oil did not fall in 2025. It left the record.

Two independent records describe oil loadings at Russia's Baltic ports. The Association of Commercial Sea Ports reports what the stevedores handled, port by port, in cumulative monthly releases. IMF PortWatch estimates what tankers carried away from what their transponders broadcast. For eleven months of 2025 the two agree closely. From December they part, and by February 2026 the transponder record sees about a seventh of what the port reports. I set the two side by side because the PortWatch series has been read, by me among others, as the year Russia's Baltic exports finally broke. The official record says they did not. What broke was the view.

The official record

The association's full-year figures, as carried by Kommersant on 30 January 2026, put crude through all Russian ports at 274.9 million tonnes in 2025, up 2.8% on 2024. Products fell 7.7%, to 121.1 million tonnes, and the Russian trade press tied the fall to Moscow's own export bans after the refinery strikes. Primorsk, the largest Baltic oil terminal, handled 63.9 million tonnes, up 5.2%. Ust-Luga handled 130.5 million tonnes of all cargo, down 3.4%.

Million tonnes20242025Change
Crude, all Russian ports267.5274.9+2.8%
Products, all Russian ports131.1121.1-7.7%
LNG, all Russian ports36.337.2+2.5%
Baltic basin, liquid cargo144.5-3.2%
Ust-Luga, all cargo130.5-3.4%
Primorsk, all cargo63.9+5.2%
Sabetta, all cargo29.1-0.4%

The first quarter of 2026, from the 14 April release, continues the line. Primorsk loaded 11.3 million tonnes of crude, up 2.1% on a year earlier, and 4.9 million tonnes of products, up 7.2%. Ust-Luga's crude rose 5.7% and its products fell 12.3%. Across the Baltic basin, crude was up about 4% and products down 7.5%.

The transponder record

PortWatch counts tanker calls and estimates the tonnes they carried. For the same terminals and periods it shows something else entirely.

Terminal and periodTanker callsEstimated exports, MtChange
Ust-Luga, 2024 to 20251,495 to 91954.2 to 30.1-44%
Primorsk, 2024 to 2025983 to 93053.2 to 50.7-5%
Ust-Luga, Q1 2025 to Q1 2026265 to 1276.9 to 4.4-36%
Primorsk, Q1 2025 to Q1 2026264 to 9013.4 to 4.5-67%

Divide one by the other and the discrepancy has a shape. In the first quarter of 2025 PortWatch's estimate for Primorsk was 86% of the port's reported crude and products. A year later it was 28%. At Ust-Luga the share went from 46% to 31%. Over the full year, Primorsk's tracked share was 88% in 2024 and 79% in 2025, so the break is recent and steep.

Month by month

The association's cumulative releases can be differenced into months, with the caveat that a revision in one release moves a single month, and that from May 2026 the releases stopped reporting by cargo type and port, so the series ends in April.

Primorsk, monthly oil loadings
Million tonnes, official port statistics against PortWatch tanker estimates
02468Jan 2025AprJulOctJan 2026Apr 20266.2Official0.9PortWatch
Association of Commercial Sea Ports monthly releases, January 2025 to April 2026, differenced month on month; IMF PortWatch daily port data to 18 September 2026.

The official line holds between 4.8 and 6.3 million tonnes through the whole period. The tracked line runs beneath it at 73% to 94% of the official figure every month from January to November 2025, then falls away: 59% in December, 45% in January 2026, and 15%, 15% and 14% in February, March and April. March 2026 looks high against the reported suspensions of Baltic loadings after the drone strikes, and I note it rather than adjust it.

MonthOfficial, MtPortWatch, MtVisible
Jan 20256.15.082%
Feb 20255.03.774%
Mar 20255.34.687%
Apr 20254.93.980%
May 20254.94.694%
Jun 20255.04.080%
Jul 20254.83.573%
Aug 20255.54.581%
Sep 20255.74.885%
Oct 20255.44.583%
Nov 20255.13.874%
Dec 20256.23.759%
Jan 20266.32.945%
Feb 20264.90.815%
Mar 20265.80.915%
Apr 20266.20.914%

Reading the two together

The official statistics show no fall in Baltic crude in 2025 or in the first quarter of 2026. The fall they do show is in products, exactly where Moscow had a reason to admit one, after its own export bans. A series written to flatter would not volunteer that.

The PortWatch fall is therefore mostly a fall in what AIS can see, not in what left the port. The candidates are the ones the sanctions literature already names: tankers transmitting less or spoofing position after the January 2025 United States designations, ship-to-ship transfers outside the port geofence, and vessels that PortWatch's classifier no longer counts as tankers. Which of the three carries most of the gap is the next question, and it needs a second AIS source.

Sabetta, the Arctic LNG terminal, is the control. It agrees in both records, flat in each, so the Arctic side of the earlier contrast stands. The Baltic side does not, as a statement about exports.

Everything written about sanctions working at sea from transponder data is measuring the ships that stayed on the record.

What this changes is the reading of a widely quoted count. Tanker calls at Ust-Luga did fall from 1,495 in 2024 to 919 in 2025; the count is true and the inference that exports fell is not. Any event study of 2024 to 2026 built on calls loses visibility over the same period and has to say so. And an assessment of enforcement at sea that rests on the public transponder record is, from early 2026, an assessment of the minority of the fleet still broadcasting.

Limits

The association is one source, reporting stevedore data. The first-quarter 2025 bases for the quarterly shares are back-computed from the 2026 levels and the reported growth rates. The monthly series is a difference of cumulative releases and ends in April 2026 because the association stopped publishing by port. The next steps are a second AIS provider for the same months and the association's basin figures once they resume.


Sources


← Back to all insights