A solar or hybrid mini-grid - or a landlord reselling submetered power - is an energy business first and a billing office by accident. You generate or buy power in bulk, meter what each customer draws, and then have to turn a wall of registers into fair bills every month, usually across connections scattered well past the last phone mast. Get the read-to-bill cycle wrong and you end up subsidising your own customers.
Where the money leaks
- kWh registers are read on paper and re-keyed, so a mis-typed digit becomes an under- or over-charge nobody catches
- Rising-block (lifeline) tariffs and a standing charge are worked out by hand for every customer
- Half the connections are off-signal, so anything online is useless at the meter
- A customer who isn’t home means a missing read - and a gap in the whole cycle
- Arrears build with no clear list of who to warn or disconnect
Meter the network the way it’s wired
Every customer is an account with its energy submeter, grouped into zones and routes - the round a reader actually walks, whether that’s a village cluster or the risers of a commercial building. A customer can carry more than one meter, and a meter swap records the old closing register and the new opening register cleanly, so a replacement mid-cycle never loses a unit.
Read kWh in the field - even off-grid
Readers use the installable field app: point the camera at the meter and it reads the register digits and serial for confirmation - the reader always checks the number, and the photo is banked as evidence either way. Out past the last mast, readings queue offline on the phone and sync when signal returns. A meter you couldn’t reach? Zana fills an estimated read from that customer’s recent average so the cycle still completes - marked clearly, and trued up on the next actual read.
Suspicious reads are held before they bill - a reading lower than last month, a jump more than 3× the customer’s average, or a meter rollover - as pending verification until someone approves them.
Price the kWh, block by block
Set your tariff once: rising-block bands (a lifeline first block, then higher rates as usage climbs, each block priced at its own rate), a standing charge (prorated for a new connection’s first part-month), a minimum charge floor, and levies as a percentage or a fixed amount. Zana bills each customer’s consumption as itemised lines, and where a customer has more than one meter the units are summed onto one bill.
Worked example. A mini-grid prices the first 30 kWh at KES 20, the next 70 at KES 28, and above that KES 35, plus a KES 200 standing charge. A shop drawing 140 kWh bills 30×20 + 70×28 + 40×35 = KES 3,960 in energy, + KES 200 standing = KES 4,160 - itemised, and identical to what the run totalled.
Run the village, collect by M-Pesa
A billing run prices every connection, then stops at reviewed so you clear the exceptions - missing reads, no meter, no tariff - before anything posts. Two independent guards make double-billing a month impossible. Customers pay by M-Pesa STK push, oldest balance first, and you get arrears ageing by zone and route, a collection rate, a ranked debtor list, and a disconnection candidate list you can turn into disconnect orders in one action. Reconnection fees and security deposits are handled.
What you’ll need
Utility billing is on Pro (KES 2,500/month, up to 250 accounts) and Business (KES 6,000/month, up to 1,000 accounts); larger networks move to Enterprise. Zana prices whatever the register counts - kWh reads exactly like cubic metres - so set your rising-block tariff, add your meters, and run your first cycle end to end.

