> For the complete documentation index, see [llms.txt](https://docs.layerlens.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.layerlens.ai/more-in-this-section-2/eval-patterns-9.md).

# Real estate and PropTech evaluation patterns

Recommended primitive ratio for real estate AI: **60/25/15** — deterministic rules, code assertions, judges. Fair Housing Act, FCRA, and state real-estate forms drive most checks to deterministic rules; bias auditing leans on code scorers.

## Primitive ratio

| Primitive           | Share | Why                                                                                   |
| ------------------- | ----- | ------------------------------------------------------------------------------------- |
| Deterministic rules | 60%   | Protected-class language, agent-review gate, FCRA accuracy, state-form clauses        |
| Code assertions     | 25%   | Demographic fairness, factual match, comp-set checks                                  |
| LLM judges          | 15%   | Steering language detection, neighborhood-claim faithfulness, tone, retaliation guard |

## Pattern table

| Scenario                            | Primary primitive | Specific check                             |
| ----------------------------------- | ----------------- | ------------------------------------------ |
| Listings — protected language       | Rule + Judge      | No protected references direct or indirect |
| Listings — factual accuracy         | Code assertion    | Sq ft, beds, baths match data              |
| Listings — agent gate               | Rule              | No publish without agent sign-off          |
| AVM — fairness                      | Code scorer       | Valuation parity post-attribute control    |
| AVM — comp set transparency         | Rule              | Comps cited                                |
| AVM — confidence interval           | Rule              | CI present                                 |
| AVM — out-of-area refusal           | Rule              | Below threshold = refuse                   |
| Tenant screening — FCRA accuracy    | Rule              | Every item verifiable                      |
| Tenant screening — adverse action   | Rule              | Notice triggered                           |
| Tenant screening — fairness         | Code scorer       | Group outcome parity                       |
| Tenant screening — criminal record  | Rule              | HUD 2016 guidance                          |
| Transactions — state form           | Rule              | Clauses match state standard               |
| Transactions — required disclosures | Rule              | Federal + state surfaced                   |
| Transactions — citation             | Judge             | Output grounded in contract                |
| Property mgmt — tenant rights       | Rule              | Jurisdiction-specific cited                |
| Property mgmt — habitability        | Rule              | Auto-escalate                              |
| Property mgmt — retaliation guard   | Rule + Judge      | Sensitive cases route to human             |

## Span rules

* `listing.lookup` — listing data and source
* `protected.scan` — protected-class language detector
* `comp.set` — comp properties cited
* `fcra.verify` — item verification trail
* `state.form.match` — state-specific clause comparison
* `tenant.rights.lookup` — jurisdiction-specific tenant rights

## GEPA labeling

For each real estate judge, label ≥ 50 paired examples:

* **Steering-language detection:** Fair-housing specialists label; cover subtle steering
* **Neighborhood-claim faithfulness:** Local agents + data analysts label
* **Retaliation-guard sensitivity:** Tenant-rights attorneys label
* **Contract-citation faithfulness:** RE attorneys label per applicable state

Run [judge optimization](/more-in-this-section-9/judge-optimizations-1.md) with `budget="medium"`. For protected-class detectors, run with `budget="heavy"`.

## Cadence

| Cadence        | Activity                                                             |
| -------------- | -------------------------------------------------------------------- |
| **Per-deploy** | CI gate runs scenario suite (rules + assertions)                     |
| **Daily**      | Sample production traces; full evaluation                            |
| **Weekly**     | Demographic-fairness audit on AVM and tenant screening               |
| **Monthly**    | GEPA re-optimization on judges                                       |
| **Quarterly**  | State-form refresh; HUD guidance review; jurisdiction-rights refresh |
| **Annually**   | Full fair-housing audit; insurance E\&O renewal evidence package     |

## See also

* [Real estate scenarios](/more-in-this-section-2/scenarios-9.md)
* [Real estate compliance](/more-in-this-section-2/compliance-9.md)
* [Recipe: GEPA basics](/9.-improve-tune-the-system/gepa-basics.md)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.layerlens.ai/more-in-this-section-2/eval-patterns-9.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
