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
- Property Management → Properties →
New Property. - Fill in name, address, city, type (RESIDENTIAL / COMMERCIAL / MIXED_USE).
- 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).
- 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.