> ## Documentation Index
> Fetch the complete documentation index at: https://docs.planeconnection.com/llms.txt
> Use this file to discover all available pages before exploring further.

# How to Use the In-Flight Display

> Monitor airborne flights in real time with a full-screen layout showing a flight arc, satellite map, altitude profile, and live performance stats.

By the end of this guide, you will have used the In-Flight Display to monitor airborne flights in real time with a full-screen IFE-style layout showing route progress, a satellite map, altitude profile, and live performance stats.

<Info>
  The Operations module must be enabled for your workspace. You also need the appropriate operations
  permissions. Contact your workspace administrator if you cannot access these features.
</Info>

<Info>
  You need a valid authenticated session. The display requires at least one aircraft in airborne
  state. If tracking data is not available, the display falls back to interpolated positions.
</Info>

## Navigate to the In-Flight Display

Open the **Operations** sidebar and click **In-Flight Display** under the **Fleet** group. The page loads full-screen with no table headers or navigation chrome -- the entire viewport is the display.

## Understand the three display zones

The page is divided into three stacked zones that each serve a distinct purpose.

### Zone 1 -- Flight hero arc

The top section (240 px tall) is a dark panel showing the route as a styled SVG arc on a deep navy background.

* **Origin ICAO code** -- large monospace text on the left, with the airport name and local departure time beneath it.
* **Destination ICAO code** -- large monospace text on the right, with the airport name and local scheduled arrival time beneath it.
* **Arc path** -- a quadratic bezier curve spanning the width of the panel. The portion already traveled is rendered as a dimmer dashed blue line; the remaining portion is a bright solid blue line. The split point moves as the flight progresses.
* **Aircraft marker** -- an orange aircraft icon positioned on the arc at the current progress point, rotated to match the arc's tangent direction.
* **Registration and type code** -- displayed in the top-left corner of the panel.
* **LIVE badge** -- a green badge in the top-right corner appears when the display has an active SSE connection to the flight tracker. When the connection is absent, the badge is hidden and the display operates in demo mode using loader data.

The arc progress is computed from the trip's `departure_at` and `arrival_at` timestamps, clamped between 0 and 1. When live tracking data is connected, the aircraft marker position reflects real-world progress rather than scheduled time.

### Zone 2 -- Map panel and altitude profile

The middle section fills the remaining vertical space between the hero arc and the stats bar. It is split horizontally:

* **Left 60% -- satellite map**: A MapLibre satellite map showing the aircraft's current position, the route line between origin and destination, and airport markers. The map centers on the active aircraft. When multiple flights are airborne, all aircraft appear on the map simultaneously; click a marker to follow a specific aircraft using the `?follow=` query parameter.
* **Right 40% -- altitude profile**: A chart showing the aircraft's current altitude against a standard cruise profile curve. The current altitude is sourced from live tracking data when connected; otherwise it falls back to the value stored in the most recent `flight_tracking` row from the loader.

Both panels lazy-load on the client side. A skeleton placeholder renders in each panel while the components initialize.

### Zone 3 -- Eight-stat data bar

The bottom bar (80 px tall) displays eight performance values in a monospace grid, each labeled in blue uppercase text with the value in white below it.

| Label | Full Name               | How it is computed                                                                                                                                                         |
| ----- | ----------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| ALT   | Altitude                | Current altitude from tracking data, displayed as a flight level (e.g., `FL350` for 35,000 ft).                                                                            |
| G/S   | Ground Speed            | Ground speed in knots, sourced directly from tracking data.                                                                                                                |
| TAS   | True Airspeed           | Estimated true airspeed in knots: `GS × (1 + 0.02 × alt_kft)`. Applies the rule of thumb that TAS increases approximately 2% per 1,000 ft above sea level.                 |
| HDG   | Magnetic Heading        | Current magnetic heading in degrees, sourced from tracking data, rounded to the nearest whole degree.                                                                      |
| OAT   | Outside Air Temperature | Computed via International Standard Atmosphere. In the troposphere (below FL360 / 11 km): `15°C − 6.5°C/km`. In the stratosphere (FL360 and above): isothermal at −56.5°C. |
| ETA   | Time Remaining          | Countdown to scheduled arrival expressed as hours and minutes (e.g., `1h 23m` or `45m`). Derived from `arrivalAt − nowMs`, floored at zero.                                |
| DIST  | Distance Remaining      | Nautical miles remaining: `leg_distance × (1 − progress)`. Displays `---` when no leg distance is stored.                                                                  |
| DEST  | Destination Local Time  | Scheduled arrival time formatted in the viewer's browser timezone (e.g., `3:42 PM`).                                                                                       |

