What This Is
The MLS Price Cliff Analyzer is a plug-and-play LLM prompt that helps you surface one of the most important seller-facing insights in your market: what happens to a home’s value when it doesn’t sell quickly.
This tool analyzes your spreadsheet of closed sales to pinpoint the moment—based on actual data—when pricing power starts to slip. It gives you a number you can talk about: “After 21 days, homes in your market sell for 6% less on average.”
Instead of just saying, “You’ve got to price it right from the start,” now you can back it up—with both data and language that hits.
Here’s a script you might use in a listing conversation to drive the point home:
Your property is never more valuable to a buyer than on the day it’s listed, spurred by the buyer’s instinct to act quickly for fear of losing out to someone else. However, as days turn into weeks, this urgency fades—and, as a result, so does the property’s perceived value. Your property attracts the most attention on the day it’s listed because popular search platforms prioritize new listings. But as your listing ages, both visibility and buyer interest naturally decline. Understanding these factors, how critical do you believe it is to get everything right from the start?
With a single MLS upload and this prompt, you’ll get:
- A sharp, stat-backed talking point about how value erodes with time on market
- A script written for a short-form video like Instagram Reels
- A zoomed-in graph that visually shows the cliff—dramatically and clearly
You’ll walk away with a data-backed Instagram Reel script—plus a visual chart—that helps you educate sellers, strengthen your listing presentation, and position yourself as the kind of agent who shows the strategy, not just talks about it.
How to Use It
- Export your MLS data
Start by downloading the data you want to analyze. Make sure it includes only closed (i.e., sold) listings. A spreadsheet—CSV or Excel—is best.
- Copy the prompt and upload your MLS data
Use the clipboard button in the top-right corner of the prompt below to copy it. Then paste it into your preferred LLM (like ChatGPT, Gemini, Claude, or Grok), and in that same message, upload your MLS spreadsheet for analysis.
- Press enter and let the AI run the analysis
The model will:
- Identify or infer key fields like sales price, list price, and days on market
- Clean and organize the data
- Detect the point where pricing power breaks down
- Ask you for clarification if it can’t confidently map your columns
- Review the three outputs
You’ll get:
- A cliff summary — when the drop happens, and how much value is lost
- A short-form video script — written for Instagram Reels
- A graph — clean and zoomed-in to visually highlight the pricing drop
- Record your Reel using a green screen overlay
- Open the ChatGPT conversation on your phone
- Screen record the part showing the graph and summary
- Save that video to your camera roll
- Open Instagram → Reels → Tap Effects → Choose Green Screen
- Set your screen recording as the background
- Record yourself delivering the script on camera (or personalize it with your own take)
Prompt
# MLS “Price-Cliff” Analyzer & Insta-Reel Script
*This message includes MLS data and instructions. Analyze the data and follow the prompt as written.*
—
## 📥 1. Required Input
You have been provided a spreadsheet containing closed (i.e., sold) residential sales.
### Required fields (exact column names may vary):
– **Days on Market** – the number of days each property was actively listed before going under contract or closing. If not directly provided, infer it using listing and closing dates.
– **Original List Price** – the initial asking price when the property was first listed, *not* the final list price after reductions.
– **Final Sales Price** – the actual price the buyer paid at closing.
> Use best-effort reasoning to identify these fields, regardless of spacing, punctuation, or formatting.
> If any required field cannot be confidently identified or inferred, respond with:
> “⚠️ Unable to identify one or more required columns. Please clarify the column names, or re-export the spreadsheet with full listing and sale details.”
### Optional but helpful fields:
– Property location details (e.g., City, Zip Code)
– Date-related fields (e.g., List Date, Close Date)
– Price category fields (e.g., Price Range, Price Bracket)
—
## 🎯 2. Objective
Analyze how the average sale price (relative to original list price) changes as days on market increases. Your goal is to determine whether there’s a **clear inflection point**—a “cliff”—where pricing power drops significantly.
### Specifically:
1. **Identify the earliest point in time** where the average sale-to-original-list ratio drops by **≥ 5 percentage points** compared to earlier listings.
– Use logical groupings (e.g., 7-day or 10-day buckets) based on what best fits the distribution.
– Ensure that each comparison group includes **at least 5 closed sales** to ensure statistical weight.
2. **Filter for meaningful patterns**:
– If the first significant drop occurs **after 100 days on market**, treat it as too late to be actionable. In that case, return:
“📊 No early price cliff detected. No meaningful drop within the first 100 days on market.”
3. **If a valid price cliff is found**, return all three outputs defined in §4.
– If **no valid cliff is found**, skip the Instagram script and graph, and only return the summary line above.
—
## ⚙️ 3. Method (internal)
1. **Identify required fields**:
– Determine which columns represent:
• *Final sales price* (what the home sold for)
• *Original list price* (the first asking price when listed)
• *Days on market* (or infer it using listing and closing dates)
– Use contextual clues, formatting variations, or common MLS phrasing. If any value cannot be reasonably determined, refer to the fallback in §1.
2. **Clean the data**:
– Drop rows with missing or non-numeric values in any of the three required fields.
3. **Calculate pricing retention**:
– For each property, calculate the ratio:
`sale_to_olist_ratio = final_sales_price / original_list_price`
4. **Group by time on market**:
– Organize listings into logical day-range groupings (e.g., 7-day or 10-day buckets) based on distribution.
– Only include buckets with **5 or more sales** to avoid noise.
5. **Detect the “cliff”**:
– Identify the earliest bucket where the average ratio drops **≥ 5 percentage points** compared to earlier groupings.
– If the first such drop occurs **after 100 days**, return the fallback summary and skip outputs in §4.
6. **If valid cliff is found**:
– Return the Markdown summary (4.1), Instagram script (4.2), and chart (4.3) with zoomed focus around the drop.
7. **If no cliff is found**:
– Return:
“📊 No early price cliff detected. No meaningful drop within the first 100 days on market.”
– Do not return a graph or script.
—
## 📤 4. Deliverables
### 4.1 Cliff Summary (Markdown)
**Early Price Cliff Detected at:** {DOM_bucket_start}–{+6} days
**Avg. % of Original List Received:** {ratio_cliff × 100} %
**Typical Discount vs. Week 1:** {delta_pct} pp
### 4.2 Instagram Reel Script (≈ 60 sec)
– **Hook** – A short, punchy opening (≤ 12 words) that includes the cliff stat.
– **Build** – 3–4 short sentences that explain what happens at the cliff and why it matters (buyer behavior, urgency, etc.).
– **CTA** – Prompt viewers to DM for pricing strategy or a local market breakdown.
### 4.3 Graph
– Generate a Matplotlib line chart:
• X-axis: days on market (bucketed)
• Y-axis: % of original list received (sale-to-list ratio × 100)
• Highlight the cliff bucket with a red marker and annotation
• Zoom the x-axis to ± 30 days around the cliff for visual clarity
– Show inline using `python_user_visible`
– Title the chart: `YourTown Price Retention vs. Days on Market (Built ≤ YYYY)`
—
## 🖋️ 5. Style & Guardrails
– Quote exact percentages; round to one decimal.
– No speculation, exaggeration, or assumptions.
– Use contractions, Oxford commas, and a natural, conversational tone.
– If no cliff is detected, return only the summary message in §2 and stop.
—
## ✅ 6. Example user request
“Analyze this spreadsheet. Provide the cliff summary, Reel script, and graph.”