How did China and Vietnam unique bills and cargo weight on US ocean imports change from 2014 to 2025?
Top commodity categories shifting from China to Vietnam - compare shipper overlap rate across top 50 Vietnam shippers
Query
SELECT
toYear(actual_arrival_date) AS year,
uniqExactIf(bill_of_lading, match(upperUTF8(country), 'VIET|VIETNAM') OR match(upperUTF8(loading_port), 'HO CHI MINH|HAI PHONG|HAIPHONG|DA NANG')) AS vietnam_bols,
sumIf(weight_in_kg, match(upperUTF8(country), 'VIET|VIETNAM') OR match(upperUTF8(loading_port), 'HO CHI MINH|HAI PHONG|HAIPHONG|DA NANG')) / 1e6 AS vietnam_weight_kt,
uniqExactIf(bill_of_lading, match(upperUTF8(country), 'CHINA|ZHONGHUA') OR match(upperUTF8(loading_port), 'SHANGHAI|NINGBO|YANTIAN|SHEKOU|NANSHA|QINGDAO|TIANJIN|DALIAN|GUANGZHOU|XIAMEN')) AS china_bols,
sumIf(weight_in_kg, match(upperUTF8(country), 'CHINA|ZHONGHUA') OR match(upperUTF8(loading_port), 'SHANGHAI|NINGBO|YANTIAN|SHEKOU|NANSHA|QINGDAO|TIANJIN|DALIAN|GUANGZHOU|XIAMEN')) / 1e6 AS china_weight_kt,
uniqExact(bill_of_lading) AS total_bols,
sum(weight_in_kg) / 1e6 AS total_weight_kt
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 | Vietnam unique bills | Vietnam weight (kt) | China unique bills | China weight (kt) | Total unique bills | Total weight (kt) |
|---|---|---|---|---|---|---|
| 2014 | 327,218 | 83,485.0 | 4,443,309 | 945,440.5 | 10,685,269 | 61,695,785.2 |
| 2015 | 363,125 | 95,715.0 | 4,454,164 | 874,188.6 | 10,763,968 | 52,424,441.9 |
| 2016 | 382,584 | 9,572.6 | 4,513,522 | 516,851.8 | 10,902,902 | 49,659,558.7 |
| 2017 | 434,192 | 11,592.0 | 4,741,309 | 401,009.6 | 11,342,408 | 42,800,212.1 |
| 2018 | 489,993 | 11,416.6 | 5,179,615 | 153,794.3 | 12,130,298 | 33,529,146.5 |
| 2019 | 610,998 | 20,415.3 | 4,814,890 | 147,041.6 | 11,991,418 | 21,318,384.4 |
| 2020 | 718,071 | 260,768.1 | 5,759,097 | 82,599.1 | 12,620,768 | 19,082,228.1 |
| 2021 | 794,838 | 182,252.6 | 6,206,790 | 134,713.5 | 13,798,798 | 23,251,294.6 |
| 2022 | 882,621 | 47,044.4 | 6,182,641 | 437,868.6 | 13,933,642 | 32,723,701.5 |
| 2023 | 795,473 | 94,419.9 | 5,883,780 | 100,502.8 | 13,230,371 | 23,416,651.9 |
| 2024 | 877,442 | 38,330.8 | 10,323,796 | 100,196.9 | 17,330,181 | 29,155,083.4 |
| 2025 | 1,191,798 | 236,057.5 | 12,164,157 | 804,352.1 | 20,017,162 | 8,807,622.4 |
Question
Did Vietnam cargo weight replace China after US tariffs?
Answer
Unique Vietnam bills rose from 327,218 in 2014 to 1.19 million in 2025; unique China bills rose from 4.44 million to 12.16 million. Cargo-weight totals in this extract swing by orders of magnitude (for example Vietnam weight in 2016 versus 2020), which is a filing and unit problem, not a clean substitution series. Do not use this weight column as evidence that Vietnam replaced China. Use unique bills with a 1,000 kg floor and origin shares instead.
Cite this page if you need the table. Related: China Plus One working paper · all tables