Property detail
Overview
The Property detail page is the command centre for a single property. The header shows the property name, type, status badge, and address. Below that are three tabs:
- Overview — Units and Mortgages embedded subsections.
- Activity — Every transaction tagged to this property (invoices, bills, journal entries, bank transactions).
- Documents — Attachments (photos, lease PDFs, insurance policies, tax notices).
Above the tabs, action buttons change based on lifecycle state:
- P&L — always visible, opens the Property P&L scoped to this property.
- Convert to operating — shown only when status is Construction.
- Dispose — shown only when status is Operating.
- Edit / Delete — always visible.
Tabs
Overview
Two embedded sections:
Units
Opens the Unit create form. Use this for multi-unit properties; single-unit properties can skip Units and tag transactions directly to the property.
| Column | Notes |
|---|---|
| Label | e.g. “Unit 2A”, “Suite 101” |
| Sqft | Optional; used by the future shared-cost allocation engine |
| Bed / Bath | Optional |
| Market rent | Displayed for vacancy / opportunity reporting |
| Status | Vacant / Occupied / Off-market / Owner-occupied |
Row actions: Edit, Delete.
Mortgages
Opens the Mortgage create form. One property can have multiple mortgages (primary + second mortgage / refinance).
| Column | Notes |
|---|---|
| Lender | Free text |
| Balance | Current principal balance (decrements as payments post) |
| Rate | Annual interest rate % |
| Payment | Amount per frequency (monthly / semi-monthly / bi-weekly / weekly) |
| Status | Active / Paid off / Closed |
Row actions: Record payment (shown for Active), Edit, Delete. See Mortgages for the payment flow.
Activity
Unified list of every transaction tagged to this property. Sources: Invoice line items, Bill line items, Journal Entry lines, Bank Transactions (header tag and split rows). Sorted by date descending.
Each row shows date, source type (Invoice / Bill / Journal / Bank txn / Bank split), reference number, counterparty, description, and amount.
Known limit (v1): each source caps at 500 rows before union + pagination. Heavy properties may see truncation — flagged in the launch checklist for a post-v1 refactor to $unionWith.
Documents
Generic Attachments panel — drag-drop, thumbnail grid for images, PDF preview modal, download, delete. Categories: lease, notice, inspection, photo, insurance, tax-notice, mortgage, permit, license, receipt, warranty, title, other.
Lifecycle actions
Convert to Operating
Visible only when status is Construction. Creates a FixedAsset with category real-estate, posts the conversion JE (Dr Buildings + Dr Land, Cr WIP), and flips status to Operating.
- Click Convert to operating.
- Enter the Placed-in-service date — when the property was ready for rent.
- Split the cost between Land value (non-depreciable) and Building value (depreciable basis).
- Override the CCA class / rate only if different from Class 1 @ 4% (the default for residential buildings post-1987).
- Click Convert & post JE. A FixedAsset is created, the conversion JE is posted with
propertyIdtagged on every line, and Unit / Lease creation remains available on the now-Operating property.
Accounts default from workspace.propertyAccountDefaults — the COA wizard populates these. If defaults are missing, the backend rejects the request; run the wizard first.
Dispose Property
Visible only when status is Operating. Uses the existing Fixed Asset disposal service to compute gain/loss and post the disposal JE, then cascades active leases to ended.
- Click Dispose.
- Enter the Disposal date, Disposal price, and Method (sold / scrapped / traded in / donated).
- If proceeds > 0, supply the Cash account ID that receives them.
- Click Dispose & post JE. Gain/loss is computed from book value, a disposal JE is posted, and every active lease on the property is flipped to
endedwith the disposal date as the end date.
This is transactional: if any write fails, the whole disposal rolls back — no half-disposed state.