Household groupings — the design

Proposed — pending review

The top-level choice is already written up at A household is one lead — read that first if you want the problem. This page is the design: what the household record is, where it sits, and how we get there without a big bang.

The model

A household is created at the first inquiry — a household of one. People attach to it with a role: primary, co-applicant, co-signer, or occupant. The household carries through inquiry, application, and approval.

One household is one deal: listed once, counted once, reminded once. When we discover two records are really one household, we link them — we never delete a person, so a co-signer stays screenable and reachable. Role comes from structural evidence the PMS gives us, never from reading a name.

Where it sits

Members attach by personId. Person already answers "who is this human" (ADR-0018/0020 — a role is a relationship that points at a Person, not a separate identity table). Household answers the one question Person doesn't: which humans are one deal.

So this is no new identity mechanism and no parallel person table — it is another relationship on the spine, the same shape as PersonRole. Each PMS adapter maps its own evidence into memberships: AppFolio's rental-application group id joined through the spine, Yardi's and RealPage's structural role fields where they exist.

Decided (Fede, 2026-08-04): Households are org-scoped, like PersonRole — a Person can cross orgs, but each household belongs to one organization. Same boundary ADR-0020 drew for roles.

The plan, in three stages

a. Group the lists (in flight now) Read-side only. One prospect card per application group, one PM reminder. Nothing new is stored.

b. The household record Household plus roles, sync writers that populate it, and one small backfill. Households are lazy — a lone inquiry is a household of one — so the backfill is a single idempotent pass over active prospects.

c. Move the workflow onto it Stage and reminders belong to the household rather than to whichever person happened to arrive first.

Stage (b) doesn't ship until the Willows test harness passes it. The harness is being built alongside this and covers the cases that have burned us: a joint couple with ordinary names, a co-signer whose label is typed wrong, two solo inquiries that turn out to be one household, and a person holding two roles at once.

Three things to pick

1. When does the headline Applications count switch to households?

2. Two solo households turn out to be one. Who joins them?

3. Do we ship the occupant role in v1?

PropFlow Docs