| name | Rent Comp Intake |
| slug | rent_comp_intake |
| version | 0.1.0 |
| status | draft |
| category | residential_multifamily |
| subsystem | residential_multifamily |
| pack_type | workflow |
| targets | ["claude_code"] |
| stale_data | Comp records have short shelf life; market changes quickly. Confidence tags and source
types (operator-reported, 3rd-party, shopped) are tracked per record. Normalization
rules (concession adjustments, unit-type normalization) live in overlays.
|
| applies_to | {"segment":["middle_market"],"form_factor":["garden","walk_up","wrap","suburban_mid_rise","urban_mid_rise"],"lifecycle":["stabilized","renovation","lease_up","recap_support"],"management_mode":["self_managed","third_party_managed","owner_oversight"],"role":["property_manager","leasing_manager","regional_manager","asset_manager"],"output_types":["checklist","memo"],"decision_severity_max":"recommendation"} |
| references | {"reads":["reference/raw/rent_comp/","reference/normalized/market_rents__{market}_mf.csv","reference/normalized/comp_normalization_rules__middle_market.yaml"],"writes":["reference/raw/rent_comp/","reference/normalized/market_rents__{market}_mf.csv"]} |
| metrics_used | ["market_to_lease_gap","loss_to_lease"] |
| escalation_paths | [{"kind":"comp_magnitude_change","to":"regional_manager -> asset_manager -> approval_request per reference update flow"},{"kind":"source_integrity","to":"regional_manager (source verification)"}] |
| approvals_required | ["market_rent_reference_update_above_magnitude_delta"] |
| description | Ingests inbound rent comp observations (shopped, 3rd-party, operator-reported), validates,
normalizes, proposes updates to market_rent_benchmark files, and opens an approval if
the magnitude delta crosses the overlay threshold. Follows the reference update flow
end to end.
|
Rent Comp Intake
Workflow purpose
Take a raw rent comp observation and move it through the reference layer's update flow so market rent benchmarks stay live. Ingest, validate, normalize, propose, approve (when needed), derive.
Trigger conditions
- Explicit: "I shopped X property; capture comps", "new 3rd-party export", "log comps from call".
- Implicit:
workflows/market_rent_refresh detects a comp bundle; PM drops raw data into reference/raw/rent_comp/.
- Recurring: ad hoc; any market-survey cycle.
Inputs (required / optional)
| Input | Type | Required | Notes |
|---|
| Raw comp records | table / json | required | property, unit_type, asking rent, concessions, source |
| Normalization rules | yaml | required | overlay |
| Current market_rent_benchmark | csv | required | to compute delta |
Outputs
| Output | Type | Shape |
|---|
| Validated raw records | file | reference/raw/rent_comp/<yyyy>/<mm>/ |
| Normalized records | file | reference/normalized/market_rents__{market}_mf.csv |
| Change log entries | file | append to archives/change_log.jsonl |
| Approval request (if above threshold) | request | per overlay delta rule |
Required context
Asset_class, segment, market, submarket.
Process
- Validation. Every raw record validated against
_core/schemas/reference_record.yaml + category schema. Missing fields surfaced.
- Normalization. Apply overlay rules: concession adjustments, unit-type normalization, effective rent math.
- Magnitude delta check. Compare proposed normalized value to current benchmark. If delta above overlay threshold, open
approval_request per reference update flow before promoting .