Time series · bea-county-income

County personal income (BEA CAINC1)

Annual personal income, population and per capita personal income for every county, state and the nation from the Bureau of Economic Analysis table CAINC1, 1969 to the latest year, in current (not inflation-adjusted) dollars. BEA combines some Virginia independent cities with their counties and Kalawao with Maui; those combination areas appear under BEA's own codes (bea-*). Connecticut has both its legacy counties and its planning regions where BEA publishes them.

Updates
Yearly
Coverage
—
Current version
—
Last published
—
Validation
—
License
US Government work
Commercial use
Allowed

Chart

County personal income (BEA CAINC1)

Loading the chart…
Source: U.S. Bureau of Economic Analysis.
Show the data as a table

The table appears once the data has loaded.

Use the API

Each series and location is its own small file. The examples follow the series and location picked above. See the docs for versions, caching and errors.

curl

# One series for one place (.json or .csv)
curl -s "https://api.economicdata.dev/v1/bea-county-income/annual/usa.json"

# Every series and place in one file
curl -sO "https://api.economicdata.dev/v1/bea-county-income/download/bea-county-income.csv"

Python (polars)

import polars as pl

# One series for one place
df = pl.read_csv("https://api.economicdata.dev/v1/bea-county-income/annual/usa.csv")

# Every series and place, with series and location columns
everything = pl.read_parquet("https://api.economicdata.dev/v1/bea-county-income/download/bea-county-income.parquet")

JavaScript

const res = await fetch("https://api.economicdata.dev/v1/bea-county-income/annual/usa.json");
if (!res.ok) throw new Error((await res.json()).detail); // errors are problem+json
const { meta, data } = await res.json();
console.log(meta.location_name, data.at(-1)); // { date, value, ... }

Downloads

The whole dataset in one file, with series and location columns. Parquet keeps the column types and is much smaller.

Schema and series

Each series file has these columns. The bulk downloads add series and location columns in front.

Column Type Unit Can be empty Description
date year (YYYY) — no —
personal_income integer thousands of USD yes Personal income, thousands of current dollars (line 1)
population integer persons yes Midyear population (line 2)
per_capita_personal_income integer USD yes Per capita personal income, current dollars (line 3)

Series

Series id Name
annual Annual estimates

Locations

Covers all 57 US states and equivalents (ids: us- plus the USPS code (us-ca, us-dc)); all 3,222 US counties and equivalents (ids: us-county- plus the 5-digit FIPS code); stations whose ids match bea-\d{5}; 15 more named places.

Location id Name
usa United States
us-county-02010 Aleutian Islands Census Area, AK (through 1987)
us-county-02201 Prince of Wales-Outer Ketchikan Census Area, AK (through 2008)
us-county-02231 Skagway-Yakutat-Angoon Census Area, AK (through 1992)
us-county-02232 Skagway-Hoonah-Angoon Census Area, AK (through 2007)
us-county-02261 Valdez-Cordova Census Area, AK (through 2019)
us-county-02280 Wrangell-Petersburg Census Area, AK (through 2008)
us-county-09001 Fairfield County, CT (legacy county)
us-county-09003 Hartford County, CT (legacy county)
us-county-09005 Litchfield County, CT (legacy county)
us-county-09007 Middlesex County, CT (legacy county)
us-county-09009 New Haven County, CT (legacy county)
us-county-09011 New London County, CT (legacy county)
us-county-09013 Tolland County, CT (legacy county)
us-county-09015 Windham County, CT (legacy county)

Place names come from the shared location registry; see Sources.

Source and license

Source
BEA Regional Economic Accounts, CAINC1 County and MSA personal income summary
Publisher
U.S. Bureau of Economic Analysis
License
US Government work (public domain in the United States) (LicenseRef-US-Government-Work)
Commercial use
Allowed

Credit the source with this exact text:

U.S. Bureau of Economic Analysis, "CAINC1 County and MSA personal income summary: personal income, population, per capita personal income" (https://www.bea.gov/data/income-saving/personal-income-by-county). This product uses the Bureau of Economic Analysis (BEA) Data API but is not endorsed or certified by BEA.

Checked every 7 days. If the source hasn't changed in 400 days, the status page flags it as stale.

Endpoints

Every URL for this dataset. To pin the current version, put it after the id: /v1/bea-county-income@<version>. The API reference describes each response.

What URL
Metadata: version, coverage, downloads, validation /v1/bea-county-income
Versions and monthly snapshots /v1/bea-county-income/versions
Series and locations /v1/bea-county-income/locations
Annual estimates (JSON) /v1/bea-county-income/annual/{location}.json
Annual estimates (CSV) /v1/bea-county-income/annual/{location}.csv
Whole dataset (CSV) /v1/bea-county-income/download/bea-county-income.csv
Whole dataset (Parquet) /v1/bea-county-income/download/bea-county-income.parquet