迷你倉 · Self-storage · Hong Kong
Occupancy and rent automation for a Hong Kong mini-storage operator
An empty unit is rent you are already paying for.
Occupancy lived on a whiteboard. Rent was raised by hand, unit by unit, every month. Overdue rent was whatever somebody remembered. We made the occupancy board and the billing run the same screen.
The challenge
A unit went empty and nobody noticed for weeks, because knowing which ones were free meant asking the person who knew. Rent was invoiced by hand each month, so a part month was a judgement call and a missed unit was simply free storage. Access cards went out with the lease and did not always come back.
The solution
The unit map, the lease and the rent invoice became one record. Colour on the map is not decoration — it is the billing state. Change a lease and the map, the invoice and the ageing all move together.
The screen they open
What you see: which units are earning, which are empty, and who has not paid — on one screen, without opening a spreadsheet.
What we built
Unit map
Every unit on a plan of the site, coloured by state: let, overdue, moving out at month end, or vacant.
Lease record
Move-in and move-out dates, size, rate, deposit and access cards issued — per unit, with its history.
Rent run
Invoices issue on the first for every occupied unit — one invoice per customer, not one per unit.
Part months
Pro-rata calculated from the actual move-in or move-out date, so the first and last month stop being an argument.
Overdue rent
Rent ages per unit and chases itself, and an overdue unit turns red on the map.
Occupancy view
Rate let, revenue per square foot, and what falls vacant next month — read off the same records.
The workflow we built
- A unit is let. The lease record is the booking: dates, size, rate, deposit, cards issued.
- The map updates itself. That unit turns green on the plan, and it is now in the rent run. Nobody moves a magnet.
- Rent bills on the first. Every occupied unit, one invoice per customer, pro-rata wherever the month is partial.
- What is unpaid, ages. The unit turns red on the map and the chase goes out on schedule, not when someone remembers.
- A unit falls vacant. It goes amber before month end, so the empty week is visible in advance rather than discovered later.
The results
- Which units are free became a glance instead of a question.
- The monthly rent run stopped being a day of manual invoicing.
- Part months are calculated from the lease dates, so first and last invoices stopped being disputed.
- Overdue rent surfaces on the same screen as occupancy, so chasing no longer depends on remembering.
Client anonymised. Screens show sample data, not client records. Figures describe the system we built.
