Skip to main content

Bookings

Backoffice path: backoffice/bookings

Available to roles: System Administrator, Administrator

Overview

The Bookings page lists all active flight bookings across the airline. Pilots create bookings by selecting flights from published schedules, reserving a specific aircraft and route for a defined window of time. Administrators use this page to monitor booking activity, identify bottlenecks, and understand fleet utilization in real time.

How Bookings Work

When a pilot books a flight from the schedule, the system:

  1. Requires email verification -- pilots must verify their email address before they can access the booking page. Unverified pilots are redirected to a verification notice.
  2. Validates restrictions -- checks that the pilot meets all requirements (rank, license, and any other configured restrictions) before allowing the booking.
  3. Deducts Points cost (if configured) -- bookings can optionally cost Points, charged as either a fixed amount or a per-mile rate. This is configured at the schedule or airline level.
  4. Assigns departure and arrival stands -- if the departure and arrival airports have stands configured, the system automatically assigns parking stands based on fleet, subfleet, and airline restrictions. The departure stand is the aircraft's current stand; the arrival stand is selected using a tiered matching algorithm that prefers empty stands. For multi-leg bookings, each leg's departure stand chains from the previous leg's arrival stand.
  5. Generates MEL items -- on booking creation, the system performs a probability roll to auto-generate Minimum Equipment List (MEL) items for the assigned aircraft, simulating real-world maintenance scenarios.
  6. Starts the expiration timer -- the booking becomes active and will expire if not flown within the configured window.

Booking Expiration

Bookings expire automatically after a configurable period, controlled by the BOOKING_EXPIRATION_HOURS setting (default: 48 hours). An hourly purge job runs in the background to clean up expired bookings. When a booking expires:

  • The booking record is removed.
  • The pilot receives a notification informing them of the expiration.
  • The aircraft becomes available for other pilots to book.

Cancellation

Pilots can cancel all of their active bookings at once using the Cancel All Bookings button on the booking page. Cancellation incurs a single fixed Points penalty (regardless of the number of bookings) deducted from the pilot's balance. Individual booking cancellation is not available — the pilot either cancels their entire booking chain or keeps all of it. This discourages frivolous booking and cancellation cycles.

Booking Uniqueness

The system supports configurable uniqueness constraints to prevent resource conflicts:

  • Unique schedule -- a pilot cannot book the same schedule more than once simultaneously.
  • Unique aircraft -- only one active booking can exist for a given aircraft at any time.

These settings can be combined or used individually depending on your operational preferences.

Restrictions

All configured restrictions are enforced at booking time. If a schedule, fleet, or aircraft has restrictions tied to a specific license or rank, the pilot must hold the required qualification before the system allows the booking. Pilots who do not meet the criteria will be blocked with an appropriate error message.

Aircraft Availability Filters

The aircraft selection list automatically excludes aircraft that are not available for booking:

ConditionBehavior
Grounded aircraftAircraft marked as grounded (e.g., for maintenance) do not appear in the aircraft list and cannot be booked.
Aircraft being repositionedAircraft with an active (in-progress) repositioning bounty are hidden from the aircraft list — another pilot is already flying the aircraft to its base.

These filters apply to both the schedule browser and the directed schedules interfaces. As a defense-in-depth measure, the same checks are also enforced server-side when the booking is submitted.

Bookings Table

The bookings list displays the following columns:

ColumnDescription
Flight NumberThe schedule's flight number for the booked route.
PilotThe pilot who created the booking.
AircraftThe assigned aircraft registration.
DepartureDeparture airport ICAO code.
ArrivalArrival airport ICAO code.
StatusCurrent booking status (active, expired, etc.).
Created DateTimestamp of when the booking was created.

The table is searchable and sortable, allowing administrators to quickly locate specific bookings by pilot name, flight number, or airport.

Directed Schedules

Pilots can generate customized random routes from their current airport using the Directed Schedules flyout. This replaces the previous separate "Random", "By Fleet", and "By Aircraft" booking methods with a single, unified interface.

Available Filters

All filters are optional. Each active filter adds to the Points cost:

FilterDescription
SubfleetRestrict route generation to aircraft from a specific subfleet.
AircraftRestrict to a specific aircraft (overrides subfleet cost).
Final DestinationForce the last leg to arrive at a chosen airport.
Min Distance per LegExclude schedules shorter than the specified distance (in nautical miles).
Max Distance per LegExclude schedules longer than the specified distance (in nautical miles).
New Legs OnlyOnly include routes the pilot has never flown before.
Leg CountNumber of legs to generate (1 to 5).

The min and max distance filters each independently add to the Points cost. If both are active, the distance cost is charged twice.

The running Points cost is displayed in real time as filters are toggled on and off.

Route Preview

After configuring filters, pilots click Generate to produce a route preview. Points are deducted at generation time (not on accept). The preview displays each leg (departure, arrival, flight number, distance) and the total cost.

If the requested number of legs cannot be generated, the system automatically tries fewer legs (down to 1). When a lower count is found, the leg count selector is updated and the pilot is notified — no points are deducted. The pilot can then click Generate again with the reduced count.

From the preview, pilots can:

ActionBehavior
Accept & BookConfirms the route and creates the bookings (no additional Points charge — already paid on generate).
Re-rollDiscards the current route and generates a new one with the same filters. When DIRECTED_REROLL_COSTS_POINTS is enabled (default), each reroll deducts the same Points cost as the initial generation.
CancelCloses the flyout without creating any bookings.

Route Variety (Flight History Bias)

The algorithm tracks how many times each pilot has flown each airport pair. Routes the pilot has already flown receive a higher weight penalty, making them less likely to be selected. Unflown routes are naturally favored, encouraging pilots to explore new destinations across the network.

When the New Legs Only filter is active, previously flown routes are excluded entirely rather than just penalized.

Multi-Leg Sequence Detection

If a multi-leg sequence starts at the pilot's current airport and fits within the requested number of legs, the sequence is booked as a group. If the sequence has fewer legs than requested, the remaining legs are generated randomly from the sequence's final airport. Sequence detection is skipped when directed filters are active, as the constraints may conflict with the sequence route.

Configuration Reference

SettingDescriptionDefault
BOOKING_EXPIRATION_HOURSHours before an unused booking expires and is purged.48
DIRECTED_DESTINATION_FILTER_COSTPoints cost added when the pilot specifies a final destination in Directed Schedules.25
DIRECTED_DISTANCE_FILTER_COSTPoints cost added for each distance filter (min or max) the pilot specifies. Charged independently per filter.15
DIRECTED_UNFLOWN_FILTER_COSTPoints cost added when the pilot enables the "New Legs Only" filter.10
DIRECTED_REROLL_COSTS_POINTSWhen enabled, each reroll of a directed schedule deducts the same Points cost as the initial generation.On
Points cost modeWhether booking costs are fixed or calculated per mile.Configured per schedule
Uniqueness rulesWhether bookings enforce unique schedule, unique aircraft, or both.Airline-level setting
Cancellation penaltyPoints deducted when a pilot cancels a booking.Airline-level setting