A gated estate with a borehole and submeters is already a small water utility. It reads meters, prices consumption, raises a bill and chases whoever hasn't paid. Rent is the same invoice, to the same tenant, through the same paybill - it just comes from the lease instead of the meter. Zana runs both halves in one workspace, so the tenant gets one bill and you get one balance per unit.
What usually goes wrong
- Rent lives in one spreadsheet, service charge in another, and the water recovery in a third
- A tenant who moves in on the 12th is billed a full month, or billed by hand and argued with
- Deposits are banked with rent, so nobody can say what is actually held
- Arrears are discovered at the end of a quarter, when the tenant has already gone quiet
- The annual escalation is remembered late, or not at all
Model the block once
A property is the estate or block. Its units are the lettable things - label, floor, type, size and market rent. A lease ties a unit to a tenant with dates, rent, cycle, due day, deposit, escalation and notice period. Add the recurring extras - service charge, parking, garbage, a water standing charge - as lease charges, so a rent run needs no special cases for them.
The tenant is an ordinary customer record, which is why they inherit pay links, receipts, statements, reminders and the WhatsApp inbox without any of it being rebuilt for property. And a unit can point at the utility account behind its submeter, which is what lets one invoice carry both.
Two active leases on the same unit is the property version of a double-booking, so Zana refuses it in the database rather than in a form check. Overlapping dates on one unit cannot be saved, whoever clicks first.
Run the month in one pass
A rent run works exactly like a metered billing run: create, calculate, review, post. Calculating prices every active lease for the period, and the review step is where the run earns its keep - a lease mid-termination, a missing water reading, a unit that fell vacant. You read the exceptions before a single tenant sees an invoice.
- Pro-rata on move-in and move-out, to the day
- Escalation applied on its effective date, with a
lease_eventsentry recording that it was - Arrears shown, never re-billed - the reviewer sees what's outstanding; the earlier invoice is still open and still the one being chased
- Dated to the first of the period it covers, so a run posted late still reads as that month's rent
- Vacant units skipped, not billed to nobody
Worked example. Unit B-12 lets at KES 45,000 with a KES 6,500 service charge and KES 500 garbage. The tenant moves in on 12 March, so the rent line comes to KES 30,968 rather than a full month. The unit's submeter reads 14 m³, priced on the estate tariff at KES 1,398. One invoice: KES 39,366, due 5 April, with February's KES 4,200 shown as brought forward. The tenant opens the pay link and approves an M-Pesa prompt.
One bill, not two
Consolidation is a per-property setting, and it is decided per period, by the lease. When a lease covers the period, the rent run pulls that period's utility charge onto the rent invoice and the utility run treats the account as already billed - at counting time as well as calculation time, so the two runs cannot race each other into double-billing a tenant.
When the unit stands empty there is no rent invoice to carry the water, so that period falls back to the utility run and reaches the account holder instead of going unbilled. And if the reading is missing, that lease becomes an exception rather than an invoice that quietly under-bills - under consolidation the tenant was promised one invoice, so an incomplete one is worse than a held one.
Because water billed on a rent invoice is still sold water, the estate water balance counts it as billed consumption. Bulk inlet against the sum of unit meters tells you what the estate bought and never recovered.
Deposits are held money
A deposit is a liability, not income. Zana charges it, holds it in the ledger against the lease, and keeps it out of everything that measures collection - it is neither rent billed nor rent collected, so it never flatters a collection rate or an owner statement.
The exit is explicit: check-out inspection, deductions with photos against the check-in condition, offset against outstanding arrears, refund the remainder. Each step is a record, which is what you want the day a former tenant disputes the number.
Collect and chase like everything else
Every posted invoice carries an M-Pesa STK push and card pay link, and your paybill, bank and till instructions are printed on it for anyone who'd rather use those. Deposits into the paybill are reconciled from an uploaded statement against the reference the tenant quoted, oldest balance first. Arrears age at 30, 60 and 90 days per property and per unit, with a collection-efficiency figure for the period and a ranked list worth a phone call - and SMS or WhatsApp reminders to send it with.
What you'll need
Add the property and its units, create a lease per occupied unit, and raise your first rent run. If you already bill the estate's water in Zana, the units point at the meters you have.
What this doesn’t do
Rent & Service Charge Billing is billing and collection. It does not cover:
- short stays, holiday lets or channel-manager sync
- a tenant self-service portal beyond the tokenised pay page
- listings, viewings or tenant screening
- holding client money or tenant deposits as a float inside Zana
- valuations, land registry or title records
If you need any of these, tell us before you sign up - we’d rather say so now than in month two.
The parts of Zana doing the work here
Run this on Zana
Set up in minutes - no card required.