← All studies · askamerica.ai

Tarrant, San Bernardino, and Riverside counties pair the biggest veteran pools with above-average manufacturing/logistics job bases

ACS 2023 veteran population (county) cross-referenced with BLS QCEW 2024 manufacturing (NAICS 31-33) + transportation/warehousing (NAICS 48-49) employment share

Where recently separated veterans and manufacturing/logistics jobs overlap ACS 2023 total veteran population (county); BLS QCEW 2024 private employment, NAICS 31-33 + 48-49 National mfg+logistics share of private employment (2025) 14.4% Baseline for judging whether a county's job base is unusually manufacturing/logistics-heavy Veteran population, top metro counties 0 50,000 100,000 150,000 200,000 250,000 County Veterans Tarrant, TX San Bernardino, CA Riverside, CA Dallas, TX Duval, FL Wayne, MI Cook, IL Harris, TX Brevard, FL Los Angeles, CA ACS 2023, all service eras (county-level post-9/11 breakout is currently unavailable — see note) Manufacturing + logistics share of county employment 0 5 10 15 20 25 County % of private jobs Tarrant, TX San Bernardino, CA Riverside, CA Dallas, TX Duval, FL Wayne, MI Cook, IL Harris, TX Brevard, FL Los Angeles, CA NAICS 31-33 (manufacturing) + 48-49 (transportation/warehousing), county private employment (QCEW 2024); national baseline is from QCEW… Contrast: major separation-installation counties 0 10,000 20,000 30,000 40,000 50,000 County Veterans Bell, TX (Ft. Cavazos) Cumberland, NC (Ft. Liberty) Montgomery, TN (Ft. Campbell) Onslow, NC (Camp Lejeune) High separation volume, but local mfg+logistics share (11.2%, 12.9%, 13.1%, 4.7%) sits at or below the national baseline census.acs_veterans_by_period (the table that isolates Gulf War II/post-9/11 veterans at county grain) is currently broken -- S3 404 on every query, logged as a defect. Total veteran population is used as a scale proxy; alignment is measured by local NAICS 31-33 + 48-49 employment share. AskAmerica · askamerica.ai
SVG

Summary

The corpus's one table that isolates recently separated (Gulf War II / post-9/11) veterans at county grain — census.acs_veterans_by_period — is currently broken (every query returns an S3 404; confirmed on 3 separate calls and logged as a defect). Working around that gap with the best available proxy — total ACS veteran population by county, cross-referenced against BLS QCEW manufacturing + transportation/warehousing employment share — the counties that best combine a large veteran pool with a labor market genuinely built on manufacturing and logistics skills are Tarrant County, TX (Fort Worth), San Bernardino and Riverside Counties, CA (Inland Empire), Dallas County, TX, Duval County, FL (Jacksonville), and Wayne County, MI (Detroit) — all with 60,000+ veterans and a manufacturing+logistics employment share above the 14.4% national baseline (16.9%-24.1%). The counties with the single largest raw veteran totals (Los Angeles, Maricopa, San Diego) do not clear that bar — their job bases skew toward services, tourism, and defense/aerospace R&D rather than production and distribution work.

Two different things this question could mean, and why the answer differs

"Recently separated" and "total veteran population" are not the same population. A large share of the biggest total-veteran counties (Maricopa, Los Angeles, Clark, San Diego) are longstanding retirement destinations whose veteran counts skew toward Vietnam- and Gulf War I-era retirees, not people who left service in the last few years. Recently separated veterans concentrate much more heavily, in relative terms, near the installations that process the most separations every year — Fort Cavazos (Bell County, TX), Fort Liberty (Cumberland County, NC), Fort Campbell (Montgomery County, TN), and Camp Lejeune (Onslow County, NC) — where veterans are 18-22% of the adult population versus 3-10% in the big metro counties.

But those installation counties have thin manufacturing/logistics job bases of their own (11.2%, 12.9%, 13.1%, and 4.7% of private employment respectively — at or below the 14.4% national baseline). The manufacturing- and logistics-heavy labor markets that would actually employ those skills sit elsewhere: the Dallas-Fort Worth metroplex, the Inland Empire, metro Detroit, metro Houston, and Jacksonville. This is a well-documented dynamic — veterans separating near a base commonly relocate for work rather than staying in the installation county, and Dallas-Fort Worth in particular markets itself explicitly to transitioning service members for this reason.

The strongest overlap counties

