Technical writing
BEA Regional Accounts: GDP by State, Personal Income by County, and the Sub-National Economic Measurement Behind Every State Policy Decision
The Bureau of Economic Analysis produces two distinct statistical programs. The National Income and Product Accounts — NIPA, covered in the companion article on BEA GDP and National Accounts — measure aggregate US economic output and income. The Regional Accounts measure the same quantities broken down by state, county, and metropolitan area. For anyone working in state policy, regional economics, site selection, or sub-national investment analysis, the Regional Accounts are the authoritative source.
Regional Accounts versus National Accounts
The two programs share a common framework but serve different analytical purposes. NIPA produces quarterly estimates of GDP, personal income, and corporate profits for the United States as a whole, typically within a few weeks of the reference period. Regional Accounts use national GDP and income totals as control totals — the regional figures sum to the national aggregate — and allocate those totals to sub-national geographies using administrative records, tax data, payroll surveys, and other indicator series that are available at the state and county level.
This allocation methodology means Regional Accounts are generally released with a longer lag than national estimates. Annual state GDP appears roughly nine months after year-end. Annual county personal income appears roughly eighteen months after year-end. The tradeoff is geographic granularity that the national accounts simply do not provide: three thousand one hundred counties, three hundred eighty metropolitan statistical areas, and fifty states, each with detailed industry and income component breakdowns.
BEA's Regional program produces four main products:
- GDP by State (SAGDP) — annual and quarterly; NAICS industry detail
- Personal Income by State (SAINC) — quarterly; income component breakdown
- Personal Income by County (CAINC) — annual; all ~3,100 US counties
- GDP by Metropolitan Statistical Area (MAGDP) — annual; ~380 MSAs
All four series are accessible via the BEA API using the Regional dataset name, and all are also available on FRED with standardized series mnemonics. The interactive data tool at bea.gov/itable provides browser-based access without an API key.
GDP by State
GDP by State is the most-cited Regional Accounts product. BEA publishes two versions: an annual series with NAICS industry detail (starting 1997) and a quarterly series for total GDP only (starting 2005). The annual series decomposes each state's economy to the two-digit NAICS sector level — twenty-two broad sectors including agriculture, mining, construction, manufacturing, finance, and information — with a single GDP total for each state-industry cell.
The post-COVID ranking of state GDP growth tells a familiar story. Texas and Florida have led annualized growth among large states through the mid-2020s, driven by population in-migration, energy sector activity, and a business environment that attracted corporate relocations from California, Illinois, and the Northeast. California remains by far the largest state economy at roughly $3.5 trillion in nominal GDP — larger than all but five national economies worldwide — but its growth rate has lagged peer large states, reflecting housing cost constraints on population growth and the post-2022 contraction in the technology sector.
GDP per capita by state functions as a productivity and living-standard measure, though it conflates economic density with worker productivity. Connecticut and Massachusetts consistently rank at or above $90,000 per capita in nominal terms, reflecting the concentration of high-value financial services, biotech, and professional services employment in the Boston–Hartford corridor. Mississippi and West Virginia sit at the opposite end, below $45,000 per capita, reflecting industrial structures concentrated in lower-value-added manufacturing, agriculture, and extractive industries. These disparities have narrowed only slowly over decades.
Oil-state boom-bust cycles are among the clearest signals in state GDP data. Texas, North Dakota, Wyoming, and Alaska all exhibit GDP volatility that tracks the energy price cycle far more than the national business cycle. North Dakota's economy roughly doubled in size between 2007 and 2014 as Bakken shale development transformed it into one of the fastest-growing state economies in modern US history. When WTI crude collapsed from above $100 per barrel to $26 in early 2016, North Dakota GDP contracted sharply for two consecutive years — a recession that the national economy did not experience. Wyoming coal and natural gas dependence produces similar swings at smaller absolute scale. Texas is large enough that its oil-related sectors represent a meaningful share of GDP but are diluted by the enormous diversified Houston, Dallas, and Austin metro economies.
Personal Income by State
Personal income at the state level is published quarterly in the SAINC tables and decomposes into five major components: compensation of employees(wages, salaries, and employer-paid benefits), proprietors' income (net income from self-employment and unincorporated businesses),rental income, personal dividend and interest income, and government transfer payments. Social insurance contributions (employee and employer shares of Social Security and Medicare taxes) are subtracted to arrive at personal income as defined in the accounts.
The component decomposition reveals structurally different state economies. Florida and Arizona have unusually high shares of property income — dividends, interest, and rent — reflecting retiree-heavy populations who live off investment and Social Security income rather than wages. States with large government workforces (Virginia, Maryland, and Alaska) show high compensation shares driven by federal civilian and military pay. Manufacturing-heavy states in the Midwest carry high compensation shares tied to union wage structures in automotive and industrial sectors.
The 2020–2021 transfer payment surge is the most dramatic episode in the recent history of state personal income data. Enhanced unemployment insurance (the $600 CARES Act supplement and subsequent $300 supplement), three rounds of stimulus checks, Paycheck Protection Program loans that appear in proprietors' income, expanded child tax credit advance payments, and elevated Medicaid enrollment all combined to drive state personal income totals sharply above trend in 2020 and 2021. States with high baseline unemployment rates received the largest surge in unemployment insurance. Rural states received disproportionately large per-capita stimulus payments because the flat-dollar structure of stimulus checks was larger relative to local incomes. The 2022 unwinding — enhanced benefits expired, stimulus ended, Medicaid continuous enrollment unwound — shows as a partial reversal in transfer payment totals across almost every state.
State-to-state migration shows up in personal income data with a one-to-two-year lag. Florida has gained net in-migrants from California, New York, Illinois, and New Jersey throughout the 2020s — and IRS Statistics of Income migration data confirms these flows are income-skewed, meaning the migrants are disproportionately high-income. BEA personal income captures this as rising compensation and property income in Florida as high earners establish Florida as their primary residence and move their labor income and investment income to the receiving state. California shows the corresponding slowdown in wage and salary growth per worker as the composition of remaining workers skews toward lower-to-middle earners.
Real personal income — nominal income deflated by the regional price parities or by CPI variants — paints a more complicated picture. States with high nominal income levels often also have high costs of living. Connecticut's $90,000 nominal per-capita income is partially consumed by housing and services costs that far exceed Mississippi's. BEA produces Regional Price Parities (RPPs) as a separate experimental series that can be used to convert nominal income to purchasing-power-adjusted real income. On that basis, the geographic income gap narrows substantially.
Personal Income by County
The county personal income tables — CAINC — represent the finest geographic resolution in the Regional Accounts. BEA publishes annual estimates for every one of the approximately 3,100 US counties, county equivalents (Louisiana parishes, Alaska boroughs), and independent cities. The headline table, CAINC1, provides total personal income and per-capita personal income. Additional tables (CAINC4, CAINC5, CAINC30, CAINC35) break income into its wage/salary, proprietors, property income, and transfer payment components.
County-level data is released roughly eighteen months after the reference year. The 2024 county data, for example, typically arrives in late 2025 or early 2026. Despite the lag, the county series is invaluable for identifying local economic patterns that are invisible at the state level.
Energy boom counties are among the most striking examples. Midland County and Ector County in the Permian Basin of West Texas saw per-capita personal income surge dramatically during the 2010s shale boom, reaching levels that placed West Texas oil patch counties among the highest-income counties in the nation — not because of broad-based prosperity but because of the wage and proprietors' income generated by oil field work, which concentrated in a small labor force. The volatility is corresponding: when oil prices fell, county income followed immediately, because mining-sector compensation and proprietors' income are directly tied to drilling activity levels.
Tech wealth concentration appears clearly in the San Francisco Bay Area county data. San Francisco County and San Mateo County consistently rank among the highest per-capita income counties nationally, driven by wage and salary income from the technology sector and by dividend and interest income from equity wealth. The divergence between San Francisco County and adjacent Alameda County (Oakland) within the same metro area illustrates how geographically concentrated income gains from the tech industry have been.
Agricultural counties show income patterns tied to commodity cycles. Corn Belt counties in Iowa and Illinois see proprietors' income move with corn and soybean prices. Cattle-ranching counties in Nebraska and Kansas similarly track beef prices. Transfer payments often make up an unusually large share of total income in persistently low-income rural counties, particularly in the Mississippi Delta, Appalachian coalfields, and the colonias region of South Texas.
GDP by Metropolitan Statistical Area
BEA publishes annual GDP estimates for approximately 380 Metropolitan Statistical Areas (MSAs) and a handful of Combined Statistical Areas (CSAs). The MAGDP tables provide total MSA GDP and industry breakdown to the two-digit NAICS level, using the same NAICS-based industry classification as the state GDP series.
The scale disparities across US metros are extraordinary. The New York-Newark-Jersey City MSA produces more than $2 trillion in GDP annually, making it the largest metro economy in the world by most measures. The Los Angeles-Long Beach-Anaheim MSA follows at roughly $1.1 trillion. The Chicago-Naperville-Elgin MSA generates approximately $700 billion. Dallas-Fort Worth-Arlington has surpassed $600 billion as corporate relocations and population growth accelerated through the early 2020s. Together, the top ten US MSAs generate roughly fifty percent of national GDP while containing only about thirty percent of the population, reflecting the extreme agglomeration economies of large metros in high-value service sectors.
Industry specialization is plainly visible in the MAGDP industry breakdowns. The Las Vegas-Henderson-Paradise MSA has the highest share of arts, entertainment, recreation, accommodation, and food services of any large metro in the country, reflecting its casino and tourism base. The Houston-The Woodlands-Sugar Land MSA has the highest mining and oil-and-gas sector share of any major US metro, making it directly exposed to energy price cycles in a way that Dallas—despite being geographically nearby—is not (Dallas is far more diversified in finance, logistics, and technology). The San Jose-Sunnyvale-Santa Clara MSA (Silicon Valley) has the highest information sector share of any US metro, with technology companies producing a disproportionate share of MSA GDP relative to employment, reflecting the sector's high revenue-per-worker ratios.
The metro-nonmetro divergence intensified post-COVID in an interesting way. Rural and exurban areas gained net population as remote work enabled household location decisions that were previously constrained by commuting distance. This demographic shift shows in county personal income data as rising compensation income in previously stagnant small-metro and micropolitan counties. However, the GDP-per-capita gap between the largest metros and rural areas did not close meaningfully, because the in-migrants to smaller areas tended to continue working for metro-based or national employers rather than creating local economic activity. Their income registered locally in CAINC data while their production registered in their employers' metro or state.
State Income Tax Policy and BEA Personal Income
BEA personal income by state is the foundation on which state income tax revenue projections are built. Most state income tax systems use adjusted gross income (from federal tax returns) as their starting point, but BEA personal income is a broader measure — it includes transfer payments that are excluded from AGI, and it captures income that appears in tax filings with a lag. State budget offices use BEA data to estimate the taxable income base and project revenue sensitivity to economic changes.
The migration of high-income households from high-tax to low- or no-income-tax states is among the most debated fiscal policy questions in US state finance. California's top marginal income tax rate of 13.3 percent — the highest in the nation — applies to income above $1 million and generates a disproportionate share of state revenue from a small number of households. Texas, Florida, Nevada, Washington, and four other states levy no individual income tax at all. The federal State and Local Tax (SALT) deduction cap of $10,000, enacted in the 2017 Tax Cuts and Jobs Act, reduced the after-federal-tax cost advantage of living in a low-state-tax jurisdiction for households in the federal AMT brackets, but it simultaneously reduced the federal tax benefit of high state income taxes, making high-tax states relatively less attractive at the margin for households itemizing deductions.
BEA does not publish a migration-adjusted income estimate directly, but IRS Statistics of Income Migration Data (a companion federal dataset) tracks the dollar value of AGI flowing between states each year via matched tax return filings. Combining IRS migration data with BEA personal income by state reveals that the income flows leaving California and New York to Florida, Texas, and Arizona represent a meaningful and sustained structural shift rather than a one-year COVID anomaly. The BEA data confirms the receiving-state income acceleration; the IRS data confirms the source states.
Transfer Payments in Regional Accounts
Government transfer payments represent a large and growing share of personal income in most US states. The SASUMMARY table (state annual summary) and its county equivalent (CAINC35) decompose transfers into their major program categories: Social Security, Medicare, Medicaid (and other health care transfers), income maintenance benefits (SNAP, EITC, SSI, TANF, stimulus payments), unemployment insurance, veterans benefits, and federal education transfers.
The geographic pattern of federal transfer receipt reflects the income distribution of the underlying population. Lower-income states — Mississippi, West Virginia, Alabama, Kentucky, Arkansas — receive substantially more in per-capita federal transfers than higher-income states, because the means-tested programs (Medicaid, SNAP, SSI, TANF) target low-income households, and the demographic profile of lower-income states includes higher shares of elderly residents (drawing Social Security and Medicare) and higher poverty rates (drawing means-tested benefits). This produces the apparent paradox — widely noted in fiscal federalism literature — that states that tend to be represented by politicians skeptical of federal social spending are also the states most dependent on that spending as a share of personal income.
The COVID-era transfer explosion is the most extreme episode in post-war US transfer payment history. Between 2019 and 2020, government transfer payments to persons increased by approximately 50 percent nationally. The increase was concentrated in three programs: the $600 per week CARES Act unemployment insurance supplement, which drove total UI payments from roughly $30 billion in 2019 to over $500 billion in 2020 (seventeen times the pre-pandemic level); the three rounds of Economic Impact Payments (stimulus checks) totaling over $800 billion across all three tranches; and the Paycheck Protection Program, whose forgivable loans to small businesses appear in BEA accounts as proprietors' income rather than transfers, adding another $800 billion across 2020–2021. Medicaid continuous enrollment provisions, which prevented states from disenrolling beneficiaries throughout the public health emergency, also drove Medicaid transfer payments sharply higher through early 2023.
The unwinding of these programs produced a corresponding contraction in transfer income across 2022–2023. Unemployment insurance payments normalized as enhanced benefits expired and unemployment fell. Stimulus payments ended. PPP forgiveness rounds were completed. Medicaid redeterminations — the process of reassessing eligibility after continuous enrollment requirements expired in April 2023 — resulted in millions of disenrollments. In BEA data this appears as a significant step-down in transfer payment totals that mechanically reduces nominal personal income by state, obscuring underlying wage and salary income growth during the same period.
Energy State Boom-Bust in BEA Data
No feature of state GDP data is more dramatic than the oil-and-gas boom-bust cycle in energy-dependent states. BEA publishes a mining sector GDP by state that tracks the value added by oil, natural gas, and coal extraction and the direct support activities. Because oil and gas prices are set globally and can move fifty to one hundred percent within a single year, state mining GDP can swing by billions of dollars with no change in physical production volumes.
North Dakota is the canonical example. In 2007, North Dakota's GDP was roughly $35 billion — a small, agriculture-dependent economy in the Northern Plains. The Bakken shale formation, unlocked by horizontal drilling and hydraulic fracturing technology, transformed the state between 2008 and 2014. By 2014, North Dakota GDP had grown to nearly $55 billion, an increase of more than fifty percent in seven years. Oil production briefly made North Dakota the second-largest oil-producing state in the country. When WTI crude fell from $107 in mid-2014 to $26 in February 2016, North Dakota GDP contracted for two years, rig counts collapsed, and the state budget moved from surplus to deficit.
Texas and New Mexico illustrate how differently two states can respond to the same Permian Basin shale boom depending on their economic size and diversification. New Mexico, which has a much smaller and less diversified economy, saw its state fiscal position transform dramatically as Permian oil royalties flowed to the state's Land Grant Permanent Fund, creating budget surpluses that allowed the state to increase education spending without raising taxes. Texas experienced large absolute-dollar gains in mining GDP but the Permian contribution was diluted across the enormous Dallas, Houston, and Austin metro economies.
Alaska presents a unique case because the Alaska Permanent Fund Dividend — the annual per-capita distribution to Alaska residents from the state's sovereign wealth fund, which holds oil royalty savings — appears directly in BEA personal income as a transfer-payment-like income item. In years when the dividend is large (it has ranged from roughly $900 to over $2,000 per person), it visibly inflates Alaska per-capita personal income relative to its underlying wage-and-salary base.
The BEA Regional API
The BEA Regional dataset is one of the three primary datasets in the BEA API (alongside NIPA and the International Transactions Accounts). API access is free and requires only a key registered at apps.bea.gov/api/signup. The endpoint is https://apps.bea.gov/api/data with DataSetName=Regional.
The key parameters for Regional queries are:
TableName— identifies the specific table:SAGDP1(state GDP total),SAGDP9N(state GDP by NAICS industry),SAINC1(state personal income),CAINC1(county per-capita personal income),CAINC4(county wage and salary income),CAINC35(county transfer payments),MAGDP1(MSA GDP total),SASUMMARY(state annual income summary)LineCode— the line number within the table; line 1 is typically the aggregate total, subsequent lines are components or industry subsectorsGeoFips— geography identifier: two-digit state FIPS code (48for Texas), five-digit county FIPS code (48113for Dallas County TX), MSA FIPS code (five digits, different series from county), or the special valuesSTATE,COUNTY, andMSAto retrieve all geographies of a given type in a single callYear—ALLfor full history, or a comma-separated list of years; quarterly series acceptALLor specific year lists
FRED carries the complete BEA Regional series catalog with standardized mnemonics. State GDP series follow the pattern [STATEABBR]NGSP (e.g., TXNGSPfor Texas nominal GDP). State personal income follows [STATEABBR]PI. County personal income follows the county FIPS code plus PCPI for per-capita or NMPCT for total nominal. FRED's API is an alternative retrieval path for users already integrated into the FRED ecosystem, though the BEA API provides more granular industry and component breakdowns directly.
The BEA Interactive Data tool at bea.gov/itable provides browser-based table access that mirrors the API parameters. Users unfamiliar with the table and line code structure can explore the table hierarchy interactively, identify the correct TableNameand LineCode values, and then replicate the same query via the API. The tool also supports bulk CSV downloads for users who prefer file-based workflows.
Python: Per-Capita Personal Income Growth by State, 2010–2024
The following example downloads annual per-capita personal income for all fifty states from CAINC1, computes the 2010–2024 cumulative growth rate, ranks states, identifies the top five growth states versus the national average, and separately quantifies the COVID transfer payment spike and its 2022 unwinding across states.
import requests
import pandas as pd
BEA_API = "https://apps.bea.gov/api/data"
API_KEY = "YOUR_BEA_API_KEY" # register free at apps.bea.gov/api/signup
# BEA Regional dataset key tables:
# SAGDP1 - GDP by state, all industries total, annual
# SAINC1 - Personal income by state, quarterly
# CAINC1 - Personal income by county, annual
# MAGDP1 - GDP by metropolitan statistical area, annual
def fetch_bea_regional(table_name, line_code, geo_fips, year, api_key=API_KEY):
"""
Query the BEA Regional dataset.
table_name: e.g. 'CAINC1' or 'SAGDP1'
line_code: numeric line within the table (1 = total, 10 = wages, etc.)
geo_fips: state FIPS ('06' for CA), county FIPS ('48113' for Dallas TX),
or 'STATE' / 'COUNTY' to get all geographies at once
year: 'ALL' or comma-separated years e.g. '2010,2015,2020'
"""
params = {
"UserID": api_key,
"method": "GetData",
"DataSetName": "Regional",
"TableName": table_name,
"LineCode": str(line_code),
"GeoFips": geo_fips,
"Year": year,
"ResultFormat": "JSON",
}
resp = requests.get(BEA_API, params=params, timeout=60)
resp.raise_for_status()
result = resp.json()
data = result["BEAAPI"]["Results"]["Data"]
rows = []
for obs in data:
try:
val = float(obs["DataValue"].replace(",", ""))
except (ValueError, AttributeError):
val = float("nan")
rows.append({
"geo_fips": obs.get("GeoFips"),
"geo_name": obs.get("GeoName"),
"year": int(obs.get("TimePeriod", 0)),
"value": val,
"unit_mult": obs.get("UNIT_MULT"),
})
return pd.DataFrame(rows)
# ------------------------------------------------------------------
# Download annual per-capita personal income for all 50 states
# CAINC1 LineCode 3 = per-capita personal income (dollars)
# ------------------------------------------------------------------
df_raw = fetch_bea_regional("CAINC1", line_code=3, geo_fips="STATE", year="ALL")
# Keep 2010-2024 and drop DC, outlying areas (GeoFips > '56000')
df = df_raw[
(df_raw["year"] >= 2010) &
(df_raw["year"] <= 2024) &
(df_raw["geo_fips"].str.len() == 2) & # state-level FIPS are 2 digits
(df_raw["geo_fips"].astype(int) <= 56) # 50 states + DC (drop territories)
].copy()
# Pivot so each row is a state, each column is a year
pivot = df.pivot(index=["geo_fips", "geo_name"], columns="year", values="value").reset_index()
# Compute 2010-2024 cumulative growth (percent)
pivot["growth_pct"] = ((pivot[2024] / pivot[2010]) - 1) * 100
# National average benchmark (GeoFips '00000' in CAINC1 = US total)
df_us = fetch_bea_regional("CAINC1", line_code=3, geo_fips="00000", year="ALL")
df_us = df_us[(df_us["year"] >= 2010) & (df_us["year"] <= 2024)]
us_2010 = df_us.loc[df_us["year"] == 2010, "value"].values[0]
us_2024 = df_us.loc[df_us["year"] == 2024, "value"].values[0]
us_growth = ((us_2024 / us_2010) - 1) * 100
# Rank states by cumulative growth
pivot = pivot.sort_values("growth_pct", ascending=False).reset_index(drop=True)
pivot["rank"] = pivot.index + 1
print("=== Top 5 states by per-capita personal income growth, 2010-2024 ===")
top5 = pivot.head(5)[["rank", "geo_name", 2010, 2024, "growth_pct"]]
print(top5.rename(columns={2010: "income_2010", 2024: "income_2024"})
.round(1)
.to_string(index=False))
print("\nUS national average growth 2010-2024: " + str(round(us_growth, 1)) + "%")
print("US per-capita personal income 2010: $" + str(round(us_2010)))
print("US per-capita personal income 2024: $" + str(round(us_2024)))
# ------------------------------------------------------------------
# COVID transfer payment spike: compare 2019, 2020, 2021, 2022
# CAINC1 LineCode 20 = government transfer payments to persons
# ------------------------------------------------------------------
df_transfer = fetch_bea_regional("CAINC1", line_code=20, geo_fips="STATE",
year="2019,2020,2021,2022")
transfer_pivot = df_transfer.pivot(
index=["geo_fips", "geo_name"], columns="year", values="value"
).reset_index()
transfer_pivot["spike_2020_pct"] = ((transfer_pivot[2020] / transfer_pivot[2019]) - 1) * 100
transfer_pivot["unwind_2022_pct"] = ((transfer_pivot[2022] / transfer_pivot[2021]) - 1) * 100
transfer_pivot = transfer_pivot.sort_values("spike_2020_pct", ascending=False)
print("\n=== COVID transfer payment spike: top 5 states by 2019-2020 increase ===")
top_transfer = transfer_pivot.head(5)[["geo_name", 2019, 2020, 2021, 2022,
"spike_2020_pct", "unwind_2022_pct"]]
print(top_transfer.round(1).to_string(index=False))
print("\nDone. States above US growth benchmark (" + str(round(us_growth, 1)) + "%):")
above = pivot[pivot["growth_pct"] > us_growth][["geo_name", "growth_pct"]]
print(above.to_string(index=False))
A few notes on interpreting the output. The CAINC1 table LineCode 3 is per-capita personal income in current dollars. Because this is a nominal series, cumulative growth over 2010–2024 includes both real income gains and inflation. The national CPI increased approximately fifty percent over this period; states with growth rates above that threshold experienced real income gains relative to 2010. Energy-state growth rates are typically among the highest in nominal terms but are also among the most volatile — a state that boomed during the shale era and then contracted during the 2015–2016 oil price decline will show a muted 2010–2024 growth rate despite large within-period swings.
The transfer payment query uses LineCode 20 in CAINC1, which captures total government transfers to persons at the county level. The 2019–2020 spike is uniformly visible across all states, but states with higher pre-existing unemployment rates show larger percentage increases because the enhanced UI supplement was a larger multiple of prior-year UI levels. The 2021–2022 unwinding is also consistent across states but varies in pace depending on state-specific Medicaid disenrollment timelines and the timing of state UI fund exhaustion.
Practical applications
The BEA Regional Accounts are used across a wide range of applied contexts. State budget offices use them to estimate the personal income tax base and calibrate revenue forecasting models. Economic development agencies use state and metro GDP data to benchmark local performance against peer regions and to identify industry sectors where the local economy has or lacks competitive strength. Site selection consultants use county income and wage data to evaluate labor market conditions and purchasing power in candidate locations. Academics studying economic geography, regional convergence, and the determinants of income inequality use the county-level series because no alternative federal source provides equivalent geographic granularity with this degree of component detail.
The eighteen-month publication lag for county data is the main operational constraint. For most analytical purposes this is acceptable — county income conditions evolve slowly enough that data from eighteen months prior is structurally informative. For real-time labor market monitoring, BLS Quarterly Census of Employment and Wages (QCEW) and the American Community Survey (ACS) provide county-level wage and income proxies with shorter lags, at the cost of component detail and full income coverage.
The BEA Regional Accounts, taken together with the NIPA national accounts and the IRS Statistics of Income data, form a nearly complete picture of the US income distribution across geography and time. Each program has strengths the others lack: NIPA provides timeliness and national coherence; Regional Accounts provide geographic granularity and consistent methodology across all sub-national geographies; IRS SOI provides tax-unit-level income detail and migration flows that neither BEA program attempts. Analysts working seriously with any of these datasets will quickly find that the programs are complementary rather than substitutes.
Related writing: BEA GDP and National Accounts: The Federal Dataset That Measures the US Economy covers the NIPA national-level framework that serves as the control total for all Regional Accounts estimates.
IRS Statistics of Income: Tax Return Microdata and Interstate Migration covers the IRS migration data that complements BEA state personal income with AGI flow tracking between states.
Census ACS Data: The American Community Survey and What It Measures covers the ACS county-level income and employment estimates that provide a shorter-lag complement to BEA county personal income data.