← All studies · askamerica.ai

The US research workforce is highly concentrated geographically — a handful of states dominate, and patent-output concentration rose from 2010 to 2024

BLS OEWS S&E occupations (2025), NSF HERD university R&D (2024), USPTO patent grants by state (2010-2024)

The US Research Workforce Is Highly Concentrated Geographically — and Slightly More So Than in 20… BLS OEWS S&E occupations (2025), NSF HERD university R&D (2024), USPTO patent grants by primary-assignee state (2010-2024) S&E employment Gini (2025) 0.556 51 states+DC; 'high' band Patent-output Gini, 2010 to 2024 0.696 to 0.712 +0.016 Peaked at 0.721 in 2020; 'high' to 'extreme' band throughout Geographic concentration of US patent output, 2010-2024 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 Year Gini coefficient 2010 2015 2020 2024 Measured directly for each labeled year (not interpolated). Gini on primary-assignee state of USPTO utility patent grants, 51… Top 10 states by S&E occupational employment, 2025 0 200,000 400,000 600,000 800,000 1M State (rank) S&E employment CA TX NY FL WA VA MI PA MA NC BLS OEWS 2025: architecture/engineering, life/physical/social science, and software-developer occupations only AskAmerica · askamerica.ai
SVG

Summary

The US research workforce is highly concentrated geographically, and by the most granular, longest-running measure available (patent output by inventor/assignee state), that concentration increased somewhat from 2010 to 2024 before pulling back slightly from a 2020 peak. On current-year headcount, California alone holds 14% of the nation's science/engineering (S&E) occupational employment and the top 5 states hold 37%; the Gini coefficient of S&E employment across states is 0.56 (BLS OEWS, 2025) and of university R&D spending is 0.58 (NSF HERD, 2024) — both in the 'high concentration' range. The clean multi-year trend line for the workforce itself does not exist in this warehouse (OEWS and HERD are single-year snapshots here), so trend is measured instead through USPTO patent grants by state, which is available every year 2010-2025: the state-level Gini coefficient of patent output rose from 0.696 in 2010 to a peak of 0.721 in 2020, settling at 0.712 in 2024 — a real but modest rise in concentration, not a large one. California's own share of US patent output rose more sharply, from about 25% (2010) to roughly 32% (2024), even though the combined top-5-state share barely moved (53% to 55%). This means the increase in concentration is being driven by California pulling further ahead of the pack, not by the top tier as a whole gaining ground.

How concentrated is it today

Two independent current-year measures of the research workforce and its inputs both land in the same range:

Both land in the 'high concentration' band on a 0-1 Gini scale where 0 is perfectly even across all 51 units and 1 is one state holding everything. For comparison, a Gini around 0.4-0.45 is roughly where total US personal income sits across states (population-driven, not concentrated); 0.55-0.58 for a headcount/spending measure indicates real agglomeration, consistent with the published NSF finding that California, Texas, and New York together account for more than a quarter of all S&E employment nationally.

How much has that changed — the trend

Neither BLS OEWS (state x SOC occupation, loaded for 2025 only in this connector) nor NSF HERD (state x year R&D dollars, loaded for 2024 only) carries more than a single year here, so a workforce-level Gini trend cannot be computed directly from this warehouse. As a documented substitution, we use USPTO patent grants attributed to each patent's primary assignee's state — a genuine research/innovation-output proxy with full annual coverage 2010-2025 — to measure how concentration has moved over time.

Exclusion disclosed: every state-level count and Gini figure in the table below was computed from SQL that filtered with the predicate pl.state_fips IS NOT NULL (combined with country_code = 'US'). That predicate removes every patent whose primary assignee's location record has no US state — in practice, overwhelmingly patents whose assignee is a foreign company or individual with no US state to begin with. This is roughly half of all USPTO grants in every year measured: of 206,052 total grants in 2010, 106,704 were removed by pl.state_fips IS NOT NULL failing (99,348 remained); of 311,558 total grants in 2024, 170,492 were removed the same way (141,066 remained). Removing these rows is the correct scope for a 'geographic concentration across US states' question — a patent with no US state cannot appear in a state-level Gini — but it means every figure below describes the geography of US-assigned patents only, not worldwide patenting activity, and is silent on any trend in the (excluded) foreign-assigned share.

20100.69699,34853.2%25.3%
20150.713135,58956.6%29.6%
20200.721164,45756.4%28.4%
20240.712141,06654.7%31.8%
20240.712141,06654.7%31.8%
20200.721164,45756.4%28.4%
20150.713135,58956.6%29.6%
20100.69699,34853.2%25.3%
20200.721164,45756.4%28.4%
20150.713135,58956.6%29.6%
20240.712141,06654.7%31.8%
20100.69699,34853.2%25.3%
20200.721164,45756.4%28.4%
20240.712141,06654.7%31.8%
20150.713135,58956.6%29.6%
20100.69699,34853.2%25.3%
20150.713135,58956.6%29.6%
20200.721164,45756.4%28.4%
20240.712141,06654.7%31.8%
20100.69699,34853.2%25.3%
20240.712141,06654.7%31.8%
20150.713135,58956.6%29.6%
20200.721164,45756.4%28.4%
20100.69699,34853.2%25.3%

