How to stop managing properties in spreadsheets
Published on·5min read
Almost every property management operation starts in a spreadsheet, and for good reasons: it is free, everyone understands it, and the first lease fits in three columns. The problem shows up when the spreadsheet stops describing the portfolio and starts describing whatever somebody remembered to write down.
The symptom is not the mess
A tidy spreadsheet has exactly the same defect as a messy one: it holds no state. It does not know a lease expired yesterday, it does not know a payment is outstanding, it does not know that the person reading it is the accountant and not the owner. All of that logic lives outside the file, in the head of whoever maintains it.
That works up to a fairly specific point: when the operation stops fitting in one head. Usually somewhere between 20 and 40 units, or earlier if more than one person is managing.
Three questions before migrating
Before moving anything, it is worth answering three questions about the current operation.
- What is the smallest unit of truth? If the answer is “the unit” and not “the property”, the data structure has to reach that far. A building with twelve apartments is twelve leases, twelve statements and twelve maintenance histories, not one.
- Who needs to see what? An owner, a manager and an accountant do not need the same view and should not have the same access. If today that is solved by sending each of them a different file, the migration has to solve it with permissions, not with copies.
- Which reminders currently depend on memory? Renewals, indexation, deposit releases, insurance. Every one of those is a notification that should fire on its own.
What to do with history
The most common mistake is trying to migrate everything. There is no need. What holds the operation up is the current state: active leases, open balances and pending maintenance. Closed history can stay where it is and be consulted when required.
In practice that means loading properties and units first, then active leases with their documents, and only then open financial movements. Each step leaves the operation in a state you can query, so you can stop halfway without being halfway.
The sign that it worked
The migration is done when nobody opens the spreadsheet again to answer a question. Not when the data is loaded: when the question is answered faster in the platform than in the file. If that is not happening, something’s current state is usually still missing — not a feature.