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
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.
- bea-county-income.csv CSV
- bea-county-income.parquet Parquet
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 |