San Bernardino, CA78,79624.1%Inland Empire warehouse/distribution corridor (I-10/I-15)
Wayne, MI68,65923.0%Detroit metro auto manufacturing
Tarrant, TX101,04820.0%Fort Worth aerospace manufacturing (Lockheed Martin) + DFW logistics
Brevard, FL67,80018.7%Space Coast aerospace/advanced manufacturing
Riverside, CA111,53616.9%Inland Empire, second-largest logistics employment base in the county set
Dallas, TX83,24314.6%DFW logistics + manufacturing
Duval, FL80,53514.6%Jacksonville port/logistics, NAS Jax and Mayport nearby
Cook, IL136,26414.2%Chicago metro manufacturing/distribution, largest pool above baseline
Harris, TX152,83014.2%Houston petrochemical manufacturing + port logistics
Brevard, FL67,80018.7%Space Coast aerospace/advanced manufacturing
Cook, IL136,26414.2%Chicago metro manufacturing/distribution, largest pool above baseline
Dallas, TX83,24314.6%DFW logistics + manufacturing
Duval, FL80,53514.6%Jacksonville port/logistics, NAS Jax and Mayport nearby
Harris, TX152,83014.2%Houston petrochemical manufacturing + port logistics
Riverside, CA111,53616.9%Inland Empire, second-largest logistics employment base in the county set
San Bernardino, CA78,79624.1%Inland Empire warehouse/distribution corridor (I-10/I-15)
Tarrant, TX101,04820.0%Fort Worth aerospace manufacturing (Lockheed Martin) + DFW logistics
Wayne, MI68,65923.0%Detroit metro auto manufacturing
Harris, TX152,83014.2%Houston petrochemical manufacturing + port logistics
Cook, IL136,26414.2%Chicago metro manufacturing/distribution, largest pool above baseline
Riverside, CA111,53616.9%Inland Empire, second-largest logistics employment base in the county set
Tarrant, TX101,04820.0%Fort Worth aerospace manufacturing (Lockheed Martin) + DFW logistics
Dallas, TX83,24314.6%DFW logistics + manufacturing
Duval, FL80,53514.6%Jacksonville port/logistics, NAS Jax and Mayport nearby
San Bernardino, CA78,79624.1%Inland Empire warehouse/distribution corridor (I-10/I-15)
Wayne, MI68,65923.0%Detroit metro auto manufacturing
Brevard, FL67,80018.7%Space Coast aerospace/advanced manufacturing
San Bernardino, CA78,79624.1%Inland Empire warehouse/distribution corridor (I-10/I-15)
Wayne, MI68,65923.0%Detroit metro auto manufacturing
Tarrant, TX101,04820.0%Fort Worth aerospace manufacturing (Lockheed Martin) + DFW logistics
Brevard, FL67,80018.7%Space Coast aerospace/advanced manufacturing
Riverside, CA111,53616.9%Inland Empire, second-largest logistics employment base in the county set
Dallas, TX83,24314.6%DFW logistics + manufacturing
Duval, FL80,53514.6%Jacksonville port/logistics, NAS Jax and Mayport nearby
Cook, IL136,26414.2%Chicago metro manufacturing/distribution, largest pool above baseline
Harris, TX152,83014.2%Houston petrochemical manufacturing + port logistics
Cook, IL136,26414.2%Chicago metro manufacturing/distribution, largest pool above baseline
Wayne, MI68,65923.0%Detroit metro auto manufacturing
Dallas, TX83,24314.6%DFW logistics + manufacturing
Tarrant, TX101,04820.0%Fort Worth aerospace manufacturing (Lockheed Martin) + DFW logistics
Harris, TX152,83014.2%Houston petrochemical manufacturing + port logistics
San Bernardino, CA78,79624.1%Inland Empire warehouse/distribution corridor (I-10/I-15)
Riverside, CA111,53616.9%Inland Empire, second-largest logistics employment base in the county set
Duval, FL80,53514.6%Jacksonville port/logistics, NAS Jax and Mayport nearby
Brevard, FL67,80018.7%Space Coast aerospace/advanced manufacturing

National baseline: manufacturing (NAICS 31-33) plus transportation/warehousing (NAICS 48-49) is 14.4% of private U.S. employment. That figure is drawn from econ.national_wages for year 2025 specifically — an initial query against that table for year 2024 returned zero rows with a high-severity low_coverage diagnostic, because econ.national_wages currently has only the 2025 vintage loaded despite its schema declaring 1989-2025 as its window. The 2025 figure (133.2M total private jobs; 12.58M manufacturing + 6.62M transportation/warehousing) is used as the baseline instead, and is one year newer than the county-level QCEW figures (2024) it is being compared against — a one-year vintage mismatch that is immaterial at this scale (national mfg+logistics share moves by tenths of a percentage point year over year) but is disclosed here rather than blended in silently.

Data limitation and what would close it

census.acs_veterans_by_period is the only table in this corpus carrying period-of-service detail (Gulf War II/post-9/11 vs. earlier eras) at county grain, from ACS table B21002. Every query against it — including a plain SELECT * LIMIT 1 and describe_table itself — returns The specified key does not exist (S3, 404), reproduced three times. This is a genuine defect (the table is declared and cataloged as loaded, 2009-2023, but its underlying data file is missing from the object store), logged to the defect queue in this session. Separately, the Census Bureau's own ACS API requires an API key for this variable set that this session does not have, and the VA's own "Post-9/11 Veterans by County" heat-map dataset (data.va.gov) is published only as an .xlsx binary this session's tools cannot parse. Once acs_veterans_by_period is restored, the analysis above should be rerun substituting actual post-9/11 veteran counts for the total-veteran proxy used here — the ranking would likely tighten toward the installation-adjacent counties for pool size, while the manufacturing/logistics-share comparison would be unaffected.

