housing-market-research
Compare US housing markets through Crawlora's historical housing dataset and Redfin tools. Use for city, metro, county, or ZIP-code comparisons of prices, inventory, sales activity, time on market, and explicitly qualified affordability trends.Housing market research
Compare defined markets over comparable periods. Keep market aggregates separate from individual property valuations and personalized financing decisions.
Setup
Set CRAWLORA_API_KEY to your key from crawlora.net.
Run the bundled scripts/crawlora.sh from this skill directory or by absolute
path. It sends x-api-key to https://api.crawlora.net/api/v1; keep the key in
the environment. Read reference/endpoints.md for
dataset discovery/history and optional live Redfin context.
Build a comparable market panel
- Define geography level, candidate places, property type, period, and decision.
Dataset
region_typeacceptsnational,metro,county,city, orzip. Use/datasets/housing-markets/facetsand/searchunder the same prefix to resolve exact regions andtable_id; names and ZIP codes are not table IDs. - Start with
latest=true, a single region level, and a single property type. Latest is per series, so compare returnedperiod_beginANDperiod_end. Select a common period if series differ. A monthly observation can summarize a longer rolling window; do not call every row one month's transactions. - Retrieve
/datasets/housing-markets/items/{region_type}/{table_id}withhistory=trueand the sameproperty_typefor the stored chronological series. Keep gaps, window lengths, and revisions visible. Use matched periods for YoY comparisons; overlapping windows are not independent observations. - Compare median sale/list prices, inventory, homes sold, and median days on
market where populated. MoM/YoY fields are fractions:
0.05means +5%. Preserve nulls; a thin market or unmatched metric is not a measured zero. - Treat affordability as a modeled comparison. Retain
income_vintage,income_geo_id, andmortgage_rate_pct. Check the income geography actually matches the intended comparison; unavailable or broader-area income cannot establish precise neighborhood affordability. The dataset's salary estimate assumes 20% down, a 30-year fixed mortgage, 1.5% annual taxes/insurance, and a 28% payment-to-income ratio. Disclose these assumptions and the income lag. - If requested, supplement with
/redfin/search?location=...or live regional trends. These use numericregion_typeandregion_idvalues resolved by the live search response; dataset string types/table IDs are not a drop-in substitute. Live listings and historical market aggregates have different populations and dates; do not blend them into a single unlabeled statistic. Live trends can be display strings such as$1.2Mor+5%; they are not the dataset's numeric dollars and fractional change fields.
scripts/crawlora.sh /datasets/housing-markets/search \
region_type=city state_code=TX latest=true \
'property_type=Single Family Residential' page_size=5
# Resolve table_id before requesting history for the same region/property type.
Deliverable and interpretation
Return a comparison table and, when helpful, time-series charts with region, property type, full measurement window, units, sample/activity counts, source, collection time, and missing-data notes. Explain tradeoffs against the user's criteria. Link the Redfin source and methodology alongside record provenance.
- Do not average ZIP/city medians to obtain a metro median, sum overlapping geographies, or sum overlapping rolling-window sales counts.
- A change in median price can reflect the mix of homes sold. It is not the appreciation rate of a fixed property. Low transaction counts weaken comparisons.
- Median-income affordability is not an individual's mortgage qualification or monthly budget. Keep custom scenarios and assumptions separate from returned data.
- Bound dataset pagination to
page_size<=100and 10,000 results. A404item can mean an absent region/period/property-type combination. Back off on429, retry transient5xxonce, stop on401/403, and check applicationcode.