What share of US ocean import bills come from China and Vietnam each year?
China share of total US container imports by year, weight-filtered, to show it never collapsed
Query
SELECT
toYear(actual_arrival_date) AS year,
uniqExactIf(bill_of_lading, (match(upperUTF8(country), 'CHINA|ZHONGHUA') OR match(upperUTF8(loading_port), 'SHANGHAI|NINGBO|YANTIAN|SHEKOU|NANSHA|QINGDAO|TIANJIN|DALIAN|GUANGZHOU|XIAMEN')) AND weight_in_kg > 1000) AS china_bols,
uniqExactIf(bill_of_lading, weight_in_kg > 1000) AS total_bols,
round(100.0 * uniqExactIf(bill_of_lading, (match(upperUTF8(country), 'CHINA|ZHONGHUA') OR match(upperUTF8(loading_port), 'SHANGHAI|NINGBO|YANTIAN|SHEKOU|NANSHA|QINGDAO|TIANJIN|DALIAN|GUANGZHOU|XIAMEN')) AND weight_in_kg > 1000)
/ uniqExactIf(bill_of_lading, weight_in_kg > 1000), 1) AS china_share_pct,
round(100.0 * uniqExactIf(bill_of_lading, (match(upperUTF8(country), 'VIET|VIETNAM') OR match(upperUTF8(loading_port), 'HO CHI MINH|HAI PHONG|HAIPHONG|DA NANG')) AND weight_in_kg > 1000)
/ uniqExactIf(bill_of_lading, weight_in_kg > 1000), 1) AS vietnam_share_pct,
round(100.0 * uniqExactIf(bill_of_lading, (match(upperUTF8(country), 'INDIA') OR match(upperUTF8(loading_port), 'NHAVA SHEVA|MUNDRA|CHENNAI|KOLKATA|PIPAVAV')) AND weight_in_kg > 1000)
/ uniqExactIf(bill_of_lading, weight_in_kg > 1000), 1) AS india_share_pct,
round(100.0 * uniqExactIf(bill_of_lading, (match(upperUTF8(country), 'MEXICO|MEXICANA') OR match(upperUTF8(loading_port), 'MANZANILLO|LAZARO|VERACRUZ|ALTAMIRA')) AND weight_in_kg > 1000)
/ uniqExactIf(bill_of_lading, weight_in_kg > 1000), 1) AS mexico_share_pct
FROM bols
WHERE actual_arrival_date >= toDate('2014-01-01')
AND actual_arrival_date <= toDate('2025-12-31')
GROUP BY year
ORDER BY year
Result
12 rows · US ocean AMS bills of lading (Kirchner bols), arrivals 2014–2025.
| Year | China unique bills | Total unique bills | China share % | Vietnam share % | India share % | Mexico share % |
|---|---|---|---|---|---|---|
| 2014 | 3,751,548 | 8,746,045 | 42.9 | 2.9 | 3.4 | 2.7 |
| 2015 | 3,806,651 | 8,874,640 | 42.9 | 3.1 | 3.6 | 2.6 |
| 2016 | 3,848,592 | 9,001,467 | 42.8 | 3.4 | 3.5 | 2.6 |
| 2017 | 4,091,670 | 9,487,112 | 43.1 | 3.6 | 3.6 | 2.4 |
| 2018 | 4,464,252 | 10,191,238 | 43.8 | 3.8 | 3.8 | 2.4 |
| 2019 | 4,107,043 | 10,065,712 | 40.8 | 4.8 | 4.2 | 2.7 |
| 2020 | 4,262,559 | 10,022,204 | 42.5 | 6.0 | 4.1 | 2.8 |
| 2021 | 4,948,008 | 11,395,365 | 43.4 | 6.0 | 4.7 | 2.8 |
| 2022 | 4,731,289 | 11,293,136 | 41.9 | 6.8 | 5.1 | 2.7 |
| 2023 | 4,570,252 | 10,745,882 | 42.5 | 6.5 | 5.1 | 2.4 |
| 2024 | 4,841,813 | 10,816,481 | 44.8 | 7.3 | 5.0 | 2.0 |
| 2025 | 5,493,004 | 12,202,999 | 45.0 | 8.7 | 4.9 | 2.2 |
Question
What share of US ocean imports come from China after the Trump tariffs?
Answer
On unique US ocean bills over 1,000 kg, China’s share was 42.9% in 2014, dipped to 40.8% in 2019, then was 44.8% in 2024 and 45.0% in 2025. Vietnam rose from 2.9% in 2014 to 4.8% in 2019, 7.3% in 2024, and 8.7% in 2025. China did not exit the US ocean file. Vietnam gained share alongside China, not instead of it.
Cite this page if you need the table. Related: China Plus One working paper · all tables