Booking funnel + every booking ever, filterable
Two views in one report: aggregate booking-funnel health (top) and the searchable booking-history table (bottom) the cluster 2.2 design-followup flagged for cross-customer history search.
- Total volume + trend — bookings this period vs prior. Conversion from public web view to confirmed booking.
- By source — member / public web / walk-in / lessons / add-ons (matches the Revenue report's source breakdown).
- Lead time — average hours between booking creation and slot start. Drops in lead time signal "members are booking last-minute" (good for loyalty, bad for forecasting).
- Average duration — overall + by source. Member sessions tend to run longer (included hours = no marginal cost).
- No-shows + late cancellations — rate per source, repeat offenders. Caddie surfaces no-show patterns for operator follow-up.
- Cancellations — rate, refund cost, refund pattern by booking-group cancellation policy.
- Full booking history table — every booking in the period, paginated. Filter by customer / bay / source / status. Each row links to operator-booking-detail. Powers the cluster-2.2 carry-over: cross-customer searchable history for compliance + disputes.
- Export — CSV of the filtered booking table (uses the same export sheet as the Reports landing).
Backend wiring pending. GET /operator/reports/bookings in the live app. Supports both aggregate-roll-up + paginated detail row queries.