@extends('layouts.app') @section('title', 'Cancellations & No-Shows') @section('nav_reports', 'bg-teal-50 text-teal-700 font-semibold') @section('page_title', 'Reports') @section('page_subtitle', 'Cancellations & No-Shows') @section('content') @include('reports._filter', [ 'active' => 'reports.cancellations', 'mode' => 'range', 'from' => $from, 'to' => $to, 'title' => 'Cancellations & No-Shows', 'subtitle' => 'Arrivals ' . \Carbon\Carbon::parse($from)->format('M j') . ' – ' . \Carbon\Carbon::parse($to)->format('M j, Y') . ' that were lost', ]) {{-- Summary tiles --}}
Lost Bookings
{{ number_format($lostCount) }}
{{ $cancelledCount }} cancelled · {{ $noShowCount }} no-show
Lost Revenue
₱{{ number_format($lostRevenue, 2) }}
{{ number_format($lostRoomNights) }} room-nights
Cancellation Rate
{{ number_format($cancellationRate, 1) }}%
of {{ number_format($totalBookings) }} arriving bookings
Deposits Forfeited
₱{{ number_format($forfeitedTotal, 2) }}
recovered from lost bookings
Which channels leak the most
No lost bookings for this period.
@else| Source | Lost | Nights | Lost Revenue |
|---|---|---|---|
| {{ $source }} | {{ $row['count'] }} | {{ $row['nights'] }} | ₱{{ number_format($row['revenue'], 2) }} |
Lost demand per category
No lost bookings for this period.
@else| Room Type | Lost | Nights | Lost Revenue |
|---|---|---|---|
| {{ $type }} | {{ $row['count'] }} | {{ $row['nights'] }} | ₱{{ number_format($row['revenue'], 2) }} |
Highest value first
No cancellations or no-shows in this period. 🎉
@else| Guest / Booking | Room | Source | Arrival | Nights | Status | Lost | Forfeited |
|---|---|---|---|---|---|---|---|
|
{{ $row['guest_name'] }} {{ $row['booking_no'] }} |
{{ $row['room_no'] }} {{ $row['room_type'] }} |
{{ $row['source'] }} | {{ $row['check_in']->format('M j, Y') }} | {{ $row['nights'] }} | {{ $row['status'] === 'no_show' ? 'No Show' : 'Cancelled' }} | ₱{{ number_format($row['amount'], 2) }} | {{ $row['forfeited'] > 0 ? '₱' . number_format($row['forfeited'], 2) : '—' }} |
| Total | ₱{{ number_format($lostRevenue, 2) }} | ₱{{ number_format($forfeitedTotal, 2) }} | |||||