Where the days actually go

  • Rate archaeology: WhatsApp the camp, dig the spreadsheet, pray the season band is right.
  • Fee maths: park entry by residency and season — from memory, on a fee schedule that changes yearly.
  • Re-typing: the itinerary exists in the email thread, then again in the quote document.
  • Approval ping-pong: "can you check if the camp has space for those dates?" loops.
  • Money friction: the quote goes out without a payment link, so even a yes takes another day to convert.

The one-hour quote, step by step

  • Enquiry arrives structured (dates, party, destinations) — not as free text.
  • Build the day-by-day from the catalog: stays with real season/residency rates, activities, vehicles — the rate resolver picks the applicable rate per room and guest mix.
  • Park fees and line costs compute from stored fee data with checked dates — not memory.
  • Save the quote version, generate the proposal link, send it in the same thread the enquiry came from.
  • Client compares options, holds one, pays the deposit — the trip flips to deposit-due on the board without anyone re-typing anything.

In TravelBookingWidgets, concretely

The catalog holds destinations, accommodations with rooms/board/rates, activities, fleet and inclusions — the setup wizard gates the widget until rates are confirmed, so quotes can’t go out on stale numbers. Quotes are versioned on the trip file; internal cost rates sit behind the scenes so you see margin per trip, not just revenue. And because the enquiry from your planner widget already carries the structure, "quote in an hour" becomes the norm instead of the hero move.

Next steps