Recipe: Housing market brief

This recipe builds a structured housing brief — current 30-year mortgage rate, home price index, inventory, metro employment — using Pipeworx’s compound housing_market_snapshot tool.

Tools used: housing_market_snapshot (primary), optionally attom_market_stats and altos_market_stats for paid drilldowns.

Calls: 1 (compound) for the public-data brief; +2 if you have ATTOM/Altos keys.

Fast path: one call

housing_market_snapshot({ metro_name: "Denver" })

Returns:

{
  "metro": "Denver-Aurora-Lakewood, CO",
  "mortgage_rate_30y": { "value": 7.12, "as_of": "2026-05-08", "trend_12m": "+0.34" },
  "home_price_index":  { "value": 318.5, "as_of": "2026-03", "yoy_change_pct": 4.2 },
  "case_shiller":      { "value": 312.1, "as_of": "2026-03" },
  "labor": {
    "unemployment_rate": 3.8,
    "labor_force": 1554000,
    "as_of": "2026-04"
  },
  "_meta": { "sources": ["FRED", "BLS", "Census"] }
}

That single call wraps FRED MORTGAGE30US, FRED CSUSHPISA, BLS metro employment, and Census housing data.

Manual path

If you want to control which series:

// Mortgage rate
fred_get_series({ series_id: "MORTGAGE30US" })

// Home price index (national)
fred_get_series({ series_id: "CSUSHPISA" })

// Metro employment
bls_get_series({ series_id: "LAUMT080000000000003" }) // Denver MSA unemployment rate

// Housing starts (national)
fred_get_series({ series_id: "HOUST" })

Each call carries _apiKey — anonymous tier supported for FRED via the gateway’s BYO key fallback.

With ATTOM / Altos (paid)

If you have ATTOM and Altos keys, layer them on:

attom_market_stats({ metro: "Denver", _apiKey: "..." })
// → median list price, days on market, price reductions

altos_market_stats({ region: "us-co-denver", _apiKey: "..." })
// → real-time inventory, weekly trend, single-family vs condo

Or use the housing-intel vertical that bundles these:

gateway.pipeworx.io/mcp?vertical=housing

Citation pattern

Denver housing market (May 2026): 30Y mortgage 7.12% via FRED MORTGAGE30US, home prices +4.2% YoY (Case-Shiller), unemployment 3.8%. Inventory remains tight per Altos.

Use the prompt

For a polished brief with prose framing:

prompts/get({
  name: "housing_market_brief",
  arguments: { metro: "Denver" }
})

Returns a substituted prompt that orchestrates the snapshot tool, layers ATTOM/Altos when available, and concludes with a buyer-vs-seller-vs-balanced verdict.

Caveats

  • Metro names need to match Census MSA naming. “Denver” auto-resolves; “DTC” or local nicknames don’t. Use the canonical MSA name when in doubt.
  • FRED data lag. MORTGAGE30US updates weekly (Thursdays); home price indexes lag ~2 months. The _meta.cache.fresh_until and as_of fields tell you exact freshness.
  • National vs metro indexes. The default home_price_index is national. For metro-specific, use ATTOM or pass a metro-CBSA series ID explicitly.

Last reviewed May 8, 2026