Home value trend queries - "home values [city] [state]", "is [city] a good place to buy a home", "[city] real estate market 2026" - represent some of the highest-traffic opportunities in local real estate content. These queries attract buyers, sellers, investors, and renters at every stage of a decision cycle. The person searching "home values Austin TX" might be deciding whether to make an offer, whether to list their home, or whether to relocate. The intent is always high and the audience is valuable.
The problem is that most pages targeting these queries rely on Zillow or Redfin data - estimates that are proprietary, not licensable for content use, and change in ways that can make your page inaccurate overnight. The FHFA House Price Index is the most authoritative government source for this data. It is published by a federal agency, carries official weight, updates quarterly, and is completely free to use. Most publishers ignore it because it requires some data work to parse and apply. That is the opportunity.
This guide covers everything you need to pull FHFA HPI data, calculate meaningful metrics, map it to city-level pages, and build a quarterly update workflow that keeps your content current.
What Is the FHFA House Price Index?
The FHFA House Price Index measures average price changes in repeat sales or refinancings on the same single-family properties. This is a critical distinction from median sale price data. When the median sale price in a market rises, that could be because prices genuinely increased - or it could be because more expensive homes sold that quarter while fewer entry-level homes changed hands. Median price is affected by composition changes in which homes sell.
The HPI tracks the same properties over time. If a home sold in 2018 for $300,000 and sold again in 2024 for $420,000, the HPI captures that 40% appreciation. Composition effects do not distort it. This makes the HPI a cleaner signal of underlying price change in a market.
The index is expressed relative to a base period (set to 100). An index value of 287 means prices in that metro are 187% higher than at the base period. The absolute index number is not useful to readers, but the percentage change between two periods is extremely useful.
HPI Variants - Which One to Use
FHFA publishes two main HPI variants that matter for content:
- All-Transactions HPI - includes both purchase transactions and refinancings. Broader coverage because refinancing appraisals are included. More metros covered. Use this for content because the wider geographic coverage means fewer data gaps in your city list.
- Purchase-Only HPI - includes only arm's-length purchase transactions. More accurate as a price signal because refinancing appraisals can reflect the appraiser's opinion rather than a market transaction. Narrower coverage.
For programmatic content at scale, use All-Transactions. The coverage advantage outweighs the precision difference for content purposes - and you can note the data source clearly so readers understand the methodology.
Downloading and Parsing FHFA Data
Unlike BLS or Census, FHFA does not have a live REST API. Data is distributed as CSV downloads at fhfa.gov. This is actually convenient for a programmatic content workflow - you download once, parse into a database, and query locally. No rate limits, no API key management, no pagination logic.
Key Files to Download
| Filename | Coverage | Use For |
|---|---|---|
| HPI_AT_metro.csv | Metro-level quarterly, all-transactions | Primary source for city pages mapped to MSAs |
| HPI_AT_state.csv | State-level quarterly, all-transactions | Fallback for cities not in covered MSAs |
| HPI_master.csv | All geographies, all variants | Single-file alternative if you prefer one import |
CSV Column Structure
The metro-level HPI CSV uses the following column structure:
hpi_type | "traditional" for standard repeat-sales
hpi_flavor | "all_transactions" or "purchase_only"
frequency | "quarterly" or "annual"
level | "MSA" or "Divisions"
place_name | Metro name, e.g. "Denver-Aurora-Lakewood, CO"
place_id | CBSA code, e.g. "19740"
yr | Year as integer, e.g. 2024
period | Quarter as integer 1-4
index_nsa | Not-seasonally-adjusted index value
index_sa | Seasonally-adjusted index value
Parse this into a database table indexed on (place_id, yr, period) for fast lookups. A full metro-level all-transactions CSV contains roughly 130,000 rows covering 580+ MSAs across multiple decades - small enough to load into SQLite or a flat JSON object in memory.
Calculating Year-Over-Year and 5-Year Appreciation
The raw index value means nothing to a reader without context. The two metrics that convert well to content are year-over-year percentage change and 5-year cumulative appreciation. Both are simple calculations once you have the index values in a database.
// Year-over-year (same quarter, prior year)
yoy_pct = (index_2024_Q3 - index_2023_Q3) / index_2023_Q3 * 100
// 5-year cumulative appreciation
five_yr_pct = (index_2024_Q3 - index_2019_Q3) / index_2019_Q3 * 100
// Always compare the same quarter across years (Q3 to Q3, not Q3 to Q1)
// Different quarters have different seasonal patterns
A concrete example using Austin-Round Rock, TX MSA data:
| Metric | Value | Calculation |
|---|---|---|
| Index Q3 2019 | 287.43 | Base period value |
| Index Q3 2023 | 375.90 | - |
| Index Q3 2024 | 398.17 | Latest value |
| YoY appreciation (2023-2024) | +5.9% | (398.17 - 375.90) / 375.90 * 100 |
| 5-year appreciation (2019-2024) | +38.5% | (398.17 - 287.43) / 287.43 * 100 |
The 38.5% figure is meaningful and shareable. "Austin home values have risen 38.5% over the past 5 years" is a headline. "The FHFA HPI for Austin-Round Rock is 398.17" is not. Always surface the percentage change, not the raw index.
Handling Negative Appreciation
Some metros will show negative YoY figures in any given quarter. Do not suppress or adjust these. Negative appreciation data is accurate, useful, and exactly what buyers want to know. A page that shows Austin values cooling -2.1% YoY in a particular period is more credible than one that only shows positive trends. It also serves a different but valuable user - someone considering whether to wait to buy.
The Home Value Trend Page Template
The following H2 structure works well for both standalone metro-level pages and home value sections embedded within broader city guide pages.
Quick Answer Box
"[Metro] home values have [increased/decreased] [X]% over the past year and [Y]% over the past 5 years, per FHFA House Price Index data updated [Quarter Year]."
This box should be the first content element below the H1. It directly answers the search query. Mark it up as a FAQPage schema item with the question "What are home values doing in [Metro]?" to maximize SERP visibility.
Recommended H2 Structure
- [Metro] Home Price Index Trend - a table showing the last 8 quarters of HPI values with YoY percentage change for each. This is the core data table. Eight quarters gives two full years of context without overwhelming the reader.
- How [Metro] Compares to [State] and the National Average - a 3-way comparison table: metro YoY vs state YoY vs US YoY. Comparison context is what most readers actually want - they do not just want to know if their city went up, they want to know if it went up more or less than average.
- What Is Driving Home Values in [Metro]? - context section drawing on Census income data, population growth, local economic factors. This section requires LLM generation informed by real data inputs to be genuinely useful rather than generic filler.
- What the HPI Trend Means for Buyers and Sellers - practical interpretation. A market rising 8% YoY has different implications than one rising 1.5% YoY or falling 2%. Spell these out explicitly.
- [Metro] Home Value Outlook - frame carefully as "what the trend suggests" rather than a prediction. Never claim to forecast prices. Discuss the trend direction, any acceleration or deceleration in the quarterly data, and what similar historical patterns have meant for the market.
Combining HPI with Census Home Value Data
The FHFA HPI answers the question "how fast are prices changing?" but it does not answer "what are prices?" The index is relative, not absolute. To give readers an absolute dollar figure, combine HPI with Census ACS Table B25077 (median home value by geographic area).
Census B25077 is available at the state, county, city (place), and ZIP code level. It is updated annually via the American Community Survey. The combination formula:
// Census B25077 gives median home value for a geography
// FHFA HPI gives the appreciation rate for the containing MSA
// Estimate: apply MSA appreciation to Census median
census_vintage_year = 2022 // year of ACS estimate
current_year = 2024
// Get FHFA appreciation for the MSA from census vintage to current
fhfa_change = (index_2024_Q3 - index_2022_Q3) / index_2022_Q3
// Apply to Census median
estimated_current_median = census_b25077_value * (1 + fhfa_change)
// Disclose: "Estimated based on Census 2022 ACS median value
// adjusted for FHFA HPI appreciation through Q3 2024"
This produces a genuinely useful absolute estimate. The disclosure is important - you are combining two separate sources with different methodologies, and readers should understand that. The estimate will not match Zillow's Zestimate exactly, but it has the advantage of being based on government data with a clear, explainable methodology.
For ZIP-level pages, use the ZIP-level Census B25077 value (more granular) combined with the MSA-level FHFA HPI (the smallest geographic unit available). Acknowledge the geographic mismatch in the page content - it is a reasonable and common data combination.
Metro vs ZIP Level Coverage
FHFA metro data covers approximately 600 MSAs, but your content targets cities and ZIP codes. The mapping layer is the key technical piece that makes this work at scale.
Every US city and county belongs to an MSA (or a micropolitan statistical area, or neither - in which case it is considered rural). The Census Bureau publishes CBSA delineation files that map every county in the US to its MSA. Since cities exist within counties, you can chain: city -> county -> MSA.
The delineation files are available at census.gov/geographies/reference-files and are updated periodically when OMB revises MSA definitions. The current delineation file covers all counties in the US with their CBSA codes and CBSA titles.
Coverage Tiers
| City Type | FHFA Data Source | Coverage |
|---|---|---|
| Cities in covered MSAs (580+ metros) | MSA-level HPI_AT_metro.csv | ~85% of US population |
| Cities in uncovered MSAs / micropolitan areas | State-level HPI_AT_state.csv | All 50 states covered |
| Cities outside any MSA (rural) | State-level as fallback | Full coverage with disclosure |
Store the coverage tier in your content database alongside the HPI values. Use it to generate appropriate disclosure language on each page. A page for a small town in rural Wyoming is not going to have MSA-level data - using statewide Wyoming HPI data and disclosing that clearly is the correct approach.
Seasonal Adjustment Considerations
This is a detail that matters and that most content publishers get wrong. FHFA provides both not-seasonally-adjusted (NSA) and seasonally-adjusted (SA) index values. Choosing the wrong one for your comparison produces misleading figures.
Never compare Q4 NSA to Q2 NSA and call it a 6-month change. Real estate markets are highly seasonal - Q2 and Q3 are peak seasons with higher transaction volumes and typically higher prices. Comparing across quarters using NSA data will produce misleading figures that overstate or understate actual appreciation.
The correct rules:
- YoY comparisons - use NSA data, compare the same quarter (Q3 2024 vs Q3 2023). Same quarter, different years. NSA is appropriate here because seasonality cancels out.
- Quarter-over-quarter comparisons - use SA data only. If you want to show whether the market accelerated or slowed from Q2 to Q3 within the same year, you must use seasonally-adjusted figures to remove the seasonal effect.
- Trend tables - show NSA values alongside YoY percentage change. The absolute NSA values will show the seasonal pattern visually, which is itself informative for readers.
- 5-year comparisons - use NSA, compare the same quarter. Q3 2024 vs Q3 2019. This is the most defensible long-term comparison.
Document this decision in your content pipeline configuration so that future data updates automatically apply the same seasonal adjustment rules.
SEO Keyword Strategy for Home Value Pages
Home value pages target a cluster of related queries that share the same underlying data but have different phrasing patterns. Understanding which queries to target with which page type improves content efficiency.
Primary Target Keywords (per metro)
- "home values [city]" - highest volume, broadest intent
- "[city] real estate market [year]" - more specific, buyer/investor intent
- "is [city] a good place to buy a home" - decision intent, high commercial value
- "[city] home price appreciation" - research intent, slightly lower volume
- "how much have home values increased in [city]" - long-tail, high conversion intent
Why FHFA-Based Pages Outperform Competitors
Most existing home value pages for mid-size cities fall into three categories: outdated blog posts using stale Zillow screenshots, real estate agent sites with obvious commercial bias, and thin city profile pages that list a single number with no trend context. FHFA-based pages outperform these for three reasons:
- Government authority signal - citing a federal agency (FHFA) for price data carries more E-E-A-T weight than citing a private real estate platform with a commercial interest in inflating or deflating perceived values.
- Trend depth - a table of 8 quarters of data with YoY comparisons answers more questions than a single current-price figure. More questions answered means longer dwell time and lower bounce rate.
- Freshness system - quarterly updates with a visible "last updated" date signal to both users and crawlers that the page is actively maintained. Most competitor pages have a stale 2022 or 2023 date on them.
Updating Pages Quarterly
FHFA releases quarterly HPI updates approximately 6-8 weeks after the end of each quarter. The Q3 update (July-September) typically releases in November. The Q4 update releases in February. Build a quarterly update workflow rather than trying to update on an ad hoc basis.
Quarterly Update Workflow
- Download the latest HPI CSV files from fhfa.gov (check the release calendar - FHFA announces release dates in advance).
- Parse the new CSVs and compare new index values to the stored values in your database.
- Identify any metro where the latest period's index value changed by more than 0.5% from the prior quarter's value. These metros have meaningful news to report and should be queued for page regeneration.
- Regenerate the quick answer box, the HPI trend table, and the comparison table for queued metros. The narrative sections (drivers, outlook) may need LLM regeneration if the trend direction changed significantly.
- Update the
dateModifiedfield in the Article JSON-LD schema for all regenerated pages. This is what signals freshness to Google. - Commit all changes to your deployment pipeline with a note on the FHFA data vintage being used (e.g., "Q3 2025 FHFA HPI data").
A quarterly cycle means each page gets reviewed and updated 4 times per year. At scale, this is automated - the workflow runs when new CSVs are downloaded, and only pages with meaningful changes get regenerated. Pages in stable markets (index change less than 0.5% quarter-over-quarter) may not need content regeneration, but updating the data table is still worthwhile.
Tracking Data Vintage
Store the FHFA vintage (which quarterly release the data comes from) alongside each page's data in your CMS or database. Display it on the page: "Home price data from FHFA HPI, Q3 2025 release (published November 2025)." This level of transparency is unusual in the content space and builds reader trust - especially with the real estate audience, which is accustomed to vague or undated estimates from aggregator sites.
Homeowner.wiki automatically parses FHFA CSV uploads and maps metros to cities - generating home value trend sections for city guide pages and standalone home value pages. The platform handles the Census-to-MSA mapping, seasonal adjustment logic, and quarterly re-generation workflow automatically, so your pages stay current without manual intervention.
For the labor cost side of local content - roofing, remodeling, painting - see our guide on building local contractor cost guides with BLS labor data. Combining FHFA home value data with BLS cost data on the same city page creates a genuinely comprehensive local homeowner resource.
For a broader overview of all the government data sources available for this kind of content, our guide to the best free government APIs for local SEO content covers Census, NOAA, BLS, FHFA, and USDA in one place.
Generate Home Value Trend Pages for Every Metro in Your City List
Homeowner.wiki pulls FHFA HPI data, maps it to cities, and generates home value trend pages with quarterly update support. Join the waitlist for early access.
Join the Waitlist