Two things worth separating: the overall Gini rose modestly (+0.016 net, 2010 to 2024, with a higher 2020 peak of 0.721), moving the distribution from the 'high' concentration band toward the boundary of 'extreme' — but the top-5-state share barely moved (53.2% to 54.7%). Reconciling those two facts: California's own share of the total climbed from about a quarter to nearly a third of all US-assigned patents, while the rest of the top-5 (TX, NY, WA/MA rotating) roughly held steady or gave back share. So the rise in concentration over this window is a story about California specifically pulling further ahead, not the top tier broadly gaining at the expense of everyone else equally — a distinction a bare top-N share would have hidden.

Corroboration from the published literature

This direction — persistent, historically high concentration with a further tilt toward a small number of coastal hubs over the 2010s — matches independent published research using entirely different data and methods, which strengthens confidence in the warehouse-computed trend rather than merely repeating it:

All three external findings describe the same phenomenon this analysis found in patent data: concentration was already high in 2010 and increased somewhat further through roughly 2019-2020, driven by a small set of already-leading hubs rather than broad-based top-tier growth.

Caveats and what was not directly measurable

Every query behind this report

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

query — 54 rows — 1633 ms
SELECT state_fips, SUM(employment) AS se_employment
FROM econ.state_occupation_employment
WHERE "year" = 2025
GROUP BY state_fips
ORDER BY se_employment DESC
gini_coefficient — 978 ms
SELECT state_fips, SUM(employment) AS se_employment
FROM econ.state_occupation_employment
WHERE "year" = 2025
GROUP BY state_fips
query — 54 rows — 1859 ms
SELECT state_fips, rd_expenditure_usd_thousand
FROM research.research_herd_rd_by_state_year
WHERE "year" = 2024
ORDER BY rd_expenditure_usd_thousand DESC
gini_coefficient — 1728 ms
SELECT state_fips, rd_expenditure_usd_thousand
FROM research.research_herd_rd_by_state_year
WHERE "year" = 2024
query — 212 rows — 25926 ms
WITH primary_assignee AS (
  SELECT patent_id, location_id
  FROM patents.patent_assignees
  WHERE assignee_sequence = 0
)
SELECT pg.grant_year AS "year", pl.state_fips, COUNT(*) AS patent_count
FROM patents.patent_grants pg
JOIN primary_assignee pa ON pg.patent_id = pa.patent_id
JOIN patents.patent_locations pl ON pa.location_id = pl.location_id
WHERE pg.grant_year IN (2010,2015,2020,2024) AND pl.country_code = 'US' AND pl.state_fips IS NOT NULL
GROUP BY pg.grant_year, pl.state_fips
gini_coefficient — 15133 ms
WITH primary_assignee AS (
  SELECT patent_id, location_id FROM patents.patent_assignees WHERE assignee_sequence = 0
)
SELECT pl.state_fips, COUNT(*) AS patent_count
FROM patents.patent_grants pg
JOIN primary_assignee pa ON pg.patent_id = pa.patent_id
JOIN patents.patent_locations pl ON pa.location_id = pl.location_id
WHERE pg.grant_year = 2010 AND pl.country_code = 'US' AND pl.state_fips IS NOT NULL
GROUP BY pl.state_fips
gini_coefficient — 15212 ms
WITH primary_assignee AS (
  SELECT patent_id, location_id FROM patents.patent_assignees WHERE assignee_sequence = 0
)
SELECT pl.state_fips, COUNT(*) AS patent_count
FROM patents.patent_grants pg
JOIN primary_assignee pa ON pg.patent_id = pa.patent_id
JOIN patents.patent_locations pl ON pa.location_id = pl.location_id
WHERE pg.grant_year = 2024 AND pl.country_code = 'US' AND pl.state_fips IS NOT NULL
GROUP BY pl.state_fips
query — 4 rows — 4882 ms
WITH primary_assignee AS (
  SELECT patent_id, location_id FROM patents.patent_assignees WHERE assignee_sequence = 0
),
by_state AS (
  SELECT pg.grant_year AS "year", pl.state_fips, COUNT(*) AS cnt
  FROM patents.patent_grants pg
  JOIN primary_assignee pa ON pg.patent_id = pa.patent_id
  JOIN patents.patent_locations pl ON pa.location_id = pl.location_id
  WHERE pg.grant_year IN (2010,2015,2020,2024) AND pl.country_code='US' AND pl.state_fips IS NOT NULL
  GROUP BY pg.grant_year, pl.state_fips
),
ranked AS (
  SELECT "year", state_fips, cnt, SUM(cnt) OVER (PARTITION BY "year") AS total,
    ROW_NUMBER() OVER (PARTITION BY "year" ORDER BY cnt DESC) AS rk
  FROM by_state
)
SELECT "year", SUM(cnt) AS top5_sum, MAX(total) AS total, SUM(cnt)*1.0/MAX(total) AS top5_share
FROM ranked WHERE rk <= 5
GROUP BY "year" ORDER BY "year"
query — 10 rows — 1775 ms
SELECT state_fips, SUM(employment) AS se_employment
FROM econ.state_occupation_employment
WHERE "year" = 2025
GROUP BY state_fips
ORDER BY se_employment DESC
LIMIT 10
gini_coefficient — 16116 ms
WITH primary_assignee AS (
  SELECT patent_id, location_id FROM patents.patent_assignees WHERE assignee_sequence = 0
)
SELECT pl.state_fips, COUNT(*) AS patent_count
FROM patents.patent_grants pg
JOIN primary_assignee pa ON pg.patent_id = pa.patent_id
JOIN patents.patent_locations pl ON pa.location_id = pl.location_id
WHERE pg.grant_year = 2015 AND pl.country_code = 'US' AND pl.state_fips IS NOT NULL
GROUP BY pl.state_fips
gini_coefficient — 15274 ms
WITH primary_assignee AS (
  SELECT patent_id, location_id FROM patents.patent_assignees WHERE assignee_sequence = 0
)
SELECT pl.state_fips, COUNT(*) AS patent_count
FROM patents.patent_grants pg
JOIN primary_assignee pa ON pg.patent_id = pa.patent_id
JOIN patents.patent_locations pl ON pa.location_id = pl.location_id
WHERE pg.grant_year = 2020 AND pl.country_code = 'US' AND pl.state_fips IS NOT NULL
GROUP BY pl.state_fips
query — 4 rows — 4525 ms
WITH primary_assignee AS (
  SELECT patent_id, location_id FROM patents.patent_assignees WHERE assignee_sequence = 0
)
SELECT pg.grant_year AS "year",
  COUNT(*) FILTER (WHERE pl.state_fips IS NULL) AS null_state_fips_rows,
  COUNT(*) AS total_rows
