Understanding Search Quality Scores
Semantic search results include similarity scores that indicate how well each property matches your query. Understanding these scores helps you evaluate results and set appropriate expectations.
Similarity Score Basics
Section titled “Similarity Score Basics”Similarity scores range from 0 to 1:
- 1.0 — Perfect match (rare, only if query exactly matches property text)
- 0.8-1.0 — Excellent match
- 0.6-0.8 — Good match
- 0.4-0.6 — Moderate match
- 0.0-0.4 — Weak match
Score Interpretation
Section titled “Score Interpretation”Excellent Matches (0.8 - 1.0)
Section titled “Excellent Matches (0.8 - 1.0)”Property descriptions closely align with your query.
What this means:
- Query features are explicitly mentioned in the listing
- Multiple matching keywords or phrases present
- Property likely meets client’s specific requirements
Example:
Query: "modern kitchen with granite countertops"Score: 0.89Property description: "...newly remodeled kitchen featuring granite countertops, stainless appliances, and modern finishes..."When to use:
- First showings for clients
- Highly specific client requirements
- Limited time for property tours
Good Matches (0.6 - 0.8)
Section titled “Good Matches (0.6 - 0.8)”Solid matches with most features present.
What this means:
- Core features from query are mentioned
- Some specific details may vary
- Property is worth reviewing but may not be perfect
Example:
Query: "family home with large backyard near schools"Score: 0.72Property description: "...spacious home perfect for growing families, fenced yard, close to elementary school..."When to use:
- Building a showing list
- Clients with flexible criteria
- Expanding search when excellent matches are limited
Moderate Matches (0.4 - 0.6)
Section titled “Moderate Matches (0.4 - 0.6)”Some matching features, worth reviewing if inventory is limited.
What this means:
- One or two query features match
- Property may still be suitable with compromises
- Missing some specific requirements
Example:
Query: "waterfront cabin with mountain views"Score: 0.53Property description: "...cozy cabin nestled in the mountains, private lot, peaceful setting..."When to use:
- Low inventory markets
- Clients willing to compromise
- Exploring alternative options
Weak Matches (< 0.4)
Section titled “Weak Matches (< 0.4)”Few similarities, likely not a good fit.
What this means:
- Query and property description have little overlap
- Property may match general category but not specifics
- Usually not worth showing to clients
Example:
Query: "luxury penthouse with city views"Score: 0.31Property description: "...charming starter home in quiet neighborhood..."When to use:
- Generally skip these results
- Only consider if absolutely no better options exist
Factors Affecting Scores
Section titled “Factors Affecting Scores”Query Specificity
Section titled “Query Specificity”More specific queries produce more reliable scores:
Vague query:
"nice house"→ Low-quality scores (many properties match "nice")Specific query:
"4 bedroom craftsman with covered porch and hardwood floors"→ High-quality scores (fewer false positives)Description Quality
Section titled “Description Quality”Detailed property descriptions yield better matching:
Poor description:
"Great home in good neighborhood."→ Low similarity regardless of featuresDetailed description:
"Charming 4-bedroom craftsman featuring original hardwood floors throughout, covered front porch with swing, updated kitchen with quartz counters..."→ Accurate similarity scoresSemantic Understanding
Section titled “Semantic Understanding”The system understands related concepts:
Query equivalences:
- “granite countertops” ≈ “granite counters” ≈ “stone countertops”
- “mountain views” ≈ “overlooks mountains” ≈ “views of peaks”
- “open floor plan” ≈ “open concept” ≈ “flowing layout”
Recommended Thresholds
Section titled “Recommended Thresholds”For Client Showings
Section titled “For Client Showings”Start with high-quality matches:
# Filter results to similarity >= 0.6results.filter(property => property.similarity >= 0.6)For Building Property Lists
Section titled “For Building Property Lists”Include good to excellent matches:
# Show properties with similarity >= 0.5results.filter(property => property.similarity >= 0.5)For Market Research
Section titled “For Market Research”Cast a wider net:
# Include moderate matches (>= 0.4)results.filter(property => property.similarity >= 0.4)Score Calibration Over Time
Section titled “Score Calibration Over Time”Learning What Works
Section titled “Learning What Works”Track which similarity ranges produce successful showings:
Shown to client → Similarity score✓ Loved it → 0.87✓ Interested → 0.74✗ Not interested → 0.58✗ Wrong fit → 0.42After multiple clients, you’ll develop intuition for your market:
- Some markets may have lower average scores due to sparse descriptions
- Others may cluster higher with detailed listings
Adjusting Thresholds
Section titled “Adjusting Thresholds”If you consistently see:
Too many irrelevant results:
- Raise threshold (e.g., 0.6 → 0.7)
- Make queries more specific
Too few results:
- Lower threshold (e.g., 0.6 → 0.5)
- Broaden query scope
- Check if descriptions are detailed enough
Combining Scores with Filters
Section titled “Combining Scores with Filters”Use scores in conjunction with traditional filters:
{ "query": "updated kitchen with granite", "min_price": 200000, "max_price": 400000, "min_beds": 3, "city": "Twin Falls"}This ensures:
- Traditional filters eliminate non-starters (wrong price, beds, location)
- Similarity score ranks remaining properties by feature match
Score Distribution Patterns
Section titled “Score Distribution Patterns”Normal Distribution
Section titled “Normal Distribution”Most queries produce results clustered around 0.5-0.7:
0.9-1.0: ▂ (very few)0.8-0.9: ▅ (some)0.7-0.8: ███ (many)0.6-0.7: █████ (most)0.5-0.6: ███ (many)0.4-0.5: ▅ (some)< 0.4: ▂ (very few)Skewed High
Section titled “Skewed High”Specific queries with good data produce higher scores:
0.8-1.0: █████0.7-0.8: ███0.6-0.7: ▅< 0.6: ▂Skewed Low
Section titled “Skewed Low”Vague queries or poor data produce lower scores:
> 0.7: ▂0.6-0.7: ▅0.5-0.6: ███0.4-0.5: █████< 0.4: ███If most scores are low, revise your query or check data quality.
Technical Note: How Scores Are Calculated
Section titled “Technical Note: How Scores Are Calculated”Similarity scores use cosine similarity between embeddings:
- Query embedding — Your search text is converted to a vector
- Property embeddings — Each property description has a pre-computed vector
- Cosine similarity — Measures angle between vectors (0 = orthogonal, 1 = identical)
Key insight: Scores reflect semantic meaning, not keyword overlap. Two listings may score high despite using different words if the concepts match.
Related
Section titled “Related”- Search API Reference — Endpoint specifications
- Effective Search Queries — Writing better queries
- Effective Property Search — General search strategies