Every export is somebody’s import, so the same goods get counted twice — once by the country that sent them and once by the country that received them. Across 2,600 matched pairs in 2022 the two figures disagree by a median 31.15%. Exports are valued before freight and imports after, which explains some of it; putting both sides on the same valuation leaves 22.38%.
China reports exporting $116.23 billion to Germany in 2022. Germany reports importing $207.81 billion from China. The same trade, a $91.6 billion gap, and two of the most capable statistical agencies in the world.
Both countries publish a figure for the same goods crossing the same border in the same year. Neither is a rough estimate: these are customs records, compiled by agencies with every resource.
Exported to Germany in 2022.
Imported from China in the same year — $91.6 billion more.
A 35.26% gap, and 29.62% once both sides are on the same valuation.
There is a real and boring reason the two sides differ: an export is valued at the dock and an import after it has been shipped and insured. That gap is expected. It is also much smaller than what is actually there.
Absolute difference between the two sides, across all 2,600 matched pairs.
On the 703 pairs where the importer also publishes a pre-freight figure. The rest of the gap is not shipping.
No freight margin is a hundred per cent. 894 pairs differ by more than half.
If this were smuggling or under-invoicing the gap would have a sign. It does not. For some pairs the importer records far more than the exporter, and for others the exporter records far more than the importer.
China records 683.21% more arriving than Saudi Arabia records leaving.
The other direction: -39.21%. Goods landing at Rotterdam and moving on are counted as Dutch exports and were never German imports.
Saudi Arabia’s partners differ from it by a median 291.97%; Germany’s by 9.64%.
Every export is an import. Summed across the same set of reporters, the two totals describe one set of shipments and cannot honestly differ. They differ by 3.33%.
Across all 52 reporters, 2022.
The same trade, seen from the other side.
3.33%. Goods that one country recorded receiving and no country recorded sending, or the reverse.
The mismatch is not only between countries. Before comparing any two reporters, this analysis checks each reporter against its own published total.
Comtrade publishes each reporter's trade with partner zero, 'World', as its own row. That is the country's own total, and it should equal the sum of its own partner rows. For 103 of the 104 reporter-flows read here, it does.
Dominican Rep. reports importing $26.76 billion in total and $28.88 billion when its own partner rows are added up, a 7.93% difference. Nothing is reconciled here; it is recorded, because a country whose own two figures disagree is part of the same story.
The first version of this analysis read Comtrade's default response, which splits every flow by mode of transport and customs procedure. Germany's partner rows then summed to 433% of its own stated exports and the preview endpoint truncated the list at 500 rows. The check caught it; without it the page would have shipped confident nonsense.
Four limits. The first two would change a conclusion above if ignored.
Several dull mechanisms produce most of it: goods re-exported through a third country keep the wrong origin, shipments crossing a year end land in different years on the two sides, and low-value consignments are excluded at different thresholds. Under-invoicing exists too. Nothing here separates them.
Only 703 of the 2,600 pairs carry an importer FOB value, so the 22.38% figure describes those pairs and not the whole set. It is reported separately for that reason rather than blended into one number.
These are the largest traders plus the Philippines, chosen from one country's partner list. The totals here are totals for this set. A country that reports nothing to Comtrade cannot disagree with anybody and is absent from every figure.
2022, because recent years are revised for a long time afterwards and a disagreement measured on provisional figures would mostly measure the revision cycle.
Every figure on this page traces to one of these, through a CSV in
data/global-trade-mirror/. Each is checked against its source query on every
build.
Annual goods trade for 2022 between 52 major reporters and every partner they report, in both directions, with CIF and FOB valuations where published — The preview endpoint is free and needs no key. It must be queried with motCode=0, customsCode=C00 and partner2Code=0: without them the response is split by mode of transport and customs procedure and truncated at 500 rows, which silently returns a fraction of a country's trade.
Reporter and partner area codes, names and ISO3 codes — Two files with two different key prefixes for the same fields — Reporters.json uses reporterCodeIsoAlpha3 and partnerAreas.json uses PartnerCodeIsoAlpha3. Reading one with the other's key yields an empty string for every country and raises nothing.
The FOB and CIF definitions that make an import figure larger than its matching export figure by construction — Cited because the difference between the two valuations is the part of every gap on this page that has a legitimate explanation, and it is removed before anything is claimed.