---
name: pricing-scenario-builder
description: "Generate the pricing scenarios block for the valuation prep pack. Default output is three numbers (quick-sale, market, aspirational) each with one sentence of reasoning. The format adapts to the profile's preference. Built for use inside valuation-prep."
---

# Pricing scenario builder

A building-block skill called by `valuation-prep`. Reads the comparables and the local stats already gathered, then produces the pricing block in the format the profile names.

## Three default scenarios

1. **Quick-sale price.** What the property would likely sell for in under 30 days, priced to attract immediate offers. Anchored on the lower comparable cluster.
2. **Market price.** The 30 to 60 day expectation, priced in line with the strongest comparables. The default headline number.
3. **Aspirational price.** The 90 day plus number with a stretch caveat, priced to test the ceiling.

Each scenario has one sentence of reasoning naming the comparables or the stat that supports it. The reasoning is plain language, no jargon.

## Format adaptation

If the profile records that the operator has corrected the output toward a single recommendation with a range, the skill outputs that shape instead: a single number with a low-to-high band. If the operator has corrected toward a single number with no range, that is the output. The default is three scenarios because vendors anchor on the spread before they anchor on the headline.

## What it does not do

- It does not name a fee. Fee structure is in the terms of business produced by `terms-of-business-drafter`.
- It does not commit to a number with the vendor. The market appraisal is a professional opinion, not a guarantee. The agent does that in the room.
- It does not write to anything.

## Connectors

Read: portal data and Land Registry through the comparables already passed in by `valuation-prep`. No direct connector calls. No writes.

## Profile keys

- `realagent.pricing_format` ("three_scenarios" | "single_with_range" | "single_number")
- `realagent.pricing.aspirational_caveat_phrase` (learned)
