A property management company operating outside Israel manages six residential buildings, each with about sixteen apartments. Every month, it has to divide each building’s central water bill between the apartments according to actual consumption. Until the company came to us, the entire process was manual. As the number of buildings grew, the task became a recurring monthly burden.
The starting point: one main meter per building, nearly 100 readings a month
Each building has one main water meter connected to the local water utility, together with an individual meter for every apartment. At the end of each month, a staff member visits every apartment across all the buildings and photographs the meters. They then sit with a spreadsheet and manually enter nearly one hundred readings, calculate the difference from the previous month, multiply it by the rate, and produce an invoice for every resident.
This is what we saw at the starting point:
- The monthly calculation had become a full working day repeated across six buildings every month.
- Data entry errors were common. One incorrect digit in a meter reading produced a wrong bill, a resident complaint, and a review of the entire building.
- There was no organized record. When a resident asked why the bill had increased, retrieving the previous month’s reading was difficult.
What we built
We built one simple tool that replaces manual entry and calculation across all the buildings without changing the rest of the team’s work:
- Upload the existing spreadsheet and meter photos. The team continues photographing the meters exactly as before. Instead of typing the readings, it uploads the images for each building together with the previous month’s billing file.
- Read the meters automatically from each image. A text recognition engine reads the digits from every water meter photo and matches them to the correct apartment and building.
- Human review before anything is produced. This is the important part. The tool presents every detected reading on one screen beside the image and flags readings that look unusual compared with the previous month. A person can approve or correct them quickly. Nothing is produced blindly.
- Download everything ready to use. One click downloads an updated spreadsheet and a separate PDF invoice for every apartment, based on actual consumption and the correct rate.
We did not replace any existing system. The tool works around the spreadsheet already in use and returns a file in the same structure.
Why we did not rely on fully automatic recognition
This is the part we are proudest of, even though it is the least impressive on paper. We could have built a system that photographs, reads, and produces invoices without a person looking. We deliberately chose not to. A real water meter photo may include reflections, dust on the glass, and an awkward angle. Automatic recognition makes occasional mistakes, and an incorrect water bill costs far more than the few minutes saved by skipping review. We kept a person in the loop exactly where an error would be expensive.
The results
- What had been a full monthly working day across six buildings became a short upload, review, and download process.
- Data entry errors disappeared. The reading comes directly from the image, while review catches unusual values before a bill is produced.
- Every apartment in every building now has a reading history that can be retrieved in seconds when a resident asks.
Questions we get asked about this process
Does it only work for water meters, or also for electricity and gas? The principle is the same for any meter that is photographed and entered manually. We adapted the tool to the specific meters in these buildings, but the same process can work for electricity and gas.
What happens when the image is unclear and the system is uncertain? The tool marks the reading as uncertain and requests human approval instead of guessing. It is better to stop a person for two seconds than to produce the wrong bill.
Do we need to replace the existing billing system or spreadsheet? No. The tool works around the existing file and returns one in the same structure. We did not replace anything that already worked.
The client’s identifying details were removed at their request. The number of buildings and apartments reflects the actual scope of the work.