How the OfferBacked heat score works
A plain-English look at the numbers behind our market pages: what we measure, how we combine it, where the data comes from and how often it changes.
The heat score ranks how competitive each ZIP code is compared with the other ZIP codes we track, on a scale of 0 to 100. It combines four measures of competition from recent home sales. It describes what already happened; it doesn’t predict prices or tell you when to buy.
The four inputs
| Measure | Weight | Direction | What it means |
|---|---|---|---|
| Share sold above original list | 35% | Higher is hotter | The share of homes that sold for more than the price they were first listed at. Using the original list price means a home that was cut and then sold near its reduced price doesn’t count as a bidding war. |
| Average sale-to-list ratio | 25% | Higher is hotter | Sale price divided by list price, averaged across sales. 103% means homes sold for 3% over list on average. |
| Months of supply | 20% | Lower is hotter | How long it would take to sell every home currently for sale at the recent pace of sales, if no new homes were listed. |
| Median days on market | 20% | Lower is hotter | How long the typical home was listed before going under contract. |
How the score is calculated
- For each ZIP code, we take the four measures for the latest 3-month period.
- For each measure, we find where the ZIP code falls among all the ZIP codes we track for that same period, as a percentile from 0 to 100. For months of supply and days on market, lower values count as hotter.
- We combine the four percentiles using the weights above. The result is the heat score.
- We rank each ZIP code within its own area and across all the markets we track.
Because the score is relative, it answers “how does this ZIP code compare with the others we cover?” Every area we track is in a large, competitive metro, so a score of 50 means typical for these markets, not typical for the country.
When a ZIP code isn’t ranked
A ZIP code needs at least 15 home sales in the 3-month period to get a score. With fewer sales, one or two unusual deals can swing the numbers too much to compare fairly. ZIP codes with missing or implausible values are also left out that month. Their market pages still show the underlying numbers, marked as not ranked.
Seller’s, balanced and buyer’s markets
Separately from the heat score, each market page shows a label based on months of supply, the standard measure most agents use: under 4 months is a seller’s market, 4 to 6 months is balanced, and more than 6 months is a buyer’s market.
Where the data comes from
- Home sales data: Redfin Data Center, Housing Market Tracker. ZIP code figures cover rolling 3-month periods and update monthly (latest period ends August 31, 2026). Metro figures cover rolling 4-week periods and update weekly (latest ends September 20, 2026).
- ZIP code to county: U.S. Census Bureau 2020 ZIP Code Tabulation Area relationship files.
- Town names for ZIP codes: GeoNames, used under the Creative Commons Attribution 4.0 license.
Redfin revises recent figures as late sales records arrive, so the latest month can change slightly. We re-import the data on a schedule and update scores when it changes.
Areas we cover
- Essex, Morris, Union, Sussex & Hunterdon, NJ
- Bergen, Hudson & Passaic, NJ
- Middlesex, Monmouth, Ocean & Somerset, NJ
- Nassau & Suffolk counties, NY
- San Francisco & San Mateo, CA
- Santa Clara & San Benito counties, CA
Latest period: 531 of 689 ZIP codes had enough sales to be ranked.
Quality checks
Before any new data reaches the site, we check that it downloaded completely, that it’s recent, that every area we cover is present, and that no ZIP code jumped by an implausible amount from one period to the next. If anything looks wrong, nothing is published until a person reviews it.
What the heat score is not
- It isn’t a forecast. It describes recent sales, not future prices.
- It isn’t advice about a specific home. Two houses in the same ZIP code can draw very different interest.
- It describes housing activity only. It doesn’t use or reflect information about the people who live in an area.
Questions or a correction? Contact us.