← All studies · askamerica.ai

Steel and aluminum employment rose modestly after 2018 tariffs (~4% and ~1%); appliance/washer employment is too small a slice of NAICS to see clearly, and 2025's tariffs are too recent to score

BLS QCEW/CES, NAICS 3311+3312 (steel), 3313 (aluminum), 335220 (major appliances); 2015-2025

Manufacturing employment in tariff-protected industries, 2015-2025 BLS QCEW private-sector employment (state sums), NAICS 3311+3312 (steel) and 3313 (aluminum); BLS CES supersector total (state_industry), M13 annual average Steel and aluminum mill employment 0 20,000 40,000 60,000 80,000 100,000 120,000 140,000 160,000 Year Employees 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 Steel (NAICS 3311+3312) Aluminum (NAICS 3313) Section 232 tariffs took effect March/June 2018. Employment rose through 2019, dipped in the pandemic, and by 2025 sits only modestly… Steel mills employment, 2017 to 2025 +5,661 jobs +4.3% NAICS 3311+3312, state-QCEW sum Aluminum employment, 2017 to 2025 +597 jobs +1.1% NAICS 3313, state-QCEW sum All U.S. manufacturing, 2017 to 2025 +170,600 jobs +1.4% All NAICS 31-33, BLS CES, same window AskAmerica · askamerica.ai
SVG

Summary

Manufacturing employment in the two industries that got the clearest, longest-running tariff protection — steel (NAICS 3311+3312) and aluminum (NAICS 3313), protected by Section 232 tariffs since March/June 2018 — rose only modestly: steel employment is up roughly 4.3% (~5,700 jobs) and aluminum roughly 1.1% (~600 jobs) from 2017 (the last full pre-tariff year) to 2025. Most of the steel gain happened by 2019 and was partly given back in the pandemic; it has not grown much further since. Washing-machine assembly (protected by a separate, 2018 Section 201 safeguard tariff) is not separately trackable in this government data — NAICS lumps washers into a much broader "major household appliance" code — but the peer-reviewed academic study of that specific tariff (Flaaen, Hortaçsu & Tintelnot, American Economic Review) found it created about 1,800 U.S. jobs at Whirlpool (Ohio), Samsung (South Carolina) and LG (Tennessee) plants, at a cost to consumers of roughly $817,000 per job. Total U.S. manufacturing employment, meanwhile, grew about the same modest 1.4% over the same 2017-2025 window, so the protected industries did not meaningfully outperform manufacturing as a whole — and multiple independent studies (Federal Reserve Board; Cox & Russ) find the steel/aluminum tariffs' input-cost increases cost roughly 75,000 jobs in downstream, steel/aluminum-using manufacturing, versus perhaps 1,000-20,000 jobs gained directly in steel production, because steel-consuming industries employ far more workers than steel-producing ones.

Which industries actually got tariff protection

Tariff protection for manufacturing came in two separate waves:

This report focuses employment measurement on steel and aluminum, the two industries with a clean NAICS code, a full pre/post period in BLS data, and no confounding broader category. Washing machines and solar cells do not have their own NAICS codes (they sit inside 335220 and 334413/334419, both far broader categories with heavy state-level data suppression), so government employment data cannot isolate them — the academic literature that used firm-level and trade data is the better source there and is cited above.

Steel and aluminum: the data

Source: BLS Quarterly Census of Employment and Wages (QCEW), private-sector employment (own_code=5), summed across all reporting states (econ.state_wages), industry codes 3311+3312 (iron/steel mills and steel pipe/tube) and 3313 (aluminum production/processing). QCEW suppresses cells for small-employer disclosure risk; roughly 20-25% of state cells for these industries are suppressed, so this sum understates BLS's own published national total by about 3-5% (confirmed by comparing against econ.national_wages, which carries BLS's true national figure, for the years that table has loaded: 2015-2016 and 2023-2025). The trend and direction of the state-sum series track the true national series closely in those overlap years, so the year-over-year change is reliable even though the absolute level is a lower bound.

