Skip to content

F-014: Properties & History โ€‹

Status: ๐Ÿ“‹ Planning ยท Priority: P1 ยท Updated: Mar 4, 2026

Summary โ€‹

Persistent property entities separate from listings. A property represents a physical rental unit (e.g., "Apt 4B at 123 Rue Saint-Denis") that exists whether or not it's currently listed. Enables rental history, landlord portfolio management, re-listing convenience, and cross-platform deduplication. Foundation for Building Profiles (F-012) and Market Analytics (F-013).

Requirements โ€‹

  • [ ] properties table with address, unit, coordinates, neighborhood, type, bedrooms, bathrooms, area, landlord
  • [ ] property_id nullable FK on listings
  • [ ] Backfill migration: create properties from existing listings, link back
  • [ ] Landlord "My Properties" dashboard section
  • [ ] Re-list action: create new listing pre-filled from property + previous listing
  • [ ] Scraper integration: match imported listings to existing properties by address
  • [ ] Notes migrate from listing-level to property-level

Design โ€‹

See product analysis for full entity model and migration strategy.

Entity hierarchy:

Building (optional, groups units at same address)
  โ””โ”€โ”€ Property (persistent physical unit)
       โ””โ”€โ”€ Listing (time-bound rental offer, 0..N per property)

Gradual introduction (4 steps):

  1. Thin properties table + FK on listings + backfill migration
  2. Landlord portfolio view ("My Properties" with re-list action)
  3. Scraper integration (match imports to existing properties)
  4. Move persistent fields up (bedrooms, parking, etc. โ†’ property level)

Open design decisions:

  • Address normalization strategy for Montreal's varied formats
  • Property ownership transfer (property managers change)
  • Scraped properties owned by system user, claimable by landlords
  • Notes migration: listing-level โ†’ property-level (keep inquiry notes on listings)
  • Image split: property gallery vs. listing marketing photos โ€” start simple, split later
  • Enforce max one active listing per property?

Discussion Notes โ€‹

Feb 20, 2026 โ€‹

  • Initial deep-dive proposal
  • Decided on gradual introduction over big-bang refactor
  • Identified as foundation for F-012 (Buildings) and F-013 (Analytics)

Mar 4, 2026 โ€‹

  • Created Dev Log entry, carrying forward product analysis

Implementation Notes โ€‹

Not yet started.