Property detail
Overview
The Property detail page is the command centre for a single property. A header section shows the property name, status badge, type, and address (plus notes when present). Below it 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).
A row of action buttons above the tabs changes 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; a single-unit property still needs one Unit if you want to attach a lease to it (leases always reference a unit), though ad-hoc transactions can be tagged to the property directly.
| Column | Notes |
|---|---|
| Label | e.g. “Unit 2A”, “Suite 101” |
| Sqft | Optional |
| Bed/Bath | Optional bedroom / bathroom counts |
| Market rent | Optional; displayed for reference |
| 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 (currentPrincipalBalance, decrements as payments post) |
| Rate | Annual interest rate % |
| Payment | Amount per period, shown as $amount / 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). Each source query is capped at 500 rows, then unioned and sorted by date descending.
Each row shows Date, Source (Invoice / Bill / Journal / Bank txn / Bank split), the reference number (last 8 characters), Counterparty, Description, and Amount (credits marked “cr”). Rows are not click-through to the source document in the current version.
Known limit: with the 500-row-per-source cap, very heavy properties may see truncation — flagged for a later refactor.
Documents
Generic attachments panel — drag-drop upload, thumbnail grid for images, download, delete. Categories: lease, notice, inspection, photo, insurance, tax-notice, mortgage, permit, license, receipt, warranty, title, other. Max 10 MB per file; a MIME allowlist (PDF, common image types, Word/Excel, plain text) is enforced.
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 — Construction), 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). The total is debited against WIP.
- Adjust the CCA class / rate if needed — defaults to Class 1 @ 4% for residential / commercial / mixed properties.
- Click Convert & post JE. A FixedAsset is created, the conversion JE is posted with
propertyIdtagged on every line, and Unit / Mortgage management remains available on the now-Operating property.
Accounts default from workspace.propertyAccountDefaults (buildings, land, WIP, accumulated depreciation, depreciation expense) — the COA wizard populates these. Each can be overridden per conversion by supplying an explicit account ID; if a needed account is neither supplied nor in the defaults map, the request is rejected.
Dispose Property
Visible only when status is Operating. Uses the Fixed Asset disposal service to compute gain/loss and post the disposal JE, then cascades leases to ended.
- Click Dispose.
- Enter the Disposal date, Disposal price, and Method (sold / scrapped / traded in / donated).
- If the disposal price is greater than 0, supply the Cash account ID that receives the proceeds (paste the Chart-of-Accounts ID).
- Click Dispose & post JE. Gain/loss is computed from book value, a disposal JE is posted, and every pending and 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.