Industry2017 (pre-tariff)2019 (post-tariff)2025 (latest)Change 2017-2025
Steel (NAICS 3311+3312)131,928139,442137,589+5,661 (+4.3%)
Aluminum (NAICS 3313)55,34258,20255,939+597 (+1.1%)
All U.S. manufacturing (context)12,499,60012,849,80012,670,200+170,600 (+1.4%)

Both industries gained the most in the first two years after the tariff (2017-2019: steel +5.7%, aluminum +5.2%), consistent with the tariffs' immediate protective effect, then gave back some of that gain in the 2020 pandemic downturn and have grown only slowly since — 2025 employment in both industries sits close to, but not dramatically above, where it was in 2019.

Why the net effect on manufacturing looks smaller than the headline steel/aluminum numbers

Steel and aluminum together employ roughly 190,000-200,000 people; industries that use steel and aluminum as an input (autos, machinery, appliances, construction products) employ well over 12 million. A Federal Reserve Board study, cited by economists Lydia Cox and Kadee Russ, estimated the 2018 Section 232 tariffs' higher input costs reduced employment in steel/aluminum-consuming manufacturing by about 0.6%, or roughly 75,000 jobs — against maybe 1,000 to 20,000 jobs gained directly in steel and aluminum production (estimates vary by source; the USITC's 2023 study, using investment announcements, put steel investment-linked job creation as high as ~20,000). That asymmetry — a large downstream industry absorbing a small cost increase versus a small upstream industry capturing a large price increase — is the standard finding across this literature and is consistent with total manufacturing employment (+1.4%) growing no faster than the protected industries themselves over the same window.

2025 tariffs: too recent to measure

The June 2025 doubling of steel/aluminum tariffs to 50%, and new Section 232 actions on autos, copper, lumber, semiconductors and pharmaceuticals, are within this year's data but BLS QCEW (the industry-detail employment source used above) publishes with roughly a one-year lag, so full-year 2025 effects are not yet measurable at NAICS-industry grain. Early commentary (Cato Institute, PIIE) describes the benefits as concentrated in a small number of metals-producing regions and the costs as diffuse across steel/aluminum-consuming manufacturers and households — the same pattern seen in 2018 — but this is not yet a completed-year finding.

What This Report Does Not Answer

Every query behind this report

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

query — 34 rows — 2112 ms
SELECT naics_code, naics_title, level FROM ref.naics WHERE naics_title ILIKE '%steel%' OR naics_title ILIKE '%aluminum%' OR naics_title ILIKE '%laundry equipment%' OR naics_title ILIKE '%solar%' OR naics_title ILIKE '%photovoltaic%' OR naics_title ILIKE '%household appliance%' ORDER BY naics_code
query — 12 rows — 925 ms
SELECT industry_code, count(*) FROM econ.state_wages WHERE industry_code IN ('331','3311','331110','3312','3313','335','3352','335220','3344','334413','2211','221114') AND "year"='2018' GROUP BY industry_code
query — 3 rows — 910 ms
SELECT industry_code, own_code, agglvl_code, count(*) FROM econ.state_wages WHERE industry_code IN ('331110','3313','335220') AND "year"='2018' GROUP BY industry_code, own_code, agglvl_code ORDER BY industry_code
query — 64 rows — 1027 ms
SELECT industry_code, "year", SUM(annual_avg_emplvl) AS emp, COUNT(*) AS n_states_reported, SUM(CASE WHEN annual_avg_emplvl IS NULL THEN 1 ELSE 0 END) AS n_suppressed
FROM econ.state_wages
WHERE industry_code IN ('331110','3311','3312','3313','335220','334413')
  AND own_code='5'
  AND "year" IN ('2015','2016','2017','2018','2019','2020','2021','2022','2023','2024','2025')
GROUP BY industry_code, "year"
ORDER BY industry_code, "year"
query — 28 rows — 939 ms
SELECT industry_code, "year", annual_avg_emplvl, agglvl_code FROM econ.national_wages WHERE industry_code IN ('331110','3311','3312','3313','335220','334413') AND own_code='5' AND "year" IN ('2015','2016','2023','2024','2025') ORDER BY industry_code, "year"
query — 1 rows — 2865 ms
SELECT * FROM econ_reference.naics_sectors WHERE supersector_name ILIKE '%manufactur%'
query — 1004 ms
SELECT "year", SUM(value) AS total_emp_thousands
FROM econ.state_industry
WHERE substring(series,1,3)='SMU'
  AND substring(series,6,5)='00000'
  AND substring(series,11,2)='30'
  AND substring(series,13,6)='000000'
  AND substring(series,19,2)='01'
  AND period='M13'
  AND "year" IN (2017,2018,2019,2020,2021,2022,2023,2024)
