---
name: local-market-stats
description: "Compute the three context numbers for the valuation prep pack: average days on market, asking-to-sold ratio, current stock count. Built for use inside valuation-prep; the operator does not invoke it directly."
---

# Local market stats

A building-block skill called by `valuation-prep`. Returns three numbers, no more. This section is context, not headline; four numbers feels like a research paper, two feels thin.

## What it produces

For the immediate area around the subject property (same postcode sector, or wider if the sector has fewer than 10 transactions in the lookback window):

1. **Average days on market.** Median time from list to sold-subject-to-contract, over the last 90 days, for the property type that matches the subject.
2. **Asking-to-sold ratio.** Median sold price as a percentage of original asking price, last 90 days, same property type. A number under 95% signals a soft market; over 100% signals competition.
3. **Current stock count.** How many active listings of the matching type are on the portals right now.

Each number shows the lookback window and the property-type filter so the operator can challenge any of them in conversation with the vendor.

## What it does not do

- It does not produce trend narratives. That is `variance-narrator`, called separately when the round needs a comparison sentence.
- It does not surface recent fall-throughs as a number; if the count is non-trivial it is flagged in one sentence under the stats.
- It does not write to anything.

## Connectors

Read: Rightmove, Zoopla, OnTheMarket data feeds; Land Registry. No writes.

## Profile keys

- `realagent.market_stats.lookback_days` (default 90)
- `realagent.market_stats.area_definition` ("postcode_sector" | "1_mile_radius" | "ward", default "postcode_sector")