FROM patents.patent_grants pg
JOIN primary_assignee pa ON pg.patent_id = pa.patent_id
LEFT JOIN patents.patent_locations pl ON pa.location_id = pl.location_id
WHERE pg.grant_year IN (2010,2015,2020,2024)
GROUP BY pg.grant_year ORDER BY 1

Sources

  1. BLS OEWS state S&E occupational employment, 2025 — econ.state_occupation_employment
    Show SQL
    SELECT state_fips, SUM(employment) AS se_employment FROM econ.state_occupation_employment WHERE "year" = 2025 GROUP BY state_fips ORDER BY se_employment DESC
  2. NSF NCSES HERD state R&D expenditure, 2024 — research.research_herd_rd_by_state_year
    Show SQL
    SELECT state_fips, rd_expenditure_usd_thousand FROM research.research_herd_rd_by_state_year WHERE "year" = 2024 ORDER BY rd_expenditure_usd_thousand DESC
  3. USPTO patent grants by primary-assignee state, 2010/2015/2020/2024 — patents.patent_grants joined to patent_assignees and patent_locations
    Show SQL
    WITH primary_assignee AS (SELECT patent_id, location_id FROM patents.patent_assignees WHERE assignee_sequence = 0) SELECT pl.state_fips, COUNT(*) AS patent_count FROM patents.patent_grants pg JOIN primary_assignee pa ON pg.patent_id = pa.patent_id JOIN patents.patent_locations pl ON pa.location_id = pl.location_id WHERE pg.grant_year = 2024 AND pl.country_code = 'US' AND pl.state_fips IS NOT NULL GROUP BY pl.state_fips
  4. S&E employment Gini coefficient, 2025 — gini_coefficient tool over econ.state_occupation_employment
    Show tool call
    gini_coefficient(value_col="se_employment")
  5. Patent-output Gini coefficients, 2010/2015/2020/2024 — gini_coefficient tool over patent grants by state, run once per year
    Show tool call
    gini_coefficient(value_col="patent_count")
  6. https://ncses.nsf.gov/pubs/nsb20198/s-e-workers-in-the-economy
  7. https://www.brookings.edu/articles/superstars-rising-stars-and-the-rest-pandemic-trends-and-shifts-in-the-geography-of-tech/
  8. https://www.brookings.edu/articles/tech-is-still-concentrating/?preview_id=722376
  9. https://www.brookings.edu/articles/growth-centers-how-to-spread-tech-innovation-across-america/