Property management

Properties & units

Buildings, their units, ownership, and the people who run them. This is the foundation every other module sits on.

The hierarchy

A Property is a physical asset: a building, a house, a shop block. It has an address, currency, and one or more units. A Unit is a rentable space inside a property — an apartment, an office, a shop. Each unit has its own rent, bedrooms, status (VACANT, OCCUPIED, RESERVED), and gallery.

Leases attach tenants to units, never directly to properties. This means one property can have a mix of rented, vacant, and reserved units, and your occupancy reporting works correctly out of the box.

Creating a property

  1. Property Management → Properties → New Property.
  2. Fill in name, address, city, type (RESIDENTIAL / COMMERCIAL / MIXED_USE).
  3. Set the property currency. Defaults to the org base currency but you can override per property (e.g., USD-denominated commercial units inside a UGX organization).
  4. Optionally attach an owner from Owners (creates a percentage split if you have multiple owners).

Units

Open a property and use the Units tab to add units one-by-one or in a batch. Each unit has:

  • Unit number / name — required, unique within the property.
  • Rent amount + frequency — used when generating monthly charges.
  • Bedrooms, bathrooms, floor area — drives search filters on the public website.
  • Status — auto-updated when a lease is created/ended.
  • Amenities + photos — used by the public website and listings.

Staff assignments

Assign property managers, accountants, and maintenance staff to specific properties via the Staff tab on each property. Permissions cascade — a PROPERTY_MANAGER assigned to "Nakasero Heights" only sees that property's tenants, leases, work orders, and complaints.

Performance & analytics

Property Management → Properties → Performance shows occupancy %, collection rate, NOI per property, and 12-month trends. Owners see a filtered version on their portal under Owner Portal → Properties.

Decommissioning a property

Don't delete a property that has historical leases or GL entries — the audit trail will be incomplete. Mark it isActive=false instead. The unit list, occupancy reports, and quick-actions hide inactive properties; the data stays for reporting and audit.