search_spatial_data
Find a geography by name.
- Arguments
- query: string
- Returns
- Matching states, counties, and cities — each with its geoid, geo level, display label, and the metrics available for it.
- Example
- "Los Angeles" → 0644000 (place) · 06037 (county)
describe_metrics
Look up what a metric field means.
- Arguments
- fields?: string[]
- Returns
- Label, unit, and family for each requested field id (or the full catalog if omitted). Call before quoting a field whose name is ambiguous.
- Example
- "cen_pct_age_senior" → "% Senior (50+)"
get_market_trends
Pull current metrics for one geography.
- Arguments
- geoid: string · geoLevel: state | county | place · sources?: string[] · metrics?: string[]
- Returns
- Census, Redfin, and FRED metrics for that geoid, each with an as-of date, plus attribution (cite this) and derived (precomputed ratios like price-to-income, each with per-input vintage stamps). Sources above the public tier are named in a gated array rather than returned. Narrow sources/metrics — full set is ~100-160 fields per source.
- Example
- 06037 (county) → 5 sources · gated: []
rank_markets
Rank a market, or pull a top-N list.
- Arguments
- geoLevel: county | zip · geoid?: string · limit?: number · state_fips?: string
- Returns
- National ranking on the Bawa 7-pillar investment score (population/income/HPI growth, unemployment, job growth, poverty, crime). Pass a geoid for one geography's rank and percentile, or omit it for a top-N list. County ranks are suppressed below a 50 home-sales/mo floor — rank_suppressed_reason says when and why.
- Example
- county · limit: 10 → 611 ranked hub counties
get_series_history
Pull a metric's history over time.
- Arguments
- metric: string · geoid: string · geoLevel: state | county · propertyType?: string
- Returns
- Historical time series for one metric at one geoid — e.g. Redfin median sale price back to 2012, or FRED's house price index. Not every metric has a series: an unsupported metric or geo level returns available: false with a note explaining why, rather than an error. Use get_market_trends for a current value.
- Example
- "rf_median_sale_price" · 06037 → 173 monthly points