Move-In Administration
Workflow purpose
Drive a reliable, fair, and documented move-in for every new resident. Convert an executed lease into a prepared unit, a complete document packet, a scheduled utility transfer, a welcome touch, and a clean event record that updates the property's leased and physical occupancy metrics.
Trigger conditions
- Explicit: "prep move-in for unit X", "move-in packet for resident Y", "welcome communication", "move-in readiness check".
- Implicit: a lease transitions from
executedto withinpreleased_windowofstart_date; a unit ready-date approaches; a renter confirms move-in time. - Recurring: daily scan of upcoming move-ins inside the overlay's notice window.
Inputs (required / optional)
| Input | Type | Required | Notes |
|---|---|---|---|
| Executed lease | record | required | lease_id, unit_id, start_date, resident_ids |
| Unit ready status | record | required | from workflows/unit_turn_make_ready |
| Jurisdiction move-in docs overlay | yaml | required | security-deposit and prepaid-rent handling |
| Utility setup overlay | yaml | required | transfer cutover guide by market |
| Welcome template library | md | optional | overlay-scoped templates |
| Accommodation-request flag | field | optional | if present, route out |
Outputs
| Output | Type | Shape |
|---|---|---|
| Move-in readiness checklist | checklist |
blockers, owners, due dates |
| Document packet | assembled | lease copy, addenda, rules, disclosures per overlay |
| Utility transfer instructions | email_draft |
resident-facing, market-specific |
| Welcome communication | email_draft |
portal + email, marked draft_for_review |
| Move-in event record | update | triggers leased_occupancy, physical_occupancy refresh |
Required context
Asset_class, segment, form_factor, lifecycle_stage, management_mode, market, jurisdiction. Jurisdiction gates document-packet composition.
Process
- Scan upcoming move-ins. Surface every lease with
start_dateinside the overlay's notice window. - Readiness check (decision point).
- If unit status is
ready(from turn workflow) and all required inspections are complete, proceed. - If unit is not ready, open a readiness-blocker checklist; escalate any blocker not resolvable by the overlay's SLA to maintenance_supervisor and property_manager.
- If unit status is
- Document packet assembly. Compose per jurisdiction overlay: lease + addenda + rules + disclosures + security-deposit receipt per statute + any state-required notices. Every template carries
legal_review_requiredif jurisdiction treats it as statutory. - Utility setup. Produce the market-specific utility transfer instructions; include resident-held vs. RUBS-recovered items per overlay. Flag if utility is the owner's responsibility and transfer not needed.
- Welcome communication. Draft portal message + email in overlay-approved tone; scan copy against the fair-housing term list.
- Accommodation-request handling (branch). If the applicant or new resident has indicated a reasonable-accommodation / reasonable-modification need, route out of this workflow to the human-only accommodation path; do not process autonomously.
- Move-in day confirmation. PM or leasing confirms move-in. Workflow records the event, updates metrics, and closes the readiness checklist.
- Post-move-in touch. Schedule a 7-day follow-up draft for PM review.
- Confidence banner. Reference
as_of_dateandstatustags.
Metrics used
move_in_conversion, leased_occupancy, preleased_occupancy, physical_occupancy.
Reference files used
reference/normalized/approval_threshold_defaults.csvreference/normalized/move_in_documents__{jurisdiction}.yamlreference/normalized/utility_setup_guides__{market}.yaml
Escalation points
- Move-in readiness blocker: maintenance_supervisor and property_manager.
- Reasonable-accommodation signal: out of workflow, human path.
- Fair-housing term hit in any communication:
approval_requestrow 3 before send.
Required approvals
None by default. Legal-notice-style documents in the packet rely on jurisdiction overlay; the packet is not sent until PM confirms.
Failure modes
- Move-in without readiness confirmation. Fix: readiness state from the turn workflow is a gate.
- Missing a jurisdiction-specific disclosure. Fix: overlay governs the packet composition; missing overlay refuses.
- Sending welcome copy that signals protected-class preference. Fix: copy scan is mandatory.
- Processing an accommodation request in-line. Fix: auto-handoff to human path.
- Failing to update occupancy metrics. Fix: event record is the write that triggers metric recompute.
Edge cases
- Short-lead move-in (within 48 hours of signing): shorten checklist and flag PM; overlay may require extra confirmation.
- Joint lease with phased move-in (one resident in, one later): event records partial;
leased_occupancyupdates on first;physical_occupancyreflects actual. - Subsidized or assistance-program resident: additional overlay documents; workflow surfaces the overlay path.
- Transfer within property: use this workflow for the destination unit;
workflows/move_out_administrationhandles the origin unit.
Example invocations
- "Prep move-in for unit 214 at Ashford Park on 2026-05-01."
- "What's blocking the move-in for 305 next week?"
- "Build the document packet for resident X at Willow Creek, jurisdiction=Charlotte."
Example outputs
Output — Move-in readiness brief (abridged, unit 214, Ashford Park, start 2026-05-01)
Status. Unit ready per turn workflow, inspection completed 2026-04-28. No blockers.
Document packet. Lease + addenda + rules + disclosures + security-deposit receipt per Charlotte overlay assembled; legal_review_required banners present on statutorily-required disclosures; PM confirmation pending before send.
Utility setup. Charlotte overlay: resident-held electric + gas; owner-held water (RUBS). Resident instruction draft produced.
Welcome. Portal message + email drafted draft_for_review. Copy scan clean.
Accommodation flag. None.
Post-move-in follow-up. 7-day touch scheduled 2026-05-08.
Confidence banner. move_in_documents__charlotte@2026-03-31, status=sample. utility_setup_guides__charlotte@2026-03-31, status=starter.