Market Data

Real Estate Market Update With AI: From MLS Export to Script

By Jerad · Updated · 11 min read

How do I make a real estate market update with AI?

To make a real estate market update with AI, export 30 or 90 days of closed, active, and pending listings for your area from your MLS as a CSV, upload it to Claude, and ask for median price, days on market, list-to-sale ratio, and months of supply with the math shown. Spot check it, then write scripts and emails.

Most agents I meet know they should send a market update. Most of them don't, or they send one every few months when they remember. The reason is usually the same: pulling the numbers and turning them into something people will actually read takes an afternoon nobody has.

The pulling part is still a quick search and export in your MLS. The rest, the math and the writing, is where Claude saves you the afternoon. One export becomes a video script, a database email, a carousel, and talking points for your next buyer or seller conversation.

This is the workflow I teach in class. It works for any market and any MLS that lets you export to CSV. If you've already read my guide to doing a CMA with AI, this is the same idea zoomed out from one house to a whole area.

Why can't AI just give you a market update on its own?

AI can't give you an accurate market update on its own because it can't see your MLS. If you ask "what's the market doing in my area?" with no data attached, it may give you numbers that sound right and aren't. Claude makes mistakes and can make up facts, so the rule in every class I teach is: no data in, no stats out.

The fix is simple. You download the data out of your MLS, and Claude analyzes the file. That keeps the numbers tied to real sales, and it keeps you in charge of what the update says.

What MLS data should you export for an AI market update?

Export closed, active, and pending listings for one clearly defined area and time window, usually the last 30 days for a monthly update or the last 90 days for a smoother quarterly view. If you want a year-over-year comparison, export the same window from last year as a second file.

Pick one property type per export (for example, single-family detached) so condos and land don't skew the medians. Then include these fields:

FieldWhy it matters
Status (closed, active, pending)Separates sales from inventory
List priceActive competition and list-to-sale ratio
Original list priceShows price reductions
Sold priceMedian sold price and list-to-sale ratio
Close datePuts sales in the right month
List date or contract dateHelps check the time window
Days on marketHow fast homes are selling
Square footage (as entered in your MLS)Price per square foot
Beds, baths, year builtOptional, for price-band breakdowns
Concessions, if your MLS tracks themSeller credits trend
Area or subdivision fieldConfirms the filter worked

Two tips. First, write down the exact search criteria you used, because you'll want the same search next month. Second, check the file before you upload it. Delete obvious bad rows, like a sold price with a missing digit. Don't paste anything your brokerage or MLS doesn't allow into an AI tool.

How do you get Claude to calculate the market stats?

Upload the CSV and give Claude one prompt that defines every stat, the filters, and the output format. The more exact you are about definitions, the less room it has to guess. Here's the prompt I give agents.

I'm attaching an MLS export for [AREA] covering [START DATE] to
[END DATE]. Property type: [PROPERTY TYPE].
[If attached: A second file covers the same dates one year earlier.]

Before calculating anything:
1. Tell me how many rows are in each file and how many are closed,
   active, and pending.
2. List any rows you think are bad data (missing prices, impossible
   values, wrong property type) and leave them out. Tell me how many.

Then calculate, for closed sales in the date range:
- Number of closed sales
- Median sold price
- Median price per square foot (sold price / square footage)
- Median days on market
- Average list-to-sale ratio (sold price / final list price)
- Average sold-to-original-list ratio (sold price / original list price)
- Share of closed sales that had a price reduction (original list price
  higher than final list price)

For inventory:
- Number of active listings and number of pending listings as of the
  export
- Months of supply = active listings / average closed sales per month.
  Average closed sales per month = closed sales in the file / [NUMBER
  OF MONTHS IN THE WINDOW].

If the prior-year file is attached, show each stat for both periods and
the change.

Show your work: for every number, give the formula, the row count used,
and the inputs. Put the final stats in one table. Use only data from
the files. If a field is missing, say so instead of estimating.

Notice the months of supply line. Claude can only calculate it if it knows the active count and the number of months your sales cover, so the prompt spells out both. If your export only has 30 days of closed sales, that's one month. If you exported 90 days, that's three.

How do you sanity-check the AI's math?

You sanity-check it by making Claude show every calculation, then checking a few numbers yourself. Don't skip this. A market update with a wrong median is worse than no update, because your name is on it.

