Academic tool
US Place Atlas
Trace US ocean imports by port of entry, by consignee city and state (the importer address on the bill), or by shipper city (the foreign factory address). Cluster maps sit on every slice. Click a row to go one step deeper. The URL is the citation.
All research tools
· Research Desk
· Universe: kirchner.bols
Methods (read before you cite)
- US Customs ocean Bills of Lading only. Air, truck, rail, and informal entries are out of sample.
- Port of entry is
unloading_port(code, city, ST). That is where the vessel cleared, not the consignee headquarters. - Consignee and shipper city/state/zip/country are parsed from
consignee_addressandshipper_addressand stored onkirchner.bols. Bills without a parseable US state+ZIP drop out of consignee-place slices. Shipper country falls back to the filed origincountrywhen the address has no country token. - Coordinates prefer a Census street geocode of the full address when it exists; otherwise a US ZIP centroid or a GeoNames city centroid.
consignee_geo_precision/shipper_geo_precisionisstreet,zip, orcity. Maps cluster those points. - Production partners are distinct
shipper_namestrings. Parties are filing names, not resolved legal entities. - Every number below is from the SQL printed under it. Nothing is imputed.
Start from a worked example
Consignee
California importers
Drill by the address on the bill — LA, City of Industry, Ontario — not the port the box cleared.
Shipper
Vietnam factories
Production cities parsed from shipper_address, then the US importers they ship to.
Port of entry
Savannah, Georgia
The gateway itself: who receives through it, and where those consignees actually sit.
South
Retrieved 2026-08-23 UTC from kirchner.bols.
Unique BOLs
2,692,531
US importers
167,131
Production partners
216,228
Origin countries
217
US consignees
Clustered by parsed consignee city / ZIP. Circle size is unique bills.
Foreign production
Clustered by parsed shipper city. Circle size is unique bills.
States in this region
Click a row to drill down. Bars are unique bills in this slice.
| Place | BOLs | Share |
|---|---|---|
| Georgia (GA) | 699,470 |
|
| Texas (TX) | 591,559 |
|
| Florida (FL) | 424,278 |
|
| Virginia (VA) | 411,318 |
|
| South Carolina (SC) | 297,039 |
|
| Maryland (MD) | 131,561 |
|
| Alabama (AL) | 61,503 |
|
| Louisiana (LA) | 30,333 |
|
| North Carolina (NC) | 20,445 |
|
| Delaware (DE) | 14,670 |
|
| Mississippi (MS) | 13,581 |
|
| Tennessee (TN) | 125 |
|
| West Virginia (WV) | 48 |
|
| Kentucky (KY) | 8 |
|
| Arkansas (AR) | 1 |
|
Products in this place
HS-4 as filed. Click to keep this geography and filter the product.
- 1. 9403 WOODEN FURNITURE 66,391
- 2. 9401 MULTI-PERSON SOFA 57,002
- 3. 8474 PHOSPHORIC ACID WITH , KGS OF PHOSPHORIC A 38,793
- 4. 5513 SYNTHETIC STAPLE FIBERS, N.O.S., NOT CARDE 36,857
- 5. 2620 FREIGHT COLLECT CARGO IS STOWED IN A REFRI 34,600
- 6. 8708 PARTS FOR AUTOCAR BODIES 33,271
- 7. 7410 COILS CH CUCR , , COILS CUTE . SN . (COPPE 31,588
- 8. 8415 AUTOMOTIVE PARTS 29,628
- 9. 9022 IVORY PAPER BOX, -PLY, I , SIZE X X MM, OF 25,822
- 10. 8428 OFFICE CHAIR PO NO:PO- HTS CODE: 23,710
- 11. 4011 OKUMA NEW CNC LATHE 21,814
- 12. 3506 ADHESIVES, RUBBER OR PLASTIC AND ADHESIVES 19,058
Origin countries
Where the cargo is filed as coming from. Click to keep this geography and filter origin.
- 1. CN, CHINA 836,535
- 2. VN, VIET NAM 223,886
- 3. IN, INDIA 186,868
- 4. DE, GERMANY 156,071
- 5. IT, ITALY 90,435
- 6. KR, REPUBLIC OF KOREA 89,378
- 7. TH, THAILAND 85,910
- 8. MX, MEXICO 57,832
- 9. BE, BELGIUM 56,683
- 10. ES, SPAIN 45,501
- 11. BR, BRAZIL 44,944
- 12. ID, INDONESIA 43,492
Cite this query
Kirchner Data. Place Atlas: South, 2026–2026. Retrieved 2026-08-23 from https://kirchnerdata.com/research-atlas?from=2026®ion=south&to=2026. Universe: US ocean Bills of Lading (CBP), table kirchner.bols. Place mode: port. Consignee/shipper city, state, zip, country, and coordinates are stored columns parsed from the filing address.
SQL that produced these numbers
totals · 1 row
SELECT uniqExact(bill_of_lading) AS bols, uniqExact(consignee_name) AS firms, uniqExact(shipper_name) AS partners, uniqExact(country) AS origins, uniqExact(unloading_port) AS ports, round(sum(weight_in_kg)) AS kg FROM bols WHERE (actual_arrival_date >= toDate('2026-01-01') AND actual_arrival_date <= toDate('2026-12-31')) AND trimBoth(unloading_port) != '' AND upperUTF8(trim(extract(trimBoth(unloading_port), ',\\s*([A-Z]{2})\\s*$'))) IN ('DE','FL','GA','MD','NC','SC','VA','DC','WV','AL','KY','MS','TN','AR','LA','OK','TX')
products · 12 rows
SELECT substring(replaceAll(hs_code, '.', ''), 1, 4) AS hs4, anyHeavy(product_desc) AS sample, uniqExact(bill_of_lading) AS bols FROM bols WHERE (actual_arrival_date >= toDate('2026-01-01') AND actual_arrival_date <= toDate('2026-12-31')) AND trimBoth(unloading_port) != '' AND upperUTF8(trim(extract(trimBoth(unloading_port), ',\\s*([A-Z]{2})\\s*$'))) IN ('DE','FL','GA','MD','NC','SC','VA','DC','WV','AL','KY','MS','TN','AR','LA','OK','TX') AND length(replaceAll(hs_code, '.', '')) >= 4 GROUP BY hs4 ORDER BY bols DESC LIMIT 12
origins · 12 rows
SELECT country AS name, uniqExact(bill_of_lading) AS bols, uniqExact(shipper_name) AS partners FROM bols WHERE (actual_arrival_date >= toDate('2026-01-01') AND actual_arrival_date <= toDate('2026-12-31')) AND trimBoth(unloading_port) != '' AND upperUTF8(trim(extract(trimBoth(unloading_port), ',\\s*([A-Z]{2})\\s*$'))) IN ('DE','FL','GA','MD','NC','SC','VA','DC','WV','AL','KY','MS','TN','AR','LA','OK','TX') AND trimBoth(country) != '' AND lengthUTF8(trimBoth(country)) >= 3 AND upperUTF8(trimBoth(country)) NOT IN ('N/A','NA','NONE','NULL','UNKNOWN','-','--','N.A.') GROUP BY name ORDER BY bols DESC LIMIT 12
map_consignees · 400 rows
SELECT consignee_city AS city, consignee_state AS state, consignee_zip AS zip, any(consignee_lat) AS lat, any(consignee_lon) AS lon, any(consignee_geo_precision) AS precision, uniqExact(bill_of_lading) AS bols FROM bols WHERE (actual_arrival_date >= toDate('2026-01-01') AND actual_arrival_date <= toDate('2026-12-31')) AND trimBoth(unloading_port) != '' AND upperUTF8(trim(extract(trimBoth(unloading_port), ',\\s*([A-Z]{2})\\s*$'))) IN ('DE','FL','GA','MD','NC','SC','VA','DC','WV','AL','KY','MS','TN','AR','LA','OK','TX') AND consignee_lat != 0 AND consignee_lon != 0 GROUP BY city, state, zip ORDER BY bols DESC LIMIT 400
map_shippers · 400 rows
SELECT shipper_city AS city, shipper_country AS country, any(shipper_lat) AS lat, any(shipper_lon) AS lon, any(shipper_geo_precision) AS precision, uniqExact(bill_of_lading) AS bols FROM bols WHERE (actual_arrival_date >= toDate('2026-01-01') AND actual_arrival_date <= toDate('2026-12-31')) AND trimBoth(unloading_port) != '' AND upperUTF8(trim(extract(trimBoth(unloading_port), ',\\s*([A-Z]{2})\\s*$'))) IN ('DE','FL','GA','MD','NC','SC','VA','DC','WV','AL','KY','MS','TN','AR','LA','OK','TX') AND shipper_lat != 0 AND shipper_lon != 0 AND shipper_city != '' GROUP BY city, country ORDER BY bols DESC LIMIT 400
places · 15 rows
SELECT upperUTF8(trim(extract(trimBoth(unloading_port), ',\\s*([A-Z]{2})\\s*$'))) AS name, uniqExact(bill_of_lading) AS bols, uniqExact(unloading_port) AS ports, uniqExact(consignee_name) AS firms, uniqExact(shipper_name) AS partners FROM bols WHERE (actual_arrival_date >= toDate('2026-01-01') AND actual_arrival_date <= toDate('2026-12-31')) AND trimBoth(unloading_port) != '' AND upperUTF8(trim(extract(trimBoth(unloading_port), ',\\s*([A-Z]{2})\\s*$'))) IN ('DE','FL','GA','MD','NC','SC','VA','DC','WV','AL','KY','MS','TN','AR','LA','OK','TX') GROUP BY name ORDER BY bols DESC LIMIT 30