Skip to content

Scaffold Add manual override field when landlord's target rent differs from FMV estimate#7

Open
keywise-app wants to merge 1 commit into
mainfrom
scaffold/proposal-b13ee2e7
Open

Scaffold Add manual override field when landlord's target rent differs from FMV estimate#7
keywise-app wants to merge 1 commit into
mainfrom
scaffold/proposal-b13ee2e7

Conversation

@keywise-app
Copy link
Copy Markdown
Owner

Proposal: Add manual override field when landlord's target rent differs from FMV estimate
Severity: high · Route: /properties/[id]/fmv

⚠️ This is a SCAFFOLD — UI stub only. No backend, no migrations, no data wiring. Feature implementation comes after this lands and the CPO re-audits.


Proposal description (verbatim)

Friction
When the AI returns an FMV estimate that the landlord disagrees with — perhaps their unit has a renovated kitchen not captured in comps, or a desirable parking spot — there is currently no way to record the landlord's own target rent on this screen. The landlord either accepts the AI number uncritically or navigates elsewhere to set rent manually. The AI+human commit pattern in the CPO context requires four steps: suggest → editable inline → preview committed state → human commits. Step 2 is entirely missing. There is no "I think it's actually $X" field anywhere on /properties/[id]/fmv.

Proposed change
Below the FMV estimate on /properties/[id]/fmv, add an "Override rent" field — a simple currency input pre-populated with the AI estimate. Label it: "Your target rent (optional)" with helper text: "AI suggests $X — adjust if you know your unit better." When the landlord enters a different value, show a neutral one-line comparison: "You're setting rent $Y above / below the local estimate." Include a "Apply to property" CTA that writes the landlord's chosen figure (not necessarily the FMV) to the property record, with a confirmation step: "Set rent to $[X] for [Unit address]? This won't notify tenants." This is the human-commits step of the AI+human pattern.

Why this matters
This sharpens Principle 4 — AI + Human Collaboration: "AI suggests, human edits, human commits." The current flow has no edit step and no commit step — the AI suggestion is either taken or ignored, with no middle ground. It also sharpens Principle 3 — Flexibility. By giving landlords an explicit override field with a comparison nudge (not a blocker), we respect their domain knowledge while still surfacing the AI's view. Estimated impact: increases FMV feature utilization and reduces the chance that landlords set rent without ever seeing the market estimate.


What I scaffolded

  • Route /properties/[id]/fmv now exists as a working client component
  • AI estimate card with hardcoded sample data (teal, clearly labeled "AI Estimate")
  • Currency input pre-populated with the estimate, live diff label ("You're setting rent $X above/below the local estimate")
  • "Apply to property →" CTA that opens an inline confirmation: "Set rent to $X for Unit Y? This won't notify tenants."
  • Post-confirm success state with teal banner
  • Nav with back link to /properties/[id]
  • All real data wiring is stubbed with // TODO: comments

Files added

  • app/properties/[id]/fmv/page.tsx — full scaffold page, client component, hardcoded sample data, all UI states present

What's still TODO

  • Fetch real property + FMV estimate from Supabase by id (replace SAMPLE_PROPERTY)
  • Wire "Yes, set rent" to PATCH /api/properties/[id] (or equivalent)
  • Pull AI-generated FMV + comp breakdown from wherever the AI stores it
  • Comp breakdown / map link in the estimate card
  • Rent history / changelog section at the bottom
  • Auth guard (ensure only the property owner can reach this route)

@vercel
Copy link
Copy Markdown

vercel Bot commented May 17, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
keywise Ready Ready Preview, Comment May 17, 2026 3:41pm

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant