How LocalAlpha Works
Our methodology combines 9 government & market data sources (plus a derived metrics layer) into a composite Alpha Score — a single 0-100 indicator of real estate market strength. Each score is built from five weighted dimensions that capture price trends, supply dynamics, affordability, economic health, and rental potential.
The Alpha Score
The Alpha Score is a composite 0-100 index computed for every geography in our database — metros, counties, ZIP codes, and cities. It answers a simple question: how strong is this real estate market right now?
Higher scores indicate stronger seller conditions: rising prices, tight inventory, good affordability relative to incomes, a healthy job market, and solid rental yields. Lower scores indicate buyer-friendly conditions.
The score is weighted across five dimensions. Each dimension is itself a composite of multiple metrics, normalized to percentile ranks within the same geography level (metro vs metro, ZIP vs ZIP) to ensure fair comparisons.
When a dimension has no data for a geography, it defaults to 50 (neutral). ZIP and city-level geographies inherit Economic Strength and Rental Yield from their parent metro when local data is unavailable. Each market page shows a data-coverage indicator (High / Medium / Low) so you can see how much of a score rests on local vs. inherited vs. defaulted data.
Why these weights?
The weights are deliberate judgment calls, not statistically optimized — there is no single “true” weighting for market strength, so we chose values that reflect what moves a local market in practice and stated them openly rather than hiding them in a black box:
- Inventory Health (25%) — the heaviest weight: supply tightness is the most direct, fastest-moving driver of price pressure.
- Price Momentum, Affordability, Economic Strength (20% each) — co-equal core drivers: where prices have been going, whether incomes can sustain them, and whether the local job market backs demand.
- Rental Yield (15%) — the lightest weight: it matters most to investors specifically, so it informs the score without dominating it.
We publish the weights so they can be scrutinized and challenged. They may be re-tuned as we validate against outcomes; any change is versioned in our migrations.
Score Dimensions
Price Momentum
20% weightMeasures how quickly home prices are rising or falling. Combines median sale price year-over-year change, sale-to-list ratio, FHFA House Price Index trends, and price drops percentage.
Component Metrics
Inverted metrics contribute negatively — a higher raw value results in a lower dimension score.
Inventory Health
25% weightAssesses supply-side dynamics. Lower supply signals a tighter market, which typically favors sellers. Includes months of supply, active listing changes, new listing trends, and building permits.
Component Metrics
Inverted metrics contribute negatively — a higher raw value results in a lower dimension score.
Affordability
20% weightGauges whether home prices are sustainable relative to local incomes. Markets with better affordability tend to attract more buyers and sustain longer growth cycles.
Component Metrics
Inverted metrics contribute negatively — a higher raw value results in a lower dimension score.
Economic Strength
20% weightEvaluates the local job market and wage growth. Strong economies drive housing demand through employment stability and rising incomes.
Component Metrics
Inverted metrics contribute negatively — a higher raw value results in a lower dimension score.
Rental Yield
15% weightMeasures the income potential of investment properties. Higher yields attract investors, which can accelerate price appreciation in emerging markets.
Component Metrics
Inverted metrics contribute negatively — a higher raw value results in a lower dimension score.
Going Deeper on the Alpha Score
The Alpha Score tells you what a market scores today. The deeper read tells you why, where it's headed (Market Phase), and how it compares. Computed nightly after the Alpha Score refresh and stored per geography inapp.market_intelligence.
Score Breakdown
Decomposes the overall Alpha Score into per-dimension contributions:contribution = dimension_score × weight. The shown bar widths and totals match the official weights below: Price Momentum 20%, Inventory Health 25%, Affordability 20%, Economic Strength 20%, Rental Yield 15%.
MMI — Momentum Index
Score deltas at three lookback windows:mmi_1mo,mmi_3mo,mmi_12mo, computed ascurrent_score − prior_score. Positive = score rose; negative = fell. Lookback windows are matched to the nearest available alpha-score period within ±15 days.
Lifecycle Phase
Each market is classified into one of six phases. The primary path combines alpha score level with 3-month and 12-month MMI; when MMI is unavailable (sparse history), a score-only fallback classifies the market with a lower confidence rating so the UI can surface that uncertainty.
MMI-informed path
- Emerging — low score (< 50) with strong 12mo rise (≥ +3)
- Growing — mid score (50–62) rising (12mo > +1), OR high score (≥ 62) still rising more than +2
- Mature — high score (≥ 62) with flat 12mo MMI (−2 to +2), or mid/low score with mild MMI signal
- Peaking — high score (≥ 62) softening (12mo < −2)
- Declining — mid score (50–62) with 12mo MMI ≤ −3, or low score (< 50) with continued decline
- Recovering — low score (< 50) with recent 3mo rebound (≥ +2)
Score-only fallback (when MMI unavailable)
- Mature — score ≥ 62
- Growing — score 50–62
- Declining — score 38–50
- Recovering — score < 38
Confidence: 90 when 3mo and 12mo MMI agree direction; 70 when one window is missing or they mildly disagree; 50 when they disagree and diverge; 40 on the score-only fallback path; null when even the score is missing.
Migration Score
County-level only for now. Computed by percentile-ranking each county'snet_migrationmetric (from IRS SOI county-to-county migration data) within all counties. Score is 0–100; 50 is the median county. Higher = more net inflow. Non-county geographies inherit a NULL score until pair-wise flow integration is built.
Anomaly Flags
Primitive (MMI-only)
- distress — score collapsed in the last 3 months (mmi_3mo ≤ −15)
- rapid_acceleration — score jumped in the last 3 months (mmi_3mo ≥ +15)
- inflection — 3mo and 12mo MMI disagree in direction by more than 5 each (a turning point)
Composite (cross-dimension)
- speculation — Price Momentum ≥ 75 AND Inventory Health ≥ 75 AND Economic Strength ≤ 45. Tight prices + tight inventory + weak local economy = demand outrunning fundamentals.
- oversupply — Inventory Health ≤ 25 AND Price Momentum ≤ 35. Bottom-quartile supply tightness combined with weak price momentum = market likely to keep softening.
- gentrification — Net Migration Score ≥ 70 AND Price Momentum ≥ 55 AND 3-month rental-yield MMI ≤ −3. High in-migration + climbing prices + rents not keeping pace = buyers pricing locals out. County-level only (IRS SOI scope).
Similar Markets — “Markets like this”#
The “Markets like this” panel on each market detail page surfaces the 10 most-similar geographies. Similarity is measured by Euclidean distance across the 5 alpha-score dimensions (Price Momentum, Inventory Health, Affordability, Economic Strength, Rental Yield), normalized to a 0–100 percentage where 100 means “identical score profile” and 0 means “score profile at opposite extremes”.
similarity = 100 × (1 − distance / √50000)
To prevent superficial score matches between fundamentally different markets, comparable candidates must also pass two anchor filters computed per geography level:
- Same geography level — metros only match other metros, counties to counties, ZIPs to ZIPs, cities to cities.
- ±1 quintile by median sale price — each level's geographies are split into 5 price quintiles; candidates must be within one quintile of the target.
- ±1 quintile by population — same logic for total population (Census ACS). Geographies without population data (rare at metro/county level) skip this anchor only.
Comparables are recomputed weekly (Sundays 09:00 UTC) — geography fundamentals don't shift week-to-week, so a daily recompute would be wasted machinery.
All four geography levels use the full five-dimension signal — metro comparables reflect price and inventory dynamics the same way county and ZIP comparables do.
Map overlay — Lifecycle Phase#
The “Lifecycle Phase” overlay on /explore colors every polygon by its current lifecycle classification (see the “Going Deeper” section above for the threshold rules). Six phases, six colors — same palette as the Market Phase element on each market page so the visual vocabulary is consistent.
- Emerging
- Growing
- Mature
- Peaking
- Declining
- Recovering
Geographies without an intelligence row yet (pre-nightly-run, or no recent alpha score) render as muted gray. Coverage expands as the nightly transform chain processes new data.
Persona-tuned scores & custom formulas#
The canonical Alpha Score weights the five dimensions for a balanced view. Different investors care about different things, so LocalAlpha also computes two preset persona variants — the same Alpha Score, re-weighted for your strategy — and lets power users define their own. Whichever view you pick, the canonical score is always shown alongside for comparison.
| Variant | PM | IH | AF | ES | RY | Built for |
|---|---|---|---|---|---|---|
| Canonical | 20 | 25 | 20 | 20 | 15 | Balanced default |
| Flipper | 35 | 30 | 10 | 10 | 15 | Velocity + tight inventory for fast resale |
| Buy-and-Hold | 10 | 15 | 15 | 25 | 35 | Rental yield + economic strength |
PM = Price Momentum, IH = Inventory Health, AF = Affordability, ES = Economic Strength, RY = Rental Yield. Weights are percentages; each row sums to 100.
Custom formulas: define your own weights (up to three saved formulas) under Settings → Scoring. Weights must sum to 100%. Preset variants are precomputed nightly and stored on every market; custom formulas are evaluated live from each market's stored dimension scores when you view them, so a new formula takes effect immediately across the whole site. Land Alpha is a separate scoring system and is not affected by these personas.
Market briefs#
The “Market Brief” card on each market page is a short plain-English summary of what the Score Breakdown and Market Phase are showing — designed so a quick read can substitute for working through every metric individually.
Briefs are refreshed regularly and re-written sooner whenever a market's Alpha Score moves materially. Every brief is reviewed before it's published, and the date it was last refreshed is shown on the card.
Market Temperature
Each geography is classified into a temperature category based on its Alpha Score. Temperature provides a quick, intuitive read on market conditions.
| Score Range | Label | What It Means |
|---|---|---|
| 75 - 100 | Hot Seller's | Extreme seller advantage. Prices rising fast, very low inventory, homes sell quickly above list price. High competition among buyers. |
| 60 - 74 | Seller's | Moderate seller advantage. Healthy price growth, below-average inventory, properties sell near or above list price. |
| 40 - 59 | Balanced | Neither buyers nor sellers have a clear advantage. Prices are stable, inventory is adequate, and homes sell near list price. |
| 25 - 39 | Buyer's | Moderate buyer advantage. Rising inventory, slowing price growth, and longer days on market give buyers negotiating power. |
| 0 - 24 | Deep Buyer's | Strong buyer advantage. Significant inventory surplus, declining prices, and extended time on market. Maximum negotiating leverage for buyers. |
Where the thresholds come from
The temperature cutoffs (75 / 60 / 40 / 25) split the 0-100 score into a balanced middle band (40-59) with progressively hotter seller and cooler buyer bands on either side. Our signal thresholds follow established real-estate conventions where they exist — months-of-supply under 2 is a tight seller’s market and over 6 a buyer’s market (the long-standing ~6-month balance point); year-over-year price moves beyond +10% / −5% flag acceleration / deceleration; an affordability alert fires above the 90th percentile of the price-to-income distribution. These are interpretive bands chosen for clarity, published so they can be checked, and versioned in our migrations if re-tuned.
Data Sources
All data comes from publicly available government and real estate data sources. No proprietary or paywalled data is used.
| Source | Metrics | Coverage | Frequency |
|---|---|---|---|
| Redfin Data Center | Sale price, list price, DOM, inventory, months of supply, sale-to-list, new listings, homes sold, pending sales | Metro, County, ZIP, City | Refreshed weekly; monthly periods (metro/county/city), quarterly periods (ZIP) |
| Bureau of Labor Statistics | Unemployment rate, employment level | Metro, County | Monthly |
| U.S. Census Bureau ACS | Home value, rent, income, population, housing units, vacancy | Metro, County, ZIP (ZCTA) | Annual (ACS 5-year) |
| Federal Reserve Economic Data (FRED) | Active listings, DOM, list price, new listings, mortgage rates, housing starts | Metro, National | Monthly / Weekly |
| Federal Housing Finance Agency HPI | House Price Index (HPI), HPI YoY change | Metro, County, ZIP | Quarterly (MSA), Annual (county/ZIP) |
| HUD Fair Market Rents | Fair Market Rent (efficiency through 4BR) | County, ZIP | Annual (fiscal year) |
| BLS Quarterly Census of Employment and Wages | Average weekly wage, total employment, establishment count | County | Quarterly |
| IRS Statistics of Income Migration Data | Net migration, migration AGI flows | County | Annual (1-2 year lag) |
| Census Building Permits Survey | Total permits, single-family, multi-family | County | Monthly |
| Redfin Land (CSV Download) | Land listings: price, lot acres, DOM, status, sold date, address, coordinates | County (~3,131) | Weekly (CSV download per county) |
| LocalAlpha (computed) | Price-to-income ratio, rental yield, mortgage burden, vacancy rate, job/wage/rent growth, months of supply, development demand index | Varies (computed from other sources) | Computed on each pipeline run |
Metric Reference
Complete list of metrics tracked across all geographies.
| Metric | Description | Source | Levels | Alpha Score Role |
|---|---|---|---|---|
| Median Sale Price | Median closed sale price for all residential properties | Redfin | All | Price Momentum |
| Median List Price | Median active listing price | Redfin | All | Reference |
| Median Price/SqFt | Median sale price per square foot | Redfin | All | Reference |
| Days on Market | Median days from listing to pending | Redfin | All | Reference |
| Active Inventory | Number of active listings | Redfin | All | Inventory Health (inverted) |
| New Listings | Count of newly listed homes in the period | Redfin | All | Inventory Health (inverted) |
| Homes Sold | Number of closed sales | Redfin | All | Reference |
| Months of Supply | Active inventory divided by monthly sales rate | Derived | All | Inventory Health (inverted) |
| Sale-to-List Ratio | Average sale price / list price (>1 = above list) | Redfin | All | Price Momentum |
| Price Drops % | Percentage of listings with price reductions | Redfin | All | Price Momentum (inverted) |
| House Price Index | FHFA repeat-sales price index | FHFA | Metro, County, ZIP | Price Momentum |
| Building Permits | Total new residential building permits issued | Census | County | Inventory Health |
| Unemployment Rate | Local area unemployment rate | BLS | Metro, County | Economic Strength (inverted) |
| Job Growth YoY | Year-over-year employment change | Derived | Metro, County | Economic Strength |
| Avg Weekly Wage | Average weekly wages from QCEW | QCEW | County | Economic Strength |
| Wage Growth YoY | Year-over-year average hourly earnings change | Derived | Metro, County | Economic Strength |
| Price-to-Income Ratio | Home value / median household income | Derived | Metro, County, ZIP | Affordability (inverted) |
| Mortgage Burden | Estimated monthly mortgage as % of income | Derived | Metro, County, ZIP | Affordability (inverted) |
| Gross Rental Yield | (Annual rent / home value) x 100 | Derived | Metro, County, ZIP | Rental Yield |
| Rent Growth YoY | Year-over-year median gross rent change | Derived | Metro, County, ZIP | Rental Yield |
| Fair Market Rent (2BR) | HUD-determined fair market rent for a 2-bedroom unit | HUD | County, ZIP | Reference |
| Net Migration | Net inbound vs outbound tax filers | IRS SOI | County | Reference |
| Vacancy Rate | Vacant housing units / total housing units | Derived | Metro, County, ZIP | Reference |
| Population | Total population from ACS estimates | Census | Metro, County, ZIP | Reference |
| Income to Afford | Annual income to keep the median-home mortgage at 28% of income (estimate) | Derived (Census + FRED) | Metro, County, ZIP | Market Context |
| Price-to-Rent Ratio | Median home value / annual rent | Derived (Census) | Metro, County, ZIP | Market Context |
| Rent as % of Income | Annual rent as a share of median household income | Derived (Census) | Metro, County, ZIP | Market Context |
| Homeownership Rate | Owner-occupied units / total housing units | Derived (Census) | Metro, County, ZIP | Market Context |
| Inventory as % of Homes | Active for-sale listings / total housing units | Derived (Redfin + Census) | Metro, County, ZIP | Market Context |
| Population Growth (YoY) | Year-over-year change in total population | Derived (Census) | Metro, County, ZIP | Market Context |
| Income Growth (YoY) | Year-over-year change in median household income | Derived (Census) | Metro, County, ZIP | Market Context |
| 5-Year Price Growth | Median sale price change vs. roughly five years prior | Derived (Redfin) | All | Market Context |
| Change from Peak | Median sale price vs. its all-time high for the market | Derived (Redfin) | All | Market Context |
Property Type Filtering
Redfin data is published for five property type categories. By default, all metrics and Alpha Scores use “All Residential” data. You can filter Redfin-sourced metrics by specific property types on market detail pages and on the Explore map when a Redfin metric overlay is active.
| Type | Description |
|---|---|
| All Residential | Combined data across all property types. Used for Alpha Scores and as the default view. |
| Single Family | Detached single-family residential homes. |
| Condo/Co-op | Condominiums and cooperative housing units. |
| Townhouse | Attached townhouse-style residences. |
| Multi-Family (2-4) | Small multi-family properties with 2 to 4 units. |
Important Notes
- • Alpha Scores always use “All Residential” data because non-Redfin sources (BLS, Census, FHFA, etc.) do not have property type variants.
- • Year-over-year change data is not available when viewing a specific property type, as these are queried directly from staging data.
- • Property type filtering is available for Redfin metrics: Median Sale Price, Days on Market, Months of Supply, and Sale-to-List Ratio on the map overlay.
Geographic Coverage
LocalAlpha tracks ~52,000 geographies across four levels. Data coverage varies by source — Redfin provides the broadest coverage while BLS and QCEW are limited to metro and county levels.
| Level | Count | Notes |
|---|---|---|
| Metro (CBSA) | ~982 | Core-Based Statistical Areas — metro regions defined by the Census Bureau. Highest data coverage across all sources. |
| County | ~3,087 | All US counties with FIPS codes. Full coverage for Redfin, BLS, Census, QCEW, IRS SOI, and Building Permits. |
| ZIP Code | ~24,638 | ZIP codes matched to Census ZCTAs. Redfin data is quarterly (90-day periods). 93% linked to parent county, 84% to parent metro for dimension inheritance. |
| City | ~23,421 | City-level geographies from Redfin data. Currently limited to Redfin metrics only. 91% linked to parent county, 85% to parent metro. |
Geographic Hierarchy Inheritance
93% of ZIP codes and 91% of cities are linked to a parent county via Census ZCTA-County relationships and spatial matching. 84% of ZIPs and 85% of cities are also linked to a parent metro. When a ZIP or city lacks local data for Economic Strength or Rental Yield dimensions, the score is first inherited from the parent county (99% ES coverage), then from the parent metro if county data is unavailable, ensuring every geography has the most complete Alpha Score possible.
Land Alpha Score
The Land Alpha Score is a separate 0-100 index designed specifically for vacant land investors. It evaluates county-level land markets across 8 acre tiers (<1, 1-2, 2-5, 5-10, 10-20, 20-40, 40-100, 100+ acres) to surface counties with active, liquid land markets that are favorable for buying and reselling vacant lots.
Unlike the residential Alpha Score which tracks price appreciation and seller advantage, the Land Alpha Score focuses on market velocity, sell-through rate, and price accessibility — the metrics that matter most for land flipping investors.
Counties with fewer than 3 active listings in a tier receive no score (insufficient data). When some dimensions lack data, weights are redistributed proportionally among the remaining dimensions.
Based on median days on market (DOM). Faster-selling markets score higher. 100 at DOM=30, 50 at DOM=105, 0 at DOM=180.
Average of 3-month and 12-month sell-through rates (sold / active). Markets where listings actually sell score higher.
Bell-curve scoring favoring 25-300 active listings. Too few listings means unreliable data; too many means saturated competition.
Based on pending rate (pending / active). Higher pending rates indicate strong buyer demand absorbing available inventory.
Peak score at $20K-$60K median price (the land flipping sweet spot). Decays linearly below $5K and above $200K.
Data Source
Land data is sourced from Redfin CSV downloads — one request per county for active/pending listings and one for sold listings (past 12 months). Data refreshes weekly. Redfin caps downloads at ~350 listings; counties that hit this limit are flagged with a data quality indicator in the UI.
Acre Tiers
Metrics are computed independently for each tier, so a county can score well for 5-10 acre lots but poorly for 100+ acre parcels.
Score Tiers
Land Pulse
The Land Pulse dashboard at /land/pulse provides national-level analytics across all scored land counties. It includes national summary statistics, a sortable state leaderboard, a score distribution histogram, and a hot county spotlight showing the top-scoring counties with key metrics.
When viewing “All Tiers”, the dashboard uses each county's best score across all acre tiers (MAX, not average). This answers the question “how many counties have at least one investable tier?”
Per-Tier Watchlists
You can watch specific county + acre tier combinations (e.g., “5-10 acres in Warren County NC”) from the county detail drawer. Each tier watch is independent — watching a county for one tier does not affect other tiers. Per-tier watches show the land score on your dashboard and settings page.
Parcel Data Pipeline
The parcel data pipeline aggregates 40+ million publicly available county assessor records from statewide GIS portals across 20 states (WI, ME, TX, FL, MT, NC, UT, CO, NJ, MD, VT, ND, IN, OH, VA, CT, MA, NY, MN, AR) covering 630+ counties, providing parcel-level data including owner names, mailing addresses, acreage, assessed values, land use, and tax status. This enables land investors to go from “this county looks hot” to a mail-ready prospect list without leaving the platform.
| State | Source | Format | Est. Records |
|---|---|---|---|
| Texas | TxGIO StratMap 2025 ArcGIS | REST API | 12.2M |
| Florida | FDOR Cadastral 2025 ArcGIS | REST API | 10.5M |
| Wisconsin | WI Statewide Parcel Map V11 (SCO) | GDB | 3.3M |
| N. Carolina | NC OneMap ArcGIS | REST API | 5.7M |
| Wisconsin | WI Statewide Parcel Map V11 (SCO) | GDB | 3.3M |
| New Jersey | NJGIN Cadastral ArcGIS | REST API | 3.1M |
| Maryland | MD iMAP PropertyData ArcGIS | REST API | 2.4M |
| Utah | SGID ArcGIS | REST API | 1.4M |
| Montana | MT Cadastral Framework | GDB | 885K |
| Maine | Maine GeoLibrary | GDB | 651K |
| Colorado | CO Public Parcels ArcGIS | REST API | ~2.5M |
Non-Spatial Cleanup
Raw parcel records are automatically cleaned using tabular rules: exempt properties (government, churches, schools, hospitals) and commercial/industrial parcels are removed. Parcels with significant improvements (improvement value > $50K) are flagged. Tax delinquent parcels and parcels with structures are tagged for filtering. Land use codes are normalized across states into categories: vacant land, agricultural, residential, commercial, exempt, and other.
Refresh Cadence
Parcel data is refreshed quarterly (1st of January, April, July, and October). Each refresh downloads the latest statewide dataset and incrementally updates the parcel records.
Data Usage & Compliance
All parcel data is sourced from publicly available government records. It is provided for marketing and informational purposes only and is not a consumer report under the Fair Credit Reporting Act. Property owners may request removal from marketing lists via the acceptable use policy page. See the full policy for permitted and prohibited uses.
Update Schedule & Freshness
Data freshness varies by source. Redfin and BLS update monthly, while Census data is annual. The transform pipeline runs automatically after each data fetch.
| Source | Update Cadence |
|---|---|
| Redfin | Weekly bulk downloads (monthly/quarterly data) |
| BLS LAUS | Monthly |
| FRED | Monthly (housing), Weekly (mortgage rates) |
| Census ACS | Annual (5-year estimates) |
| FHFA HPI | Quarterly (MSA), Annual (county/ZIP) |
| HUD FMR | Annual (fiscal year) |
| QCEW | Quarterly |
| IRS SOI | Annual (1-2 year lag) |
| Building Permits | Monthly |
| Parcels (20 states) | Quarterly |
Current Data Freshness
Transform Pipeline
After new data arrives: Raw events → Market metrics (with YoY changes and percentile ranks) → Derived metrics (cross-source ratios) → Alpha Scores (5-dimension weighted composite) → Signals (threshold-crossing alerts). Each step is incremental, processing only new data since the last run.