Here's my spot check routine. It takes about five minutes:

  1. Match the counts. Does the number of closed sales Claude reports match the count in your MLS search results? If not, find out which rows it dropped and why.
  2. Check one median by hand. Open the CSV in a spreadsheet, filter to closed, sort by sold price, and find the middle value. Compare it to Claude's.
  3. Check one ratio. Pick any row and divide sold price by list price yourself. Make sure Claude used final list price where you asked for it, not original list price.
  4. Check the filters. Look at the dates and property types in the rows Claude used. One condo in a single-family update can move a small sample's median.
  5. Look at sample size. If there were only a handful of sales, say so in the update.

Then run a second prompt that asks Claude to poke holes in its own numbers:

Review the stats you just calculated. Check for:
- Any calculation that doesn't match its formula
- Stats based on too few sales to be meaningful (flag anything under
  [MINIMUM SALES, e.g. 10])
- Outliers that move a median or average a lot (list them)
- Any place you mixed final list price and original list price

Give me a corrected table if anything changes, and a one-line note on
how confident I should be in each stat.

When I teach this in class, the agents who skip the spot check are the ones who come back with a "why does it say homes sold for 140% of list" story. It's almost always a bad row. Five minutes now saves you an awkward correction email later.

How do you turn market stats into a 60-second video script?

Give Claude the verified stats table and ask for a script built around one number that matters to your audience. A good 60-second market update has a hook, two or three numbers said in plain words, one line for buyers, one for sellers, and one call to action. That's roughly 130 to 160 spoken words.

Using only the verified stats below, write a 60-second market update
video script for [AREA] for [MONTH OR PERIOD].

Rules:
- 130 to 160 spoken words
- Open with the single most interesting number in the first sentence,
  no greeting
- Use no more than 3 numbers total, rounded and said the way people
  talk ("about 3 weeks", not "21.4 days")