GROUP BY "year" ORDER BY "year"
query — 5 rows — 1298 ms
SELECT series, "year", period, value FROM econ.state_industry WHERE series ILIKE 'SMU01%30000000%' AND "year"=2020 LIMIT 5
query — 13 rows — 877 ms
SELECT DISTINCT period FROM econ.state_industry WHERE series='SMU01000003000000001' AND "year"=2020
query — 1 rows — 26 ms
SELECT substring('SMU01000003000000001',1,3) a, substring('SMU01000003000000001',6,5) b, substring('SMU01000003000000001',11,2) c, substring('SMU01000003000000001',13,6) d, substring('SMU01000003000000001',19,2) e
query — 879 ms
SELECT "year", SUM(value) AS total_emp_thousands
FROM econ.state_industry
WHERE substring(series,1,3)='SMU'
  AND substring(series,6,5)='00000'
  AND substring(series,11,2)='30'
  AND substring(series,13,6)='000000'
  AND substring(series,19,2)='01'
  AND period='M13'
  AND "year" = 2020
GROUP BY "year"
query — 1 rows — 845 ms
SELECT * FROM econ.state_industry WHERE series='SMU01000003000000001' AND "year"=2020 AND period='M13'
query — 825 ms
SELECT series, "year", period, value FROM econ.state_industry
WHERE substring(series,1,3)='SMU'
  AND substring(series,6,5)='00000'
  AND substring(series,11,2)='30'
  AND substring(series,13,6)='000000'
  AND substring(series,19,2)='01'
  AND "year" = 2020 AND period='M13'
query — 1 rows — 904 ms
SELECT series, substring(series,1,3), substring(series,6,5), substring(series,11,2), substring(series,13,6), substring(series,19,2), length(series)
FROM econ.state_industry WHERE series='SMU01000003000000001' AND "year"=2020 AND period='M13'
query — 1 rows — 998 ms
SELECT count(*) FROM econ.state_industry WHERE series='SMU01000003000000001' AND "year"=2020 AND period='M13' AND substring(series,1,3)='SMU'
query — 1 rows — 871 ms
SELECT count(*) FROM econ.state_industry WHERE series='SMU01000003000000001' AND "year"=2020 AND period='M13' AND substring(series,19,2)='01'
query — 1 rows — 874 ms
SELECT count(*) FROM econ.state_industry WHERE series='SMU01000003000000001' AND "year"=2020 AND period='M13' AND series LIKE '%01'
query — 10 rows — 1864 ms
SELECT "year", SUM(value) AS total_emp_thousands, count(*) n
FROM econ.state_industry
WHERE series LIKE 'SMU__00000' || '30' || '000000' || '01'
  AND period='M13'
  AND "year" BETWEEN 2016 AND 2025
GROUP BY "year" ORDER BY "year"
query — 10 rows — 930 ms
SELECT series, count(*) c FROM econ.state_industry
WHERE series LIKE 'SMU__00000' || '30' || '000000' || '01'
  AND period='M13' AND "year"=2020
GROUP BY series ORDER BY c DESC FETCH FIRST 10 ROWS ONLY
query — 1 rows — 873 ms
SELECT count(distinct series) FROM econ.state_industry
WHERE series LIKE 'SMU__00000' || '30' || '000000' || '01'
  AND period='M13' AND "year"=2020
query — 1 rows — 956 ms
SELECT * FROM econ.state_industry WHERE series='SMU21000003000000001' AND "year"=2020 AND period='M13'
query — 1 rows — 1014 ms
SELECT "year", SUM(value) AS total_emp_thousands, count(*) n, count(distinct series) nd
FROM econ.state_industry
WHERE series LIKE 'SMU__0000030000000' || '01'
  AND period='M13'
  AND "year" = 2020
