Every double booking has the same root cause: two people were able to commit the same unit because neither could see what the other had done. It is not a discipline problem and it is rarely a dishonesty problem. It is an inventory that lives in more than one place — a master sheet, a sales person's copy, a broker's printed list from last week, and the WhatsApp group where a manager said "yes, take A-704".
The unit lifecycle that removes the problem
A unit needs a state, and the state needs to be the only thing anyone can sell from:
| State | What it means | Who can set it | Auto-expiry |
|---|---|---|---|
| Available | Sellable now | System default | — |
| Held | Reserved for one named buyer | Sales executive | Yes, 48–72 hours |
| Blocked | Not sellable — landowner share, management, legal issue | Manager only | No |
| Booked | Booking money received, form signed | System, on receipt | — |
| Agreement signed | Sale agreement executed | Legal or admin | — |
| Registered | Deed registered | Admin, with deed reference | — |
| Handed over | Possession given | Admin, with handover sheet | — |
Three rules make the table work. The state only moves forward. Each move records who, when and against which document. And the sales floor cannot see anything except the current state.
Why holds are the dangerous part
Holds are where inventory quietly disappears. A sales executive holds three units for a "serious client", then another two the next week. Nobody releases them because nobody is asked to. Within a month, a third of the good stock is unsellable and the price list looks like the project is doing better than it is.
Two controls fix this permanently:
- Automatic expiry, with a notification to the executive before it lapses.
- A hold report — every held unit, who holds it, since when, and for whom — reviewed in the weekly sales meeting. Once holds are visible, they self-correct.
Landowner and management units
On a joint venture project, the landowner's flats sit in the same building and look identical in a spreadsheet. They must be Blocked with a reason, not simply absent from the sales list, because a unit that is missing from the list is a unit somebody will eventually re-add. The same applies to units retained by directors or reserved against a supplier settlement. Landowner flat allocation covers how those units get chosen and released.
Money should move the state
The most common failure mode in a system that otherwise works: the buyer pays the booking money into the bank, and the unit stays Available for three days until someone updates the sheet. Receipt entry should be what moves the unit to Booked. If your receipting and your inventory are separate systems, that gap will keep producing double bookings no matter how careful the team is.
What a stack plan gives you that a list does not
A floor-wise board — every unit as a coloured tile, by floor and line — makes the state of a project readable in three seconds, and it makes an anomaly obvious: a held unit in the middle of a sold floor, a blocked unit nobody remembers blocking. Sales meetings run faster on a stack plan than on a spreadsheet because nobody has to be told what they are looking at. The live inventory board goes into what to show and what to hide.
What to do next
Print your current inventory list and your sales team's own lists, and compare them line by line. The number of rows that disagree is your double-booking exposure for the next quarter. A single unit inventory with real states takes that number to zero.