The stats bar only renders when both an active flight and a valid position record exist. If the aircraft has no tracking data and no fallback position, the bar is hidden.

## Select an aircraft when multiple flights are airborne

When your workspace has more than one aircraft in `airborne` state, a slim selector bar appears above the hero arc showing the current aircraft registration and an index counter (e.g., `N456PC · 2 / 3`). Use the left and right arrow buttons to step through airborne aircraft. All zones update to reflect the selected aircraft.

<Tip>
  For lobby or ops-center displays, open the page full-screen in a browser kiosk window. If only one
  aircraft is airborne the selector bar is hidden, giving you a clean single-flight view.
</Tip>

## Understand data sources and priority

The display pulls flight data from two sources and combines them:

1. **Server loader (initial render)** -- On page load, the loader queries `dispatch_status` for all aircraft in your workspace with `state = 'airborne'`, joins against `aircraft` and `trip_legs` to get origin, destination, and scheduled times, and fetches the most recent row from `flight_tracking` for each aircraft. This data is serialized into the initial HTML.

2. **Live SSE tracking (client)** -- After page load, the `useFlightTracker` hook opens a server-sent events connection scoped to your workspace. When a position update arrives for the active aircraft's registration, it immediately overrides the loader snapshot for altitude, speed, and heading. The LIVE badge appears when this connection is established.

Live SSE data takes precedence over loader data for all position-derived values (ALT, G/S, TAS, HDG, OAT). ETA, DIST, and DEST are always computed from the scheduled `arrivalAt` timestamp.

Progress refreshes on a 10-second interval on the client so that the arc marker and time-based stats remain current even without a live tracking connection.

## Understand the fallback behavior

If no aircraft is in `airborne` dispatch state, the loader falls back to trips in `active` status. For those trips, position is interpolated linearly between origin and destination coordinates based on elapsed fraction of the scheduled flight time, with a default altitude of 35,000 ft and speed of 400 kt when no `flight_tracking` row exists.

If neither `airborne` dispatch records nor `active` trips are found, the page shows a minimal empty state reading **No Active Flights**. The display will update automatically the next time the page is loaded after a dispatch state change.

<Note>
  The fallback to active trips is intended for demo environments and partial integrations. Under 14
  CFR Part 135, dispatchers should ensure that aircraft dispatch state transitions (airborne,
  landed) are recorded in the dispatch system as close to actual wheels-off and wheels-on times as
  possible to keep the display accurate.
</Note>

## Monitor a flight from initial setup to landing

<Steps>
  ### Step 1: Confirm the trip is dispatched and released

  Before the flight appears on the In-Flight Display, the trip must have been released through the normal dispatch workflow. Verify the trip is in `dispatched` status from the [Dispatch Dashboard](/en/how-to/ops/use-dispatch-dashboard) or the trip detail page.

  ### Step 2: Mark the flight departed

  When wheels-off is confirmed, use the **Mark Departed** action on the Dispatch Dashboard or the trip detail page to transition the trip to `active` status and set the `dispatch_status` record to `airborne`. This is the trigger that causes the flight to appear on the In-Flight Display.

  ### Step 3: Open the In-Flight Display

  Navigate to **Operations > Fleet > In-Flight Display**. The hero arc, map, altitude profile, and stats bar all populate with data from the active flight. Confirm the LIVE badge is visible in the top-right corner of the hero arc if your tracking integration is active.

  ### Monitor progress during the flight

  Watch the arc marker advance from left to right as the flight progresses. Use the stats bar to spot-check altitude and ground speed against expected cruise values. The ETA countdown updates every 10 seconds. If the display is on a shared screen, no interaction is required -- the page runs continuously.

  ### Verify the aircraft lands

  When the destination is reached, the dispatcher marks the trip as arrived from the Dispatch Dashboard, which transitions `dispatch_status` to landed and removes the aircraft from the In-Flight Display. If multiple aircraft were shown, the display steps back to the next available airborne aircraft.
</Steps>

## Related

<CardGroup cols={2}>
  <Card title="Use the Dispatch Dashboard" href="/how-to/ops/use-dispatch-dashboard">
    Real-time dispatcher workstation with KPI strip, fleet map, weather, and conflict detection.
  </Card>

  <Card title="Use the Dispatch Board" href="/how-to/ops/use-dispatch-board">
    Assign trips to aircraft with drag-and-drop and manage the trip queue.
  </Card>

  <Card title="Create a Trip" href="/how-to/ops/create-trip">
    Full walkthrough of the trip creation wizard from request to release.
  </Card>

  <Card title="Aircraft Statuses" href="/reference/aircraft-statuses">
    What each aircraft status means for dispatch availability and display behavior.
  </Card>
</CardGroup>