GROUP BY "year"
query — 11 rows — 1476 ms
SELECT "year", SUM(value) AS total_emp_thousands
FROM econ.state_industry
WHERE series LIKE 'SMU__0000030000000' || '01'
  AND period='M13'
  AND "year" BETWEEN 2015 AND 2025
GROUP BY "year" ORDER BY "year"
query — 11 rows — 1117 ms
SELECT "year", SUM(value) AS total_emp_thousands, count(*) n
FROM econ.state_industry
WHERE series LIKE 'SMU__000003000000001'
  AND period='M13'
  AND "year" BETWEEN 2015 AND 2025
GROUP BY "year" ORDER BY "year"
query — 1 rows — 923 ms
SELECT "year", SUM(value) AS total_emp_thousands, count(distinct series) nd
FROM econ.state_industry
WHERE series LIKE 'SMU__000003000000001'
  AND period='M13' AND "year"=2017
GROUP BY "year"
query — 1 rows — 837 ms
SELECT "year", SUM(value) AS total_emp_thousands, count(distinct series) nd
FROM econ.state_industry
WHERE series LIKE 'SMU__000003000000001'
  AND period='M13' AND "year"=2018
GROUP BY "year"
query — 1 rows — 830 ms
SELECT "year", SUM(value) AS total_emp_thousands, count(distinct series) nd
FROM econ.state_industry
WHERE series LIKE 'SMU__000003000000001'
  AND period='M13' AND "year"=2019
GROUP BY "year"
query — 1 rows — 919 ms
SELECT "year", SUM(value) AS total_emp_thousands, count(distinct series) nd
FROM econ.state_industry
WHERE series LIKE 'SMU__000003000000001'
  AND period='M13' AND "year"=2024
GROUP BY "year"
query — 1 rows — 1156 ms
SELECT "year", SUM(value) AS total_emp_thousands, count(distinct series) nd
FROM econ.state_industry
WHERE series LIKE 'SMU__000003000000001'
  AND period='M13' AND "year"=2025
GROUP BY "year"

Sources

  1. BLS QCEW state employment by industry (econ.state_wages)
    Show SQL
    SELECT industry_code, "year", SUM(annual_avg_emplvl) AS emp FROM econ.state_wages WHERE industry_code IN ('3311','3312','3313') AND own_code='5' AND "year" IN ('2015','2016','2017','2018','2019','2020','2021','2022','2023','2024','2025') GROUP BY industry_code, "year" ORDER BY industry_code, "year"
  2. BLS QCEW true national totals, used to check state-sum understatement (econ.national_wages)
    Show SQL
    SELECT industry_code, "year", annual_avg_emplvl FROM econ.national_wages WHERE industry_code IN ('3311','3312','3313') AND own_code='5' AND "year" IN ('2015','2016','2023','2024','2025') ORDER BY industry_code, "year"
  3. BLS CES total manufacturing employment, all states summed (econ.state_industry)
    Show SQL
    SELECT "year", SUM(value) AS total_emp_thousands FROM econ.state_industry WHERE series LIKE 'SMU__000003000000001' AND period='M13' AND "year" IN (2017,2018,2019,2024,2025) GROUP BY "year"
  4. Flaaen, Hortaçsu & Tintelnot, "The Production Relocation and Price Effects of US Trade Policy: The Case of Washing Machines", American Economic Review — AEI summary of the AER paper's 1,800-jobs / $817,000-per-job findings
  5. Econofact: Steel Tariffs and U.S. Jobs Revisited (Cox & Russ / Fed Board estimate of ~75,000 downstream manufacturing jobs lost)
  6. USITC, Economic Impact of Section 232 and 301 Tariffs on U.S. Industries (March 2023)
  7. Tax Foundation, How the Section 232 Tariffs on Steel and Aluminum Harmed the Economy
  8. Cato Institute, Manufacturing Employment Data Confirm the Concentrated Benefits and Dispersed Costs of Trump's Tariffs
  9. CFR, A Guide to Trump's Section 232 Tariffs, in Maps