Methodology / About
How LocalInflation Works
LocalInflation estimates changes in purchasing power using Consumer Price Index series published by the U.S. Bureau of Labor Statistics where available. For each location, the calculator compares index values across user-selected years and applies the ratio to the entered dollar amount.
For wage comparisons, LocalInflation compares nominal wage growth with inflation growth. The wage charts show wages with wage growth, wages if they had only kept pace with inflation, and year-over-year nominal wage growth versus the inflation rate.
Future Cost Index estimates are scenario-based projections using historical inflation trends. The baseline scenario uses the average annual inflation rate from the latest available 10-year window. The high scenario uses the highest of upper-percentile historical inflation, recent three-year inflation pressure, and a volatility premium above the baseline so the high case represents a genuinely higher-cost scenario. They are not predictions, financial advice, or guarantees.
Data Updates
The project is structured to update public economic data with Python scripts in the scripts folder. CPI data is designed to use the BLS Public Data API with an optional API key for higher limits. Wage data is structured separately so verified BLS/OEWS or related public wage series can be connected by metro.
A GitHub Actions workflow runs weekly and can also be triggered manually. It runs the data update scripts, writes generated JSON files, and commits any changed data. Pages then read from the static generated data files, which keeps the public site fast and Vercel-friendly.
Some locations use direct metro CPI where available. Other locations use regional proxy data because BLS does not publish a dedicated CPI series for every city. Proxy pages are labeled so readers can understand the data coverage.
Oil Price Inflation Simulator Methodology
LocalInflation reports oil-price effects in several layers because oil shocks can move through consumer prices at different speeds and through different channels. The simulator is designed for scenario analysis and historical pass-through context, not for guaranteed forecasts.
Direct gasoline channel: the narrowest calculation estimates gasoline's direct contribution to all-items CPI. It multiplies the oil-price change by an oil-to-gasoline pass-through assumption and gasoline's CPI basket weight. For example, a 100% oil-price increase with 50% pass-through implies a 50% gasoline-price increase. If gasoline is about 3% of CPI, that contributes about 1.5% to all-items CPI.
Stress and component scenario: the broader scenario adds direct energy channels and possible indirect pressure from airfares, freight, heating fuel, producer prices, food distribution, import prices, and inflation expectations. This range is nonlinear because severe oil shocks can create wider second-round pressure than small oil moves.
Calibrated duration model: this layer estimates cumulative CPI pressure while oil remains elevated. It adjusts for duration, shock persistence, pass-through assumptions, local oil exposure, CPI momentum, and oil volatility.
Historical models: the local projection and VAR scaffolds estimate historical pass-through patterns when enough monthly oil, gasoline, CPI, and macroeconomic data is available. These models help show how past oil shocks moved through CPI over 1, 3, 6, 12, 24, and 36 months.
Machine-learning model: the GBDT scaffold is intended to train nonlinear scenario estimates from historical oil, gasoline, CPI, PPI, labor-market, interest-rate, and macroeconomic features. Until trained data is available, the hand-coded tree model is labeled as an experimental prototype rather than a trained GBDT estimate.
All oil-price inflation outputs are scenario estimates or historical pass-through estimates. They are not forecasts, guarantees, investment advice, employment advice, legal advice, or policy advice. Historical relationships can change across inflation regimes, monetary policy environments, supply shocks, and geopolitical events.