by CMANarrative (LX AI)

Last updated: 2026-09-16

Seller-friendly price rationale from comps

How I turn raw comps into a narrative

I start with the raw data you paste into the tool. Each line should contain the address, sale price, date of sale, and any known concessions. I do not add or invent any sales; the engine works only with what you provide. The first step is to verify that each record looks like a real transaction. I check for missing fields and flag any entry that falls outside a plausible range for the local market. This verification step prevents garbage‑in garbage‑out and keeps the later story grounded in fact.

Once the data passes a basic sanity check, I normalize the fields. I convert all dates to a standard ISO format, strip extra whitespace from addresses, and ensure prices are numeric without currency symbols. This cleaning makes the subsequent math reliable. I also add a simple flag for each comp that indicates whether it needs an adjustment for things like lot size, view, or condition. The flag is just a placeholder; you will fill in the actual adjustment later in the workflow.

With clean, normalized comps in hand, I begin to shape a story that a seller can see themselves in. The narrative is not a list of numbers; it is a short explanation that ties each comparable to the subject property. I write the story in plain language, avoiding jargon, and I keep the tone conversational. The goal is to give the seller a confidence boost: they can see why the suggested price makes sense based on real recent sales.

Preparing your comp set

Selecting the right comparables

I recommend you start with three to five recent sales that are as similar as possible to the subject. Similarity means same school district, comparable lot size, and similar age of the home. If you have more than five, pick the ones that are closest in those dimensions. I do not automatically filter for you; you decide which comps feel most relevant. This manual step ensures that the story reflects your local knowledge.

Verifying each record

Normalizing for consistency

After verification, I run a quick normalization script that:

  1. Trims leading and trailing spaces from address strings.
  2. Converts sale dates to YYYY-MM-DD.
  3. Strips any non‑numeric characters from the price field.
  4. Creates a column for adjustment notes that you will fill in later.

These steps are deterministic; they do not change the meaning of the data, only its format. Consistency helps the later calculations produce predictable results.

Building the price story: step‑by‑step

Now that the comp set is ready, I construct the price rationale in four clear stages. Each stage produces a piece of the final narrative that you can review and edit.

Stage one: baseline price

I calculate the simple average of the sale prices of the comps. This average serves as a neutral starting point. I do not weight the comps at this stage; the average gives a quick sense of the market level.

Stage two: adjustments

For each comp I apply the adjustments you supplied. If you noted that a comp has a superior view, I subtract a view premium; if it has a larger lot, I add a lot size credit. The adjustment values are entirely yours; the tool only adds or subtracts them as you directed. I keep a running total of the adjusted price for each comp.

Stage three: adjusted average

After applying all adjustments, I compute the average of the adjusted prices. This number reflects the market after accounting for the differences you highlighted. I show this adjusted average alongside the raw average so you can see the impact of your notes.

Stage four: narrative generation

Using the adjusted average as a anchor, I write a short paragraph that references each comp. For example:

The subject home compares well to 123 Maple St, which sold for $350,000 with a similar lot size; after a $10,000 adjustment for a newer kitchen, its adjusted price is $360,000. The second comp, 456 Oak Ave, sold for $340,000 and required a $5,000 downward adjustment for a smaller yard, bringing it to $335,000. The third comp, 789 Pine Rd, sold for $365,000 and needed no adjustments. The average of these three adjusted prices is $351,667, which supports a listing price in the mid‑$350k range.

I keep the language simple and avoid any fluff. The paragraph is meant to be read aloud to a seller or included in a listing memo.

Comp Sale Price Adjustment Adjusted Price
123 Maple St $350,000 +$10,000 (kitchen) $360,000
456 Oak Ave $340,000 -$5,000 (yard) $335,000
789 Pine Rd $365,000 $0 $365,000

Using the AI rationale engine

The core of the tool is a language model that turns the cleaned comp data and your adjustment notes into the narrative you just saw. I have designed the prompting strategy to follow the guidance from two public frameworks. First, I consult the OWASP LLM Top Ten (https://owasp.org/www-project-top-10-for-large-language-model-applications) to avoid common pitfalls such as prompt injection and data leakage. Second, I align with the NIST AI Risk Management Framework (https://www.nist.gov/itl/ai-risk-management-framework) to ensure that the model’s output is transparent, controllable, and traceable back to the input data.

When you submit the comps, the system builds a prompt that includes:

The model then generates a draft paragraph. I do not let the model freely invent numbers; the prompt anchors every figure to the data you gave. After generation, I run a simple verification step that checks each numeric token in the output against the input table. If any number does not match a comp or an adjustment, the draft is flagged for revision.

This approach keeps the AI’s creativity within tight bounds. The model helps with phrasing and flow, but the underlying numbers remain yours. By following the OWASP and NIST references, I aim to reduce risk while still giving you a useful starting point for a seller conversation.

Reviewing and editing the draft

First read‑through

When the draft appears, I suggest you read it aloud. Listen for any sentences that sound like they are guessing or adding detail that was not in the comps. If you hear something that feels off, note it.

Checking numbers

Go through the paragraph and verify that every dollar amount matches either a raw sale price, an adjustment, or the calculated average. You can do this quickly by scanning the table you saw earlier. If a number looks wrong, correct it in the source data and regenerate the draft.

Adjusting tone

The initial output aims for a neutral, helpful tone. If you prefer a more direct style, you can edit sentences to be shorter. If you want a bit more warmth, you can add a phrase like “I think you’ll find this comparison useful.” Remember to keep any added text free of new facts.

Final approval

Once you are satisfied that the narrative is accurate and reads well, you can approve it for use in a listing memo, a seller meeting, or a follow‑up email. The approved text is stored with the session so you can retrieve it later if you need to revisit the same comp set.

What this is NOT

I want to be clear about the limits of this tool. It does not guarantee that the suggested price will be accepted by a buyer or that it will appraise at that exact amount. The output is a draft based solely on the comps you provide; it does not replace a full comparative market analysis performed by a licensed agent. It does not promise 100% accuracy in every market condition, and it does not claim to never miss a relevant factor. The tool is meant to support your judgment, not to substitute it.

References

Frequently asked questions

What is Seller-friendly price rationale from comps?

Turn comps into a pricing story sellers believe.

References

Want to try the product? CMANarrative

Generated 2026-09-17 · primary sources only · no fabricated traffic metrics