Purpose
Convert a table of raw MLS stats or market data into a tight, decision-ready narrative that names the real pricing signals, distinguishes noise from trend, and flags anomalies a spreadsheet alone would bury. Solves the problem of analysts staring at rows of numbers with no clear story to hand to a pricing committee, appraiser, or client.
When to Use
Invoke this skill when the user asks to:
- Summarize MLS or market stats for a specific neighborhood, ZIP, or submarket
- Explain what recent pricing, inventory, or DOM data actually means
- Write a market snapshot or monthly market update for a submarket
- Prep a pricing recommendation or listing strategy with supporting market context
- Identify anomalies or turning points in a dataset before they become obvious
- Compare a submarket's current period against prior periods or a benchmark
Inputs Required
Before starting, collect:
- Submarket definition: Neighborhood, ZIP code, MLS area, or geographic boundary
- Property type: Single-family, condo, multifamily, land, or mixed (specify segment)
- Raw data: MLS stats or market figures — median/average sale price, list-to-sale ratio, DOM, months of inventory, closed/pending/new listing counts, price per sq ft
- Time frame: The reporting period and at least one prior period for comparison (MoM, QoQ, or YoY)
- Benchmark (optional): A comp submarket, metro-wide figure, or historical baseline to contextualize
- Audience: Pricing committee, appraiser, agent, or client — determines depth and tone
- Specific question (optional): Any decision the summary needs to inform (e.g., "should we list at 2.5% above last comp?")
If a prior period or benchmark is missing, note it explicitly and summarize the current period without directional claims that require comparison.
Instructions
Step 1: Normalize and Sanity-Check the Data
Before interpreting anything, confirm the inputs are usable:
- Identify which metrics are present and which are missing
- Convert everything to consistent units and periods (annualize or restate as needed)
- Flag any figure that looks like a data error (e.g., DOM of 3 days with 8 months of inventory) rather than a real signal
- Note sample size — a submarket with <15 closed sales in the period produces volatile medians that must be caveated
Step 2: Read the Core Pricing Signals
Interpret the primary price indicators, always distinguishing level from direction:
- Median vs. average: A widening gap signals a shift in mix (more high-end or low-end sales) rather than true appreciation — call this out
- Price per square foot: More reliable than raw median for detecting real value movement, since it controls for size mix
- List-to-sale ratio: Above 100% = competitive/appreciating; 97–100% = balanced; below 97% = softening or overpricing. State which regime the submarket is in
- Direction and magnitude: Report the change (%), then judge whether it exceeds the noise threshold given sample size
Step 3: Read the Momentum and Supply Signals
Pricing lags; velocity leads. Interpret the forward indicators:
- Days on market (DOM): Rising DOM is the earliest sign of softening — often precedes price declines by 1–2 periods
- Months of inventory (MOI): <4 = seller's market; 4–6 = balanced; >6 = buyer's market. State the regime and the trend
- New vs. closed vs. pending: Rising new listings against flat closings signals building supply; rising pendings signals demand strength ahead of closed-price data
- Absorption trend: Whether the market is clearing inventory faster or slower than the prior period
Step 4: Identify Anomalies and Turning Points
Separate the two most valuable findings — what's off, and what's changing:
- Anomalies: Metrics diverging from their historical pattern or from each other (e.g., prices up but DOM also rising — a warning of mix distortion or a stalling top end)
- Turning points: The first period where a multi-period trend reverses or inflects
- Mix distortion: Any signal that a price move is driven by what sold rather than what things are worth
- For each anomaly, offer the most likely explanation and whether it's signal or noise
Step 5: Synthesize the Directional Read and Pricing Implication
Close the loop with a judgment, not just data:
- State the market regime in one line (e.g., "cooling seller's market — still favoring sellers but momentum decelerating")
- Give the directional call for the next 1–2 periods and the confidence level (high/moderate/low) based on signal alignment and sample size
- Translate into a pricing implication for the stated audience and question — a concrete recommendation or range, with the caveat that governs it
Output Format
- Structure: Short titled sections in the order the analyst reads them — headline read first, evidence after
- Length: 350–550 words
- Format: Narrative prose with a bulleted "Signals at a Glance" block; no data dumps
- Sections: Headline Read (2–3 sentences) → Signals at a Glance (5–7 labeled bullets with direction arrows) → Pricing Signals → Momentum & Supply → Anomalies & Turning Points → Directional Read & Pricing Implication
- Tone: Senior market analyst — precise, hedged where the data is thin, decisive where the signals align. Names the story; never just restates the table.
Quality Checklist
Before delivering output, verify:
- [ ] Every directional claim (up/down/softening) is backed by a specific figure from the input
- [ ] Median-vs-average and price-per-sqft mix effects are addressed, not conflated with true appreciation
- [ ] Market regime is stated for both pricing (list-to-sale) and supply (MOI) using the defined thresholds
- [ ] At least one anomaly or turning point is identified — or an explicit statement that the data is internally consistent
- [ ] Sample-size or missing-data caveats are noted wherever they limit confidence
- [ ] The closing implication answers the buyer's stated question (or the audience's likely one) with a confidence level
Notes
- DOM and inventory lead price — when they diverge from price, trust velocity for the forward call
- A single volatile median from a thin submarket is the most common false signal; always weight price-per-sqft and list-to-sale ratio more heavily when counts are low
- If the user provides only current-period data, deliver a clean snapshot and state plainly that trend claims require a prior period — do not manufacture a direction
- Resist the temptation to report every number; the value is in the three or four signals that actually move the pricing decision
How to use this skill
This file is a Claude Code skill in Anthropic's standard format — markdown with YAML frontmatter at the top.
Installing in Claude Code:
~/.claude/skills/<folder-name>/SKILL.md— auto-loads in every session anywhere on your machine (recommended for skills you'll use across multiple projects)<your-project>/.claude/skills/<folder-name>/SKILL.md— auto-loads only when working in that project (recommended for project-specific skills)
Restart Claude Code or open a new session to register.
Using in Claude.ai, ChatGPT, Gemini, or other AI tools:
- Drag this file into a new chat, or copy and paste its contents
- Send your task or request as your next message — the AI will apply the skill where it fits
For Claude Code skill details: https://docs.anthropic.com/en/docs/claude-code/skills