Booking Capacity
Aggregated booking and capacity metrics grouped by venue, capacity plan, scenario, and business date.
Storage Location
{customer_id}/booking_capacity/{year}/{month}/{yyyymmdd}.jsonFields
| Field | Type | Required | Description |
|---|---|---|---|
customer_id | integer | Yes | Reference to Customer (parent or child) |
customer_name | string | Yes | Customer name (denormalized) |
venue_id | integer | Yes | Reference to BookingVenue |
venue_name | string | Yes | Venue name (denormalized) |
capacity_plan_id | integer | Yes | Reference to BookingResourcePlan |
capacity_plan_name | string | Yes | Capacity plan name (denormalized) |
scenario_id | integer | No | Reference to BookingScenario (null for no scenario) |
scenario_name | string | No | Scenario name (denormalized) |
business_date | date | Yes | Business date (adjusted for over-midnight operations) |
gross_capacity | integer | Yes | Total physical capacity (sum of table capacities) |
capacity_plan_adjusted | integer | Yes | Capacity after applying plan capacity cap percentage |
arrival_capacity_plan_adjusted | integer | Yes | Arrival capacity after applying plan arrival cap percentage |
plan_capacity_cap_pct | float | No | Capacity cap percentage from plan |
plan_arrival_cap_pct | float | No | Arrival cap percentage from plan |
scenario_capacity_allotted | integer | No | Scenario capacity allotment limit |
scenario_capacity_max | integer | No | Scenario maximum capacity limit |
scenario_arrival_allotted | integer | No | Scenario arrival allotment limit |
scenario_arrival_max | integer | No | Scenario arrival maximum limit |
scenario_allocate_capacity | string | No | Whether scenario allocates capacity (Y/N) |
scenario_use_plan_limit_guest | string | No | Whether scenario uses plan guest limit (Y/N) |
scenario_use_plan_limit_arrival | string | No | Whether scenario uses plan arrival limit (Y/N) |
effective_capacity | integer | Yes | Final effective capacity considering all limits |
effective_arrival_capacity | integer | Yes | Final effective arrival capacity considering all limits |
total_reservations | integer | Yes | Count of non-cancelled bookings |
total_guests | integer | Yes | Sum of adult guests (excludes cancelled bookings) |
total_guests_kids | integer | Yes | Sum of child guests (tracked separately, not in capacity) |
on_waitlist | integer | Yes | Count of bookings on waitlist (status 90) |
cancelled | integer | Yes | Count of cancelled bookings (status 320) |
no_show_count | integer | Yes | Count of no-show bookings (status 310) |
total_revenue | float | Yes | Total gross revenue from sales orders linked to bookings |
bookings_with_sales | integer | Yes | Count of bookings with associated sales orders |
capacity_utilization_pct | float | Yes | Percentage of capacity plan adjusted capacity used |
Booking Status Codes
| Code | Description |
|---|---|
| 90 | Waitlist |
| 100 | Confirmed |
| 300 | Completed |
| 310 | No-show |
| 320 | Cancelled |
Note: Cancelled bookings (320) are excluded from guest counts and capacity utilization calculations.
Example - Dinner Service
json
{
"customer_id": 12345,
"customer_name": "Restaurant Group AB",
"venue_id": 101,
"venue_name": "Downtown Location",
"capacity_plan_id": 5,
"capacity_plan_name": "Dinner Service",
"scenario_id": 12,
"scenario_name": "Weekend Service",
"business_date": "2024-12-03T00:00:00",
"gross_capacity": 120,
"capacity_plan_adjusted": 108,
"arrival_capacity_plan_adjusted": 96,
"plan_capacity_cap_pct": 90.0,
"plan_arrival_cap_pct": 80.0,
"scenario_capacity_allotted": 100,
"scenario_capacity_max": 110,
"scenario_arrival_allotted": 90,
"scenario_arrival_max": 95,
"scenario_allocate_capacity": "Y",
"scenario_use_plan_limit_guest": "Y",
"scenario_use_plan_limit_arrival": "Y",
"effective_capacity": 100,
"effective_arrival_capacity": 90,
"total_reservations": 42,
"total_guests": 95,
"total_guests_kids": 12,
"on_waitlist": 3,
"cancelled": 2,
"no_show_count": 1,
"total_revenue": 28450.75,
"bookings_with_sales": 38,
"capacity_utilization_pct": 88.0
}Example - Lunch Service (No Scenario)
json
{
"customer_id": 12345,
"customer_name": "Restaurant Group AB",
"venue_id": 101,
"venue_name": "Downtown Location",
"capacity_plan_id": 3,
"capacity_plan_name": "Lunch Service",
"scenario_id": null,
"scenario_name": null,
"business_date": "2024-12-03T00:00:00",
"gross_capacity": 80,
"capacity_plan_adjusted": 80,
"arrival_capacity_plan_adjusted": 80,
"plan_capacity_cap_pct": null,
"plan_arrival_cap_pct": null,
"scenario_capacity_allotted": null,
"scenario_capacity_max": null,
"scenario_arrival_allotted": null,
"scenario_arrival_max": null,
"scenario_allocate_capacity": null,
"scenario_use_plan_limit_guest": null,
"scenario_use_plan_limit_arrival": null,
"effective_capacity": 80,
"effective_arrival_capacity": 80,
"total_reservations": 18,
"total_guests": 52,
"total_guests_kids": 3,
"on_waitlist": 0,
"cancelled": 1,
"no_show_count": 0,
"total_revenue": 8920.50,
"bookings_with_sales": 17,
"capacity_utilization_pct": 65.0
}Related Entities
- Bookings - Individual booking transactions
- BookingVenue - Venue configuration (masterdata)
- BookingResourcePlan - Capacity plans and resource assignments (masterdata)
- BookingScenario - Scenario configuration and limits (masterdata)
- Customer - Parent customer/tenant (masterdata)
- Orders - Sales orders linked to bookings
Version History
| Version | Date | Changes |
|---|---|---|
| 1.0.0 | 2024-01 | Initial release |