Properties overview
Overview
Properties is a sub-module of Books for clients who own and rent real estate — landlords, contractors who build and hold, small portfolio owners. It extends the existing Books ledger with real-estate-specific entities (Property, Unit, Tenant, Lease, Mortgage), automates monthly rent invoicing, and produces the two reports accountants reach for first: Property P&L and Rent Roll.
Properties is opt-in per client via Client.features.propertiesEnabled (default off), and requires Books to be enabled on the client first. Clients that don’t own real estate never see any of it. When enabled:
- A new Properties group appears in the Books sidebar between Purchases and Accounting, with links for Properties, Tenants, Leases, Mortgages, and Rent Roll.
- Journal-entry, invoice, bill, and bank-transaction lines accept optional
propertyId,unitId, andleaseIdtags so the Property P&L can aggregate revenue and expense correctly. - A Chart-of-Accounts seeding wizard offers 12 property-specific accounts (Land, Buildings, WIP - Construction, Tenant Deposits Held, Rental Income, etc.) so you’re not building the chart from scratch.
When to enable Properties
- The client owns one or more properties they rent out.
- You need a Property P&L or Rent Roll report at year-end.
- The client has a construction project that will become an operating rental (the Convert-to-Operating flow is built for this).
- The client pays a mortgage on a rental property and wants clean principal/interest splits.
Do not enable Properties for clients who only book a home-office expense — Fixed Assets alone handles that.
Entities at a glance
A physical property the client owns. Carries address, lifecycle status (construction / operating / disposed), and links to a FixedAsset once converted to operating. Ad-hoc transactions can be tagged straight to the property; a Unit is only required when you want to attach a lease.
A rentable space inside a Property. Label, square footage, bedrooms, bathrooms, market rent, and status. Transactions can be tagged at the Unit level so a 4-plex’s utility bill can split four ways.
An occupant renting from the client. Every Tenant auto-creates a linked “shadow” Customer (source = 'tenant') so the invoice engine has a real AR payer for rent invoices.
Ties a Unit + Tenant with a start/end date, base rent, rent-due day, deposit, and optional pre-planned escalations. Drives the Rent Schedule generator.
Loan terms attached to a Property: principal, rate, compounding, amortization, payment amount. Payment-split math (Canadian semi-annual compounding) is built in; each recorded payment posts a Dr principal / Dr interest / Cr cash JE with the property tagged.
One row per rent period per Lease. Pre-provisioned by a nightly cron for the next few months. The monthly invoice cron consumes these rows.
A record of a mid-lease increase, decrease, or renewal. Status flow: draft → scheduled → applied / rescinded. Stores the notice form (N1 / N2 / N3 / custom / none) for audit.
Background jobs
All jobs run in the America/Toronto timezone.
| Cron | Schedule | What it does | Client gate |
|---|---|---|---|
| Rent Schedule ensure | Daily 03:00 | Pre-provisions the next ~3 months of Rent Schedule rows per active lease | features.propertiesEnabled |
| Escalations apply | Daily 03:05 | Applies pre-planned lease escalations whose effective date has arrived | features.propertiesEnabled |
| Rent Changes apply | Daily 03:10 | Applies scheduled rent changes whose effective date has arrived | features.propertiesEnabled |
| Rent Invoice generation | 1st of month 04:00 | Creates invoices for pending Rent Schedule rows whose period has started | (no feature gate — consumes pending rows directly) |
| Fixed-asset depreciation | 1st of month 02:00 | Posts monthly depreciation; real-estate assets tag propertyId on JE lines | features.autoDepreciation (+ skips locked periods) |
Note that the daily rent tasks stop for a client the moment propertiesEnabled is turned off, but the monthly rent-invoice generator will still invoice any Rent Schedule rows already provisioned, and depreciation is governed by the separate autoDepreciation flag.
What’s not in v1
Deliberately out of scope until customer signal justifies the build:
- Jurisdiction-specific rent-guideline caps (rent changes warn on 12-month cooldowns; they don’t block).
- NOI / cap rate on the Property P&L, and unit-level P&L.
- Deposit disposition letter PDF and an annual deposit-interest accrual cron (interest is a manual helper only).
- Cross-property Units list, Vacancy report.
- Allocation engine for shared-cost splitting across units.
- Multi-owner distributions, T776 data pack.
Related
- COA seeding wizard — The first-run account setup
- Properties list
- Tenants
- Leases
- Rent Roll report
- Property P&L report
- Enable Properties for a client — Step-by-step enablement guide