What This Report Does Not Answer

Every query behind this report

7 warehouse calls ran in this session, in order. Each is reproducible against the same snapshot.

query — 3 rows — 5354 ms
SELECT * FROM census.acs_veterans LIMIT 3
query — 25 rows — 1425 ms
SELECT geo_name, county_fips, veterans, civilian_population_18_plus,
  ROUND(100.0*veterans/NULLIF(civilian_population_18_plus,0),1) AS veteran_pct
FROM census.acs_veterans
WHERE "year"='2023' AND geography='county'
ORDER BY veterans DESC
FETCH FIRST 25 ROWS ONLY
query — 8 rows — 1135 ms
SELECT geo_name, county_fips, veterans, civilian_population_18_plus,
  ROUND(100.0*veterans/NULLIF(civilian_population_18_plus,0),1) AS veteran_pct
FROM census.acs_veterans
WHERE "year"='2023' AND geography='county'
  AND county_fips IN ('37051','48027','48099','21015','47125','37133','37141','40109')
ORDER BY veterans DESC
query — 343 rows — 1666 ms
SELECT DISTINCT industry_code, agglvl_code FROM econ.county_qcew WHERE "year"='2024' AND area_fips='48027' AND own_code='5' AND (industry_code LIKE '31%' OR industry_code LIKE '32%' OR industry_code LIKE '33%' OR industry_code LIKE '48%' OR industry_code LIKE '49%' OR industry_code='10') ORDER BY industry_code
query — 33 rows — 3522 ms
WITH vet AS (
  SELECT geo_name, county_fips, veterans
  FROM census.acs_veterans
  WHERE "year"='2023' AND geography='county'
    AND county_fips IN ('04013','06037','06073','48201','48029','32003','17031','06065','48439',
      '06059','12057','53033','08041','48113','12031','04019','53053','06071','12103','06067',
      '26163','12009','51059','12099','15003','48027','40109','37051','47125','37133','48099',
      '21015','37141')
),
qcew AS (
  SELECT area_fips,
    SUM(CASE WHEN industry_code='10' THEN annual_avg_emplvl END) AS total_emp,
    SUM(CASE WHEN industry_code='31-33' THEN annual_avg_emplvl END) AS mfg_emp,
    SUM(CASE WHEN industry_code='48-49' THEN annual_avg_emplvl END) AS logistics_emp
  FROM econ.county_qcew
  WHERE "year"='2024' AND own_code='5'
  GROUP BY area_fips
)
SELECT v.geo_name, v.veterans, q.total_emp, q.mfg_emp, q.logistics_emp,
  ROUND(100.0*(COALESCE(q.mfg_emp,0)+COALESCE(q.logistics_emp,0))/NULLIF(q.total_emp,0),1) AS mfg_logistics_pct
FROM vet v LEFT JOIN qcew q ON v.county_fips = q.area_fips
ORDER BY v.veterans DESC
query — 1953 ms
SELECT own_code, industry_code, annual_avg_emplvl
FROM econ.national_wages
WHERE "year"='2024' AND own_code='5' AND industry_code IN ('10','31-33','48-49')
query — 3 rows — 917 ms
SELECT own_code, industry_code, annual_avg_emplvl
FROM econ.national_wages
WHERE "year"='2025' AND own_code='5' AND industry_code IN ('10','31-33','48-49')

Sources

  1. census.acs_veterans (ACS 5-Year, county grain, 2023)
    Show SQL
    SELECT geo_name, county_fips, veterans, civilian_population_18_plus FROM census.acs_veterans WHERE "year"='2023' AND geography='county' ORDER BY veterans DESC
  2. econ.county_qcew (BLS QCEW private employment, NAICS 31-33 + 48-49, 2024)
    Show SQL
    SELECT area_fips, SUM(CASE WHEN industry_code='10' THEN annual_avg_emplvl END) AS total_emp, SUM(CASE WHEN industry_code='31-33' THEN annual_avg_emplvl END) AS mfg_emp, SUM(CASE WHEN industry_code='48-49' THEN annual_avg_emplvl END) AS logistics_emp FROM econ.county_qcew WHERE "year"='2024' AND own_code='5' GROUP BY area_fips
  3. econ.national_wages (national private mfg+logistics baseline; only 2025 is loaded, a 2024 query returned zero rows)
    Show SQL
    SELECT industry_code, annual_avg_emplvl FROM econ.national_wages WHERE "year"='2025' AND own_code='5' AND industry_code IN ('10','31-33','48-49')
  4. VA: Post 9/11 Veterans (Living only) by County dataset — consulted, not parseable in this session (xlsx)
  5. Why Dallas/Fort Worth markets itself to transitioning service members