Housing association management software: every bill must add up
How we built Statum, housing association management software in which every owner can check their bill line by line against the building's.
AFKzona Group · 7 min read
- The short answer
- A building's costs arrive as one bill and must leave as one bill per flat
- Statum computes every flat's share as a row that can explain itself
- The flats' bills have to add up to the building's, and the gap is stored
- Keeping the reason beside the number made the rest simpler
- Evaluating housing association software comes down to five questions
- What generalises
- Questions
The short answer
- Statum gives a Lithuanian housing association or its administrator one workspace for charges, meters, payments, funds and votes, with portals for owners and contractors.
- The difference between the building's main meter and the flat meters is priced at the tariff and split by the rule each building sets per utility: floor area, residents, equal shares or metered use.
- Every flat's amount is stored with its consumption, tariff, method and basis, and each billing period keeps the building cost, the allocated total and the difference side by side.
- Utility charges are issued from a calculated period, monthly fees from a reviewed billing run, and every overpayment becomes a credit balance on the flat.
A block of flats gets one water bill. Its owners get one each. Between the two sits a number nobody likes: the gap between the building's main meter and the sum of the flats' meters, made up of leaks, common taps, late readings and meters that under-read.
Statum is the system we built for that gap, run by the association (bendrija) or its administrator. It shares one platform with our rental, commercial property and development products: 216 pages, 955 API endpoints and 223 database tables in all.
This case study follows the rule it is built around: the flats' bills must add up to the building's bill, and every flat's share must explain itself.
A building's costs arrive as one bill and must leave as one bill per flat
Most of what a housing association does with money is division. Heating, water, cleaning, a roof repair and the renovation fund arrive as one amount for the building and have to be split across the flats. Lithuanian law sets the default: owners pay the upkeep of common property in proportion to their share, and the share follows floor area.
Division is easy. Explaining it is not. An owner who disputes the water line on their bill wants their own reading, the tariff, and the reason they pay part of a leak in the basement. A spreadsheet produces the number and rarely keeps the reasons next to it.
Statum computes every flat's share as a row that can explain itself
Each billing period in Statum carries a status that runs from open, while readings go in, to calculated, and to invoiced once charges are generated. Calculating a period prices the building meter and the flat meters for each utility at the tariff and writes one row per flat showing how its amount was reached.
A flat's consumption is the new reading minus the previous one, times the meter's multiplier, and never negative: a reading lower than last month's counts as zero, not as a refund.
The part that matters is the difference. The building meter minus the sum of the flat meters is priced at the same tariff and split by a rule each building sets per utility: by floor area, as the law sets by default, by number of residents, equally per flat, or in proportion to metered use. For a utility with no flat meters, Statum splits the whole building cost by the chosen rule.
Every flat's row keeps its consumption, the tariff, its own-use cost, its share of the difference, the method, and the basis it was split on, such as the flat's square metres. That row is the answer to an owner who asks why.
The rest of the finance module follows the same pattern. Monthly fees are prepared as a billing run: each flat's amount, by area, per flat or by hand, is stored as a preview the administrator can adjust flat by flat before issuing. A contractor's invoice is split by floor area or equally into a draft charge for each flat, with a timeline entry naming the amount, the number of flats and the method.
The flats' bills have to add up to the building's, and the gap is stored
Every calculated period stores three totals side by side: what the building meter cost, what was allocated to flats, and the difference that was shared out. The administrator sees all three before any charge exists, so every split is reconciled on the same screen that issues the bills.
A split every owner can check is a split that holds. In Statum the gap between the meters has a name and a figure.
The code enforces the rules of the money. Charges cannot be generated from a period that has not been calculated. An issued billing run cannot be issued again. A payment cannot be allocated beyond what is left of it, and an overpayment becomes a credit balance on the flat. A withdrawal that would take a fund, such as the renovation fund, below zero is rejected. Votes count one ballot per flat or one per eligible owner, as the association sets.
Two cases show why the stored totals matter. Each flat's amount is rounded to the cent, and Statum stores the building cost and the allocated total side by side, so the administrator sees both to the cent. When the flat meters add up to more than the building meter, a sign of a late or mistyped reading, Statum sets the difference to zero and shows the overshoot as allocated above cost, so the administrator corrects the reading on the review screen.
Keeping the reason beside the number made the rest simpler
The decision that shaped Statum was to treat every split as a record with its inputs, not as a result. Once each flat's line carries its method and basis, the homeowner portal, the charge description and the arrears view read the same stored numbers, and nobody recomputes a split to explain it.
It also let four products share one finance core: rentals, commercial property and developments use the same charges, payments and credit balances. Arrears are staged from that data, overdue after 30 days and escalated after 90.
Evaluating housing association software comes down to five questions
| Question | What good looks like |
|---|---|
| Where does the difference between the building meter and the flat meters go? | It is priced, split by a rule chosen per utility, and shown on every flat's line. |
| Can an owner see why their amount is what it is? | Each line keeps the consumption, tariff, own-use cost and share of the difference, with the method and basis, such as floor area, stored beside them. |
| Do the flats' totals reconcile to the building's bill? | Building cost, allocated total and difference are stored per period and shown before issue. |
| Can you preview monthly charges before anyone is billed? | Per-flat amounts can be reviewed, adjusted or excluded, then issued once. |
| What happens to an overpayment? | It becomes a credit balance on the flat, not an unexplained surplus. |
What generalises
Any organisation that divides a shared cost has this problem: service charges in an office building, energy across tenants, cloud spend across teams. The work is keeping the inputs beside the output, so the person paying can follow the split and the person issuing can reconcile it.
If a rounding difference or a meter mismatch would embarrass you in front of the people paying, it belongs in the data model, not in a spreadsheet beside it.
To see how we approach this kind of system, read about property management software or look at the Statum screens, and if you run a housing association and want to walk through it on demo data, book a call.
Common questions
How are utility costs split between flats in an apartment building?
Flats with their own meters pay their metered use at the tariff. What the building meter records beyond that is split by a rule: by floor area, by number of residents, equally per flat, or in proportion to metered use. For a utility without flat meters, Statum splits the whole building cost by the chosen rule. Statum stores the method and the basis on every flat's line.
What happens to the difference between the building meter and the flat meters?
The gap between the building meter and the sum of the flat meters comes from leaks, common taps, late readings and meters that under-read. In Statum that difference is priced at the same tariff and shared out by the rule the building chose for that utility: floor area, residents, equal shares or metered use. Each period stores the difference as its own figure, so it can be checked.
What should housing association management software include?
At minimum: buildings and flats with floor areas, owners and residents, recurring charges and one-off charges, meter readings and utility splits, payments and arrears, funds such as a renovation fund, contractor work and invoices, votes, and a portal where owners see their own charges. The test is whether an owner can see why each amount on their bill is what it is.
How do you split a contractor invoice between apartment owners?
Record the contractor's invoice against the building, then split it by floor area or equally across the flats. In Statum the split creates a draft charge for each flat, and a timeline entry records the amount, the number of flats and the method used.
Can apartment owners see their charges and payments online?
Yes. Statum includes a homeowner portal where each owner sees their flat, their charges and whether each is paid, documents, notices, votes and maintenance requests. The portal reads the same charges the administrator works with, and a utility charge's description lists each utility with its amount, while the administrator's view shows each flat's consumption, tariff, own-use cost and share of the difference, with the method and basis stored on every line.

