Skip to content

Property management software · Kenya

Someone will ask where the money went.

A landlord, a tenant, or you at eleven at night. The question always comes. What you control is how long the answer takes, and whether it is the same next month.

Free dry run on your own portfolio · nothing written until you approve it · no contract

WK
W. KimaniLandlord · Riverbank Court
Habari. Naomba statement ya June. Pia hiyo 7,500 ilikuwa ya nini?
One moment 👍
June · Riverbank Court
1 JunOpening0.00
6 JunRent — 11 units412,000.00
12 JunPlumber, Unit 3A(7,500.00)
30 JunFee + VAT(38,233.60)
28 JunPaid to you(366,266.40)
Closing0.00

The work, whoever does it

Six things that have to happen every month

Forty units for other people or twelve of your own, the month is the same shape. Miss one and it turns up later as an argument.

Charges raised on the day they fall due

Rent, service charge and water, defined once against the lease and raised on schedule.

Money matched to what it was for

A payment clears named charges, oldest first, and states what is left over.

Arrears you can act on

Who owes, how much, how long. Derived from the entries, so it cannot drift away from the money.

Costs in the period they belong to

Recorded when incurred and again when paid, against the unit. Your accountant gets inputs.

Statements that reconcile

March's closing balance is April's opening balance, or it is not an account.

Tenants who can check for themselves

Their charges, their payments, what each one cleared, and what is left.

M-Pesa rent collection

Rent arrives from your paybill and clears itself

Payments come in from Safaricom Daraja as they happen, each carrying its transaction code, and clear the charges they were meant for. No Monday morning download.

Step one

Tenant pays your paybill

The number they already use. Nothing changes for them.

Step two

The payment lands

Amount, sender and transaction code, recorded as it arrives rather than retyped later.

Step three

It clears charges in order

Oldest first, across every unit that payer holds. The remainder is stated.

Step four

What didn't match is a short list

Unidentified payments queue for you to assign.

How it holds together

The software isn't the problem. The record is.

We tested nineteen property management systems sold in Kenya. Almost every one stores the current value of a payment: what the field says today, not what happened. Everything else follows from that.

Here a payment clears something. Payments that span two properties are ordinary, and so are part payments.

So nobody assembles the statement. It is the entries, read back. There is no second place the numbers could disagree, because there is no second place.

Owed
Cleared
Arrived
6 June · receipt posted
M-Pesa · A. AchiengSGH4K2P9Q131,000.00
Rent · JuneRiverbank Court, Unit 4B
28,000.00paid
Water · JuneRiverbank Court, Unit 4B
2,400.00paid
Rent · JuneNgong Road, Shop 2 — part paid
35,000.00600.00
Still owed 34,400.00on Shop 2Balances

When someone gets it wrong

A payment is not a row you can quietly edit

Every system lets you fix a mistyped figure. What matters is what is left behind.

Edited in place
6 JunReceipt · A. Achieng13,000.00
—edited, Tue 14:02—
6 JunReceipt · A. Achieng31,000.00

The middle line doesn't exist. One record holds whatever was typed last, and nobody can tell you what it said yesterday.

Corrected by reversal
6 JunReceipt · A. Achieng13,000.00
6 JunReversal · keying error(13,000.00)
6 JunReceipt · A. Achieng31,000.00

Three entries, none deleted, ending at the right figure.

The difference, concretely

Four ordinary situations most systems can't record

These are not edge cases. They are Tuesday. A system storing one tenant per unit and one payment per row has to fudge all four, usually by editing a figure until it looks right.

One person, several units

A tenant with a flat and a shop is one party holding two agreements, not two records sharing a phone number.

A. Achieng — statement
Riverbank 4B · rent28,000.00
Ngong Rd Shop 2 · rent35,000.00
Received 6 Jun31,000.00

Two names on one lease

Joint liability means each tenant owes the whole rent, not half. Chase either for the full figure.

Lease 2210 · joint & several
W. Kimani — liable for45,000.00
N. Otieno — liable for45,000.00
Charge raised once45,000.00

A landlord who joins you mid-year

Arrears from whoever kept the book before arrive as a dated opening journal that has to balance.

Opening journal · 1 Mar
Brought forward — 11 units402,300.00
Marked pre-cutoveryes
Journal balances to0.00

A landlord who sells mid-year

Their view stops at the date the unit changed hands. Nothing is deleted; they simply see nothing after it.

Unit 7 · sold 14 Apr
Statement to 14 Aprvisible
May rent, new ownernot visible
Entries deletednone

Where we stop

Two things we deliberately don't do

Being clear about the edge is worth more than another feature claim. Everything else on this site works.

Out of scope, by design

Filing your returns

The system produces the figures: rent billed, rent collected, costs by category, per property. It does not submit anything to KRA. Your accountant files, and can see where each number came from.

Out of scope, by design

Your company's general ledger

This is the client-money book and your rental income. Not your payroll, your loans or your fixed assets. It hands clean inputs to whatever holds those.

Only if you collect for other people

Money you hold on trust is not your money

Skip this if you let your own property. If you collect for other people it is the whole job, and not one of the nineteen separates client money from the agency's own in the record itself. Both are rows in one table.

Held on trustKES1,204,880.00

Collected for eleven landlords and not yet paid over. It is theirs. It appears nowhere in what your business earned.

Your ownKES318,000.00

Rent from the two buildings your company owns. Income, in the same book as everything above it and unable to mix with it.

These two figures cannot be added together by accident. Not by a tired clerk at month end, and not by a bug.

Landlord logins, commission, staff scoped to their buildings: the rest of that argument is on for agents →

Before you ask

The four questions everyone asks first

Moving our data sounds like a nightmare.

It's where everyone gets burned, so it's the part we've spent most effort on. Send whatever you have: spreadsheets, an export, three files that disagree. We load it into a dry run and give you back a report on your own portfolio — what was found, what matched, and every ambiguity we refuse to guess at. Nothing is written until you say so.

Do you touch our money?

No. Rent goes to your paybill and your bank exactly as it does now. This is the book that records it, not a payment processor. We never hold a shilling of yours or your landlords'.

Who can see what?

Each person opens the book at their own row. A tenant sees their charges, payments and balance. A landlord sees their own units, including ones they used to own, which stop at the date they sold. The boundary is enforced by the database, not by a screen.

Our staff aren't technical.

The daily work is recording a payment and looking someone up by name or phone number. If your team can use M-Pesa and WhatsApp, they can use this.

Next step

See your own portfolio before you decide anything

Send whatever you keep the rent in. Two days later you get it back loaded and reconciled, with every problem in your data named. No account, no card, no call unless you want one.

Free dry runNothing written without approvalNo contractYour data leaves with you