- One sentence on what it means for buyers, one for sellers
- No predictions about where prices are going
- Describe the market and the homes, never who lives in the area
- End with this call to action: [YOUR CTA, e.g. "Comment 'report' and
  I'll send you the full numbers for your street."]
- Add on-screen text suggestions in [brackets] for each number
- My speaking style: [3-4 words, e.g. "direct, casual, a little dry"]

Give me two versions: one that leads with a buyer angle and one that
leads with a seller angle.

STATS:
[PASTE VERIFIED TABLE]

The "no predictions" line is there on purpose. AI loves to end with "experts expect prices to rise." You don't need that, and you can't back it up.

How do you write a market update email to your database?

Ask for a short email that leads with one takeaway, shows a few numbers, and gives readers one easy reply option. Database emails work best when they read like a note from you, not a newsletter template.

Write a market update email to my database for [AREA], [PERIOD], using
only the verified stats below.

- Subject line options: give me 5, under 45 characters, no clickbait
- Preview text: 1 line
- Body: under 200 words, written like a note from me, short paragraphs
- Lead with the one takeaway a homeowner would care about most
- Include a simple 4-row table: median sold price, median days on
  market, list-to-sale ratio, months of supply (with prior-year
  comparison if available)
- One short paragraph for owners thinking about selling, one for people
  thinking about buying
- Close with one reply-based ask: [e.g. "Reply with your address and
  I'll tell you what sold near you."]
- Add this source line at the bottom: [YOUR MLS'S REQUIRED ATTRIBUTION
  OR DISCLAIMER]
- Don't describe who lives in the area or mention schools or safety

STATS:
[PASTE VERIFIED TABLE]

If you send these regularly, you can turn the whole thing into a Claude scheduled task that drafts the email from a file you drop in (there's no monthly cadence, so set it to manual and run it when the new export lands). I cover that setup in Claude scheduled tasks for a morning briefing.

Ask Claude for a slide-by-slide outline with one idea per slide and very few words on each. Carousels fail when every slide is a paragraph. The outline gives you or your designer exactly what goes where.

Turn the verified stats below into an Instagram carousel outline for
[AREA], [PERIOD]. 7 slides maximum.

For each slide give:
- Headline (under 8 words)
- One supporting line (under 15 words)
- The number to feature, formatted large
- A visual suggestion (simple chart, icon, or photo of a home exterior)

Slide 1 is a hook that makes people swipe. The last slide is a call to
action: [YOUR CTA]. Include one slide on what it means for sellers and
one for buyers. Put this attribution on the stats slides:
[YOUR MLS'S REQUIRED ATTRIBUTION].

Then write a caption under 150 words with short paragraphs, no bullet
points, and no more than 5 relevant hashtags.

STATS:
[PASTE VERIFIED TABLE]

How do you build buyer and seller talking points from the same data?

Ask for short, plain-English talking points you can say out loud in a buyer consult or a listing appointment. These are the most useful part of the whole exercise, because they're what you'll actually say on the phone this week.

From the verified stats below, give me talking points for [AREA],
[PERIOD].

Seller talking points (5): what the numbers mean for pricing, days on
market, and price reductions. Each under 25 words.

Buyer talking points (5): what the numbers mean for negotiating,
competition, and timing. Each under 25 words.

Then give me 3 common objections (one seller, one buyer, one "should I
wait?") with a short answer to each that uses one number from the
table.

Use only these numbers. No predictions. Describe homes and the market,
never the people who live there.

STATS:
[PASTE VERIFIED TABLE]

If you're working with a seller who's already on the market, these same stats feed a weekly seller update. I cover that in the AI seller weekly update.

What MLS rules apply to publishing market data?

MLS rules on publishing statistics vary, so check yours before anything goes public. Many MLSs have rules about how aggregate data can be shared, what attribution line is required, and what time period or date stamp must appear. Some also limit sharing data on specific listings that aren't yours. I can't tell you your MLS's exact rules. Read your MLS rules and regulations, or ask your broker.

Put whatever attribution your MLS requires into every prompt above, in the bracket I left for it. Then it shows up in the script, the email, and the carousel every time without you remembering.

And keep the fair housing habit here too. Describe the market and the homes, never the people in the neighborhood. If you want a checklist for that, use my fair housing AI listing checklist.

What to do this week

  1. Pick one area you want to be known for. Run one MLS search for closed, active, and pending single-family listings in the last 30 days and export it.
  2. Upload it to Claude and run the stats prompt. Then do the five-minute spot check.
  3. Run the script prompt and record the video in one take. Imperfect is fine.
  4. Send the email to your database and post the carousel, with your MLS's attribution on both.
  5. Save the prompts in a Claude Project called "Market Update" so next month is upload, paste, review.

The free Claude 101 kit has the class replay and a one-page cheat sheet if you're just getting set up.

FAQ

Can AI write a real estate market report for me?

Yes, if you give it the data. AI tools can't see your MLS, so ask for a market report with no data and you may get invented numbers. Export your area's closed, active, and pending listings yourself, upload the file, and the AI can calculate the stats and write the report from your numbers.

What should a real estate market update include?

A solid market update covers median sold price, median days on market, list-to-sale price ratio, active inventory, months of supply, and how many homes had price reductions. Compare against the prior period so readers see direction, and finish with what it means for buyers and for sellers.

How do you calculate months of supply?

Months of supply is active inventory divided by the average number of sales per month. For example, if your area has 60 active listings and averaged 20 closed sales per month over the period, that's 3 months of supply. Tell the AI exactly which counts to use so it doesn't guess.

Can I post MLS statistics on social media?

It depends on your MLS. Many MLSs have rules on publishing aggregate statistics, including attribution lines and limits on what can be shared publicly. Read your MLS rules or ask your broker before you post numbers on social media, in emails, or on your website.

What's a good script for a 60-second real estate market update video?

Open with one surprising number, give two or three supporting stats in plain words, say what it means for buyers and sellers in one line each, and end with a single call to action. Keep it to around 130 to 160 spoken words so you aren't rushing.

How do I know the AI's market stats are correct?

Ask it to show its calculations and list the row counts it used, then spot check a few numbers yourself in a spreadsheet. Check one median by hand, confirm the sales count matches your export, and make sure it filtered the right property types and dates.

Get the free Claude 101 kit

The class replay, the cheat sheet, and 3 Claude tools for your listings. Free.

The kit lands in your inbox in about a minute. Use an email you actually check.

By clicking Email me everything, you agree to receive emails, calls, and text messages from Installed Agent at the email and phone number above, including marketing messages, which may be sent using automated technology. Msg and data rates may apply. Msg frequency varies. Reply STOP to opt out of texts, or unsubscribe from emails anytime.

Keep reading

Market Data · Nov 1, 2026 · 11 min read

How to Do a CMA With AI (Without It Making Up Comps)

AI can't see your MLS, so asking it what a home is worth gets you invented comps. Here's the workflow agents use instead: export the data, upload it, and make Claude show its work.

Listings · Nov 1, 2026 · 11 min read

The Seller Weekly Update Email, Built With AI in 10 Minutes

Sellers don't want a pile of forwarded showing comments. They want five things every week. Here's the template, the Claude prompt that builds it from your real inputs, and how to handle the week the feedback says price.