Skip to content

Properties overview

Open Properties

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, and leaseId tags 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

Property

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.

Unit

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.

Tenant

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.

Lease

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.

Mortgage

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.

Rent Schedule

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.

Rent Change

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.

CronScheduleWhat it doesClient gate
Rent Schedule ensureDaily 03:00Pre-provisions the next ~3 months of Rent Schedule rows per active leasefeatures.propertiesEnabled
Escalations applyDaily 03:05Applies pre-planned lease escalations whose effective date has arrivedfeatures.propertiesEnabled
Rent Changes applyDaily 03:10Applies scheduled rent changes whose effective date has arrivedfeatures.propertiesEnabled
Rent Invoice generation1st of month 04:00Creates invoices for pending Rent Schedule rows whose period has started(no feature gate — consumes pending rows directly)
Fixed-asset depreciation1st of month 02:00Posts monthly depreciation; real-estate assets tag propertyId on JE linesfeatures.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.