The 30% deposit changes everything
Bookings without a deposit are cancelled three times as often. The numbers, and how to ask for a deposit without friction.

For a long time, we confirmed bookings on someone's word. A call, a blocked slot, an “I'll confirm tomorrow” — and an empty villa on the day. Looking back over twelve months of bookings across four venues, the finding is clear: bookings without a deposit are cancelled in 31% of cases, compared with 9% when a deposit is paid.
What the numbers show
We split bookings into two groups according to whether a partial payment had been received before the session. Nothing else distinguishes them: the same villas, durations and season.
| Group | Bookings | Cancelled | Rate |
|---|---|---|---|
| No deposit | 184 | 57 | 31% |
| 30% deposit | 241 | 22 | 9% |
| Paid in full | 98 | 4 | 4% |
Four villas, from September 1, 2025 to August 31, 2026. Expired holds are excluded.
How to ask for it
When you reach an agreement, never afterwards
The window is short: between “that's perfect, we'll take it” and the end of the call. After that moment, asking for a deposit can feel like distrust.
- State the deposit amount alongside the price, not in a second message.
- Send the link during the call — it will be paid within ten minutes, or never.
- Explain what it secures: the slot, and only the slot.
Three phrases that work
- “I'll hold the slot and send you the link for the 30% deposit — the rest is due on the day.”
- “The deposit confirms the date. Without it, I need to keep the slot open.”
- “You can pay the balance on site, in cash or by bank transfer, whichever you prefer.”
Since we started asking for the deposit during the call, we have stopped keeping a list of people who no longer reply.
The calculation, if you automate it
Never recalculate the balance as a second percentage: it is always the price minus the amount collected. Otherwise, rounding can leave one rupiah unpaid on a settled booking.
deposit = round(price × percent / 100)
paid = sum(payments) − sum(refunds)
balance = price − paid // never price × (1 − percent)
status = paid == 0 ? UNPAID
: paid < price ? PARTIALLY_PAID
: PAIDWhat to remember
Thirty percent when you agree, the balance on the day of the session, and one link for both. The cancellation rate falls from 31% to 9% — the rest is calendar management.


