{"kind":"demo-sample-data-package","version":"wave-1","sourceDemo":{"slug":"property-management","title":"Property Management Pipeline Portal","archetype":"A5","canonicalPath":"/demo-library/property-management","appPath":"/demo-apps/property-management","subdomain":"property-management.ideas-realized.com"},"package":{"headline":"LeaseOps Portal sample data package","summary":"LeaseOps Portal has 2 buyer-ready CSV template(s), 3 mapped source group(s), and 10 checks for moving from seeded demo data to a first tenant dry import.","productName":"LeaseOps Portal","tenantName":"Harborstone Property Group","productionDomain":"property-management.ideas-realized.com","canonicalPage":"/demo-library/property-management","previewScreen":{"id":"accounting","label":"Accounting","proof":"move-in ledger and owner-ready accounting handoff","url":"https://property-management.ideas-realized.com?screen=accounting"},"cutoverStrategy":"Import a small cohort of new-owner records, reconcile property identifiers with the PMS, then invite internal managers before owner-facing portal access.","privacyNote":"Owner tax records, bank details, and lease documents should be represented as status records until secure storage and access rules are approved.","counts":{"templateCount":2,"sampleRowCount":4,"sourceCount":3,"mappedFieldCount":11,"requiredFieldCount":7,"validationGateCount":3,"acceptanceCheckCount":10},"sources":[{"name":"Owner and property export","system":"AppFolio, Buildium, QuickBooks, or onboarding spreadsheet","owner":"Onboarding coordinator","cadence":"Initial seed plus weekly new-owner import","status":"needs-client","recordEstimate":"20 to 120 owner/property records","fieldCount":4,"requiredFieldCount":3,"fields":[{"sourceField":"owner_name","targetField":"Owner.displayName","required":true,"transform":"Trim and preserve legal suffixes.","validation":"Owner name required for packet and message views."},{"sourceField":"owner_email","targetField":"Owner.email","required":true,"transform":"Lowercase and validate deliverability format.","validation":"Duplicate owner emails require relationship review."},{"sourceField":"property_address","targetField":"Property.address","required":true,"transform":"Normalize street, unit, city, state, and ZIP.","validation":"Address must be unique or linked to existing property."},{"sourceField":"management_start_date","targetField":"Onboarding.targetLaunchDate","required":false,"transform":"Normalize to ISO date.","validation":"Missing launch dates default to needs-scheduling."}]},{"name":"Document checklist","system":"Shared drive, portal export, or intake checklist","owner":"Document specialist","cadence":"Daily during onboarding sprint","status":"template","recordEstimate":"8 to 20 document rows per property","fieldCount":4,"requiredFieldCount":2,"fields":[{"sourceField":"document_type","targetField":"Document.type","required":true,"transform":"Map to management agreement, W-9, insurance, lease, HOA, keys, or inspection.","validation":"Unmapped document types import as needs-review."},{"sourceField":"status","targetField":"Document.status","required":true,"transform":"Map received, missing, owner-action, internal-review, approved.","validation":"Approved requires received date."},{"sourceField":"owner_action","targetField":"Document.ownerAction","required":false,"transform":"Convert blank values to no-action.","validation":"Owner-action status requires a visible action note."},{"sourceField":"received_at","targetField":"Document.receivedAt","required":false,"transform":"Normalize date and tenant timezone.","validation":"Future dates require review."}]},{"name":"Rent-ready task list","system":"Property manager spreadsheet or maintenance board","owner":"Property manager","cadence":"One import per onboarding cohort","status":"ready","recordEstimate":"5 to 18 tasks per property","fieldCount":3,"requiredFieldCount":2,"fields":[{"sourceField":"task_name","targetField":"LaunchTask.label","required":true,"transform":"Trim and map common task templates.","validation":"Task label required."},{"sourceField":"owner","targetField":"LaunchTask.ownerRole","required":true,"transform":"Map manager, accounting, leasing, maintenance, owner.","validation":"Owner role must exist in permissions."},{"sourceField":"due_date","targetField":"LaunchTask.dueAt","required":false,"transform":"Normalize date.","validation":"Past due dates import as blocked."}]}],"templates":[{"id":"owner-property-intake","label":"Owner and property intake","fileName":"property-management-owner-property-intake.csv","downloadPath":"/demo-library/property-management/import-templates/owner-property-intake","sourceSystem":"Property management spreadsheet or owner CRM export","owner":"Onboarding manager","cadence":"Initial pilot import, then per-owner onboarding batch","description":"Creates property onboarding records, owner contacts, stage status, and rent-ready ownership.","columnCount":7,"requiredColumnCount":5,"sampleRowCount":2,"columns":[{"name":"property_id","required":true,"description":"Stable property identifier.","example":"PROP-4421"},{"name":"property_name","required":true,"description":"Property display name.","example":"Harbor View Duplex"},{"name":"owner_name","required":true,"description":"Primary owner or ownership entity.","example":"North Coast Holdings"},{"name":"owner_email","required":true,"description":"Owner email for packet reminders.","example":"ops@northcoast.example"},{"name":"stage","required":true,"description":"Current onboarding stage.","example":"Documents"},{"name":"reserve_amount","required":false,"description":"Approved owner reserve amount.","example":"2500"},{"name":"target_launch_date","required":false,"description":"Target rent-ready or listing date.","example":"2026-07-15"}],"sampleRows":[{"property_id":"PROP-4421","property_name":"Harbor View Duplex","owner_name":"North Coast Holdings","owner_email":"ops@northcoast.example","stage":"Documents","reserve_amount":"2500","target_launch_date":"2026-07-15"},{"property_id":"PROP-4480","property_name":"Juniper Court 12","owner_name":"Vale Family Trust","owner_email":"vale@example.com","stage":"Review","reserve_amount":"1800","target_launch_date":"2026-07-22"}],"csvPreview":"property_id,property_name,owner_name,owner_email,stage,reserve_amount,target_launch_date\r\nPROP-4421,Harbor View Duplex,North Coast Holdings,ops@northcoast.example,Documents,2500,2026-07-15\r\nPROP-4480,Juniper Court 12,Vale Family Trust,vale@example.com,Review,1800,2026-07-22","acceptanceChecks":["Every property has an owner contact before owner reminders are enabled.","Reserve fields are reviewed before accounting export.","Stage values map to the approved onboarding pipeline."]},{"id":"document-checklist","label":"Document checklist import","fileName":"property-management-document-checklist.csv","downloadPath":"/demo-library/property-management/import-templates/document-checklist","sourceSystem":"Shared drive index or onboarding checklist","owner":"Document coordinator","cadence":"Initial setup, then per-portfolio update","description":"Defines required owner packet documents, due dates, and review owners by property.","columnCount":5,"requiredColumnCount":4,"sampleRowCount":2,"columns":[{"name":"property_id","required":true,"description":"Property identifier from owner-property intake.","example":"PROP-4421"},{"name":"document_name","required":true,"description":"Required file or packet item.","example":"Signed management agreement"},{"name":"status","required":true,"description":"Document status.","example":"Missing"},{"name":"due_date","required":false,"description":"Target due date in ISO format.","example":"2026-07-02"},{"name":"review_owner","required":true,"description":"Staff owner responsible for review.","example":"Leasing admin"}],"sampleRows":[{"property_id":"PROP-4421","document_name":"Signed management agreement","status":"Missing","due_date":"2026-07-02","review_owner":"Leasing admin"},{"property_id":"PROP-4480","document_name":"W-9","status":"Uploaded","due_date":"2026-07-05","review_owner":"Accounting lead"}],"csvPreview":"property_id,document_name,status,due_date,review_owner\r\nPROP-4421,Signed management agreement,Missing,2026-07-02,Leasing admin\r\nPROP-4480,W-9,Uploaded,2026-07-05,Accounting lead","acceptanceChecks":["Required document names match the buyer-approved packet list.","Rejected and missing documents have review owners.","No private financial documents are imported until access policy is approved."]}],"validationGates":[{"label":"PMS identifier match","severity":"blocking","detail":"Owner and property records need stable identifiers before accounting export.","resolution":"Confirm PMS owner ID and property ID fields during import dry-run."},{"label":"Sensitive document storage","severity":"blocking","detail":"Tax, banking, and lease file handling cannot use placeholder document URLs.","resolution":"Use status-only imports until secure storage and permissions are configured."},{"label":"Owner-visible message approval","severity":"warning","detail":"Incomplete message templates can create confusing owner portal status.","resolution":"Approve the first-week owner message sequence before invites."}],"acceptanceChecklist":["Owner and property intake: Every property has an owner contact before owner reminders are enabled.","Owner and property intake: Reserve fields are reviewed before accounting export.","Owner and property intake: Stage values map to the approved onboarding pipeline.","Document checklist import: Required document names match the buyer-approved packet list.","Document checklist import: Rejected and missing documents have review owners.","Document checklist import: No private financial documents are imported until access policy is approved.","PMS identifier match: Confirm PMS owner ID and property ID fields during import dry-run.","Sensitive document storage: Use status-only imports until secure storage and permissions are configured.","Owner-visible message approval: Approve the first-week owner message sequence before invites.","Open Accounting after dry import and verify move-in ledger and owner-ready accounting handoff."],"handoffRoutes":[{"label":"Sample data package","href":"/demo-library/property-management/sample-data-package","detail":"Markdown handoff with CSV templates, seed rows, validation gates, and cutover notes."},{"label":"Sample data package JSON","href":"/demo-library/property-management/sample-data-package.json","detail":"Machine-readable sample-data manifest for implementation automation."},{"label":"Production data contract JSON","href":"/demo-library/property-management/data-contract.json","detail":"Entity, source, event, API-shaped route, and boundary contract for production planning."},{"label":"Implementation JSON","href":"/demo-library/property-management/implementation.json","detail":"Full setup spec with routes, productization fields, tenant defaults, and security notes."},{"label":"Implementation intake","href":"/implementation-intake/property-management-implementation-intake","detail":"Buyer source-system, domain, access, and asset collection workflow."},{"label":"Live app proof screen","href":"https://property-management.ideas-realized.com?screen=accounting","detail":"Accounting: move-in ledger and owner-ready accounting handoff"}]},"implementationManifest":{"markdownPath":"/demo-library/property-management/sample-data-package","jsonPath":"/demo-library/property-management/sample-data-package.json","importTemplatePaths":["/demo-library/property-management/import-templates/owner-property-intake","/demo-library/property-management/import-templates/document-checklist"],"dataContractJsonPath":"/demo-library/property-management/data-contract.json","implementationSpecPath":"/demo-library/property-management/implementation.json","tenantClonePackageJsonPath":"/demo-library/property-management/tenant-clone-package.json","firstProofUrl":"https://property-management.ideas-realized.com?screen=accounting","firstProofScreen":"accounting"}}