Data Methodology

Primary Data Source

All cost-of-living index data comes from the U.S. Bureau of Economic Analysis (BEA) Regional Price Parities (RPP) program. RPPs measure the differences in price levels across states and metropolitan statistical areas (MSAs) for a given year, expressed as a percentage of the overall national price level (100 = national average). Data is sourced via BEA's Regional Data API using a registered API key.

Wage anchor data for salary-equivalent calculations is sourced from the U.S. Bureau of Labor Statistics Occupational Employment and Wage Statistics (OEWS) program, which publishes mean and percentile annual wages for hundreds of occupations across all 387 MSAs.

Rent context is cross-referenced against HUD's Fair Market Rent (FMR) tables, which publish 40th-percentile rent estimates by metro area annually. FMR is used by HUD for the Section 8 voucher program and is the federal standard for rent comparison.

Population and median household income figures used in cross-comparisons come from the U.S. Census Bureau American Community Survey (ACS) 5-year estimates.

Data Vintage

The BEA releases updated RPP data annually, typically with a 1–2 year lag from the reference year. The most recent release reflects 2024 data and was published in December 2025. PlainCost's database reflects the most recent BEA release. Historical data is available from 2008 to the most recent year, enabling 17-year trend analysis of cost of living changes over time. Refer to the BEA release schedule for upcoming publication dates.

Processing Pipeline

  1. BEA RPP data is downloaded from the BEA Regional Data API using the GeoFips parameter to enumerate all MSA and state geographies.
  2. Records are organized by geography (metro vs. state) and price category (All Items, Goods, Services, Rents).
  3. Historical time series from 2008 onward are retained verbatim for trend analysis — no smoothing, no interpolation.
  4. BLS OEWS wage data is joined to metro records on CBSA code to enable salary equivalent calculations and occupation-specific context.
  5. HUD FMR rent figures are loaded for cross-reference but never substituted for BEA RPP rent indices.
  6. All data is loaded into a structured SQLite database serving metro profiles, state pages, comparison tools, and the salary calculator.
  7. Each ETL run records a vintage stamp visible in the page footer and metadata, enabling reviewer audit of which BEA release powers any given page.

Price Categories

  • All Items — Overall cost of living index, the primary comparison metric
  • Goods — Tradable goods: food, clothing, electronics, transportation
  • Services (excluding rents) — Healthcare, education, utilities, professional services
  • Rents — Housing rental costs only

Salary Equivalent Calculator

The salary relocation calculator uses RPP indices to compute salary equivalents between two locations. If you earn $X in City A (RPP = A) and want the equivalent purchasing power in City B (RPP = B), the formula is:

Equivalent Salary = $X × (RPP_B / RPP_A)

This is a linear estimate based on price levels only. It does not account for income taxes (which vary significantly by state), lifestyle differences, housing type preferences, or individual spending patterns. The calculator provides a useful starting point for relocation planning, but actual cost-of-living differences depend heavily on personal circumstances including housing choices, commuting costs, and consumption habits that differ from the average basket measured by the BEA.

Coverage

  • 387 metropolitan statistical areas (MSAs)
  • 51 states and territories (including D.C.)
  • Historical data from 2008 to present
  • 4 price categories per geography

How the Source Agency Collects Data

The Bureau of Economic Analysis computes Regional Price Parities using data from two primary sources: the Consumer Price Index (CPI) from the Bureau of Labor Statistics, which provides price data for goods and services in urban areas, and the American Community Survey (ACS) from the Census Bureau, which provides rental cost data. BEA combines these sources using expenditure weights from the Personal Consumption Expenditures (PCE) price index to produce composite price level estimates for each metro area and state.

RPPs are expressed as a percentage of the national average price level, where 100 represents the national norm. An RPP of 115 means prices are 15% above average; an RPP of 90 means prices are 10% below average. This relative indexing allows direct comparison across geographies. The BEA RPP methodology document (PDF) describes the weighting and aggregation procedure in detail.

Worked Example: Translating an RPP Into a Salary

Suppose you currently earn $100,000 in San Francisco-Oakland-Berkeley, CA (BEA CBSA 41860, 2024 RPP All Items = 116.4) and you receive a job offer in Atlanta-Sandy Springs-Alpharetta, GA (CBSA 12060, 2024 RPP All Items = 95.5). The salary-parity calculation is:

$100,000 × (95.5 / 116.4) = $82,045

That means your existing $100,000 in San Francisco buys roughly the same blended basket of goods, services, and rents as $82,045 would in Atlanta. The reverse is also useful for relocation negotiation: an offer of $82,045 in Atlanta is equivalent in purchasing power to your current San Francisco salary on the BEA basket. This calculation does not adjust for state income tax (California 9.3% marginal vs. Georgia 5.39% flat as of 2024), federal payroll considerations, or housing-type differences (RPP uses average rent of all unit sizes — your specific 2-bedroom apartment may diverge). Always pair this with a tax-aware net-pay comparison for relocation decisions.

Data Accuracy Commitment

PlainCost presents BEA data without modification. RPP values, historical time series, and salary equivalent calculations are computed directly from published BEA figures using documented formulas. We do not interpolate data for years or geographies where BEA has not published values. If you find any data that appears incorrect, please contact us at hello@plaincost.com.

Limitations

  • RPPs are annual averages — they do not reflect seasonal variation in prices.
  • RPPs measure price levels relative to the national average, not absolute cost of living. A score of 100 does not mean living is "cheap."
  • Individual spending patterns may differ significantly from the BEA's basket of goods.
  • PlainCost is not affiliated with the Bureau of Economic Analysis or any government agency.