Every flight Stratos tracks is always in exactly one phase — a label like boarding, climb, cruise, or landed that describes what the aircraft is doing right now. Stratos works this out on its own, in real time, purely from the data your simulator reports. There is no script to follow and no flight plan required: the same logic runs whether you fly a published airline route or a free-flight circuit.
This page explains the full set of phases, the order they normally run in, and the precise conditions that move a flight from one phase to the next. It is written for pilots who want to understand what the badge in the app is telling them, and for VA administrators who build event rules and field matrices on top of these phases.
Terms used on this page
- kt — knots; here, ground speed across the surface.
- VS / fpm — vertical speed, in feet per minute: how fast you are climbing or descending.
- AGL — height above the ground directly below you (as opposed to altitude above sea level).
- N1 — the rotational speed of a jet or turboprop’s main spool, shown as a percentage. Stratos reads it as a stand-in for how much power you have set.
- RPM % — the piston-engine equivalent of N1 (percent of maximum engine RPM).
- nm — nautical miles; here, the distance still to fly to the destination airport.
All speeds on this page are ground speed unless stated otherwise.
Why phases matter
The current phase is not just a cosmetic label. It drives several parts of the system:
- VA event rules. Many rules are keyed to a phase — “Phase Take Off”, “Phase Landed”, and so on. A rule only fires when the flight reaches the phase it is bound to. See VA onboarding.
- Per-phase field reporting. The Additional Fields matrix lets a VA append optional fields to position reports only during chosen phases (winds during
climb/cruise/descent, for example).
- Block vs. air time. The phase boundaries mark when the aircraft starts moving, leaves the ground, touches down, and parks — the milestones used to compute block time and air time.
- The
phase field. Every position report carries the current phase string, so your ACARS backend always knows the stage of flight.
- Plugins. Plugin developers read the live phase through the
useFlightPhase hook.
The normal lifecycle
A typical flight runs forward through thirteen phases, from the gate to the gate:
Solid arrows down the centre are the normal forward progression; the labelled side arrows are the recoveries and back-steps explained under Special and recovery transitions. The two special phases (Rejected Takeoff, Go-Around) are described there too.
Two more phases sit outside this happy path and only appear when something unusual happens:
- Rejected Takeoff — an aborted takeoff roll.
- Go-Around — a balked landing where you climb away instead of touching down.
There is also a fallback value, unknown, that Stratos uses only before it has gathered enough data to classify the flight, or briefly during crash recovery. In normal flying you will not see it.
A flight, phase by phase
Reading the badge from start to finish on a normal flight:
- Boarding — loaded at the gate, parked (under 2 kt).
- Push Back — the aircraft starts to creep, 2–8 kt (a tug push, or the first roll out of the stand).
- Taxi — taxiing out toward the runway, 8–45 kt.
- Takeoff — lined up with takeoff power set, accelerating past 45 kt.
- Climb — wheels up, climbing toward your cruise altitude.
- Cruise — levelled off and holding altitude.
- Descent — top of descent; you start coming down.
- Approach — getting low and close to the field (within ~50 nm, below 8000 ft AGL).
- Final — lined up and low, below 1000 ft AGL.
- Landed — main gear is down and you are rolling out.
- Taxi In — clear of the runway, taxiing to the gate (8–25 kt).
- Arrived — stopped at the gate with engines still running.
- Deboarding — engines off; the flight is done.
The sections below give the exact trigger for each of these steps.
How Stratos detects phases
Phase detection runs in the background the whole time you are tracking. Understanding a few mechanics explains why the badge behaves the way it does.
It samples, then looks at trends — not single readings. Stratos takes a snapshot of your flight data roughly twice a second and keeps a rolling five-second window of those snapshots. Decisions are made on the averages across that window, not on any single instantaneous value. This is why a one-frame glitch — a momentary altitude spike, or a single bad vertical-speed reading — does not throw the phase off.
It waits for reliable data before doing anything. Until the window holds at least three samples (about a second and a half of data), the phase is held steady. This stops bad readings at sim startup from jumping the phase around.
Climb and descent are trend judgements. From the rolling window Stratos derives whether you are climbing, descending, or level:
| Trend | Condition |
|---|
| Climbing | average vertical speed above +200 fpm (or altitude genuinely rising while VS is positive) |
| Descending | average vertical speed below −200 fpm (or altitude genuinely falling while VS is negative) |
| Level | neither of the above |
Requiring vertical speed and altitude to agree in direction means that changing your altimeter pressure setting (the Kollsman window) — which shifts indicated altitude instantly while vertical speed stays near zero — is not mistaken for a climb or descent.
Transitions are confirmed, not instant. Most airborne transitions must hold for a short time and show a real altitude change before they are accepted. A would-be change to climb or descent, for example, is only confirmed once it has persisted for 3 seconds and altitude has moved by at least 50 ft. Leaving cruise needs a bigger, more sustained change (see below). This debounce is what stops the phase flapping back and forth in light turbulence or during autopilot altitude hunting.
The on-ground flag is handled separately. Altitude, vertical speed, and ground speed are averaged over the window, but the simulator’s “on ground” flag is read directly each frame. Simulators routinely flicker it for a single frame during takeoff rotation or a firm landing, so Stratos guards the phase instead of trusting the flag: once you are airborne in climb or cruise, a stray “on ground” reading is ignored, and the post-touchdown phases likewise ignore a momentary bounce back into the air.
The signals it reads. Phase logic looks at a handful of values from your simulator:
| Signal | Used for |
|---|
| On-ground flag | ground vs. airborne phases |
| Ground speed (kt) | boarding / pushback / taxi / takeoff / taxi-in distinctions |
| Vertical speed (fpm) | climb / cruise / descent trends |
| Altitude (ft) | cruise detection and altitude gates |
| Altitude AGL (ft) | approach and final |
| Engine power — N1 % (turbine) or RPM % (piston) | takeoff-power gate and go-around detection |
| Engine on/off flags | whether engines are running or shut down (the arrived → deboarding step) |
| Distance to destination (nm) | gating approach/final so they only trigger near the arrival airport |
| Pitch (°) | go-around detection |
All thresholds below are the values used in the current release. Stratos
auto-detects your cruise altitude from sustained level flight rather than
reading it from a flight plan, so it works identically for free flight and for
booked routes.
Phase reference
Departure (on the ground)
These phases only move forward. Holding short during taxi (ground speed back to zero) keeps you in taxi, it does not drop you back to boarding.
| Phase | Means | Enters when | Leaves when |
|---|
| Boarding | Parked at the gate | On the ground below pushback speed (under 2 kt) — and the phase every flight starts in | Ground speed reaches pushback speed |
| Push Back | Creeping off the stand | Ground speed is 2–8 kt | Ground speed reaches taxi speed |
| Taxi | Taxiing to the runway | Ground speed is 8–45 kt (or above 45 kt without takeoff power) | Takeoff power applied above takeoff speed |
| Takeoff | Takeoff roll | Ground speed ≥ 45 kt and takeoff power set | Wheels leave the ground → climb |
Takeoff power is what separates a real takeoff roll from a fast taxi. Stratos requires engine power above a gate, not just speed:
| Engine type | Takeoff power gate |
|---|
| Turbine (jets, turboprops) | N1 ≥ 50 % |
| Piston / GA | RPM ≥ 70 % of max |
A fast taxi at 50 kt with the engines at idle stays in taxi; it never enters takeoff.
Airborne
| Phase | Means | Enters when | Leaves when |
|---|
| Climb | Climbing out | Wheels up from takeoff (or tracking started mid-climb) | Levels off → cruise; or sustained descent → descent |
| Cruise | Holding altitude | ~3 seconds of sustained level flight (altitude steady within 300 ft) | Sustained climb or descent (see cruise exit) |
| Descent | Coming down | Sustained descent confirmed from climb or cruise | Reaches approach/final gates; or climbs again → climb |
| Approach | Low and near the field | From descent, within 50 nm of destination and below 8000 ft AGL | Below 1000 ft AGL and under 210 kt → final; climbs away → climb |
| Final | On final approach | From descent or approach, within 50 nm of destination, below 1000 ft AGL and under 210 kt | Touchdown → landed; balked landing → go_around |
A few details worth knowing:
- Cruise is “level for a few seconds.” Once your average vertical speed settles near zero and stays there for about three seconds without drifting more than ~300 ft, Stratos marks
cruise and records your cruise altitude (rounded to the nearest 100 ft).
- Leaving cruise is deliberately harder than entering it. To exit
cruise you need a sustained climb or descent lasting 3 seconds and an altitude change of at least 300 ft. This higher bar keeps a bumpy ride from knocking you out of cruise.
- Cruise altitude is refined as you go. If you drift up or down to a new level and hold it, Stratos quietly updates the recorded cruise altitude (it re-checks every 15 seconds and confirms after four consistent readings) — so a step climb from FL370 to FL380 (37,000 to 38,000 ft) is reflected without leaving cruise.
- Approach and final are gated by distance. Being low alone is not enough — you must be within 50 nm of the destination. This stops a light aircraft cruising low over high terrain from being mistaken for an aircraft on approach. When no arrival airport is known (pure free flight), the distance gate is dropped and only altitude AGL is used.
- A steep arrival can skip approach. If a descent reaches the field already low and slow (below 1000 ft AGL, under 210 kt), it goes straight to
final without passing through approach.
Arrival (on the ground)
| Phase | Means | Enters when | Leaves when |
|---|
| Landed | Rolling out after touchdown | The on-ground flag becomes true while in final, approach, descent, or go_around | Held briefly, then → taxi_in or arrived |
| Taxi In | Taxiing to the gate | Rolls out at 8–25 kt after landing | Stops at the gate → arrived |
| Arrived | Parked, engines running | Stopped (under 2 kt) with at least one engine running | Engines off → deboarding; rolls again → taxi_in |
| Deboarding | Engines off, flight complete | All engines shut down at the gate | Sticky — this is the end of the flight |
Details:
- Landed is held briefly. After touchdown Stratos stays in
landed for at least 1.5 seconds before progressing. This gives a VA’s “Phase Landed” rule time to fire even on a short, slow landing that would otherwise pass through in a single frame.
- Reaching Arrived without reliable engine data. The normal path to
arrived checks that the engines are running. Some aircraft mis-report their engines as off at idle, which would otherwise strand the flight in taxi_in. As a fallback, if the aircraft sits stopped within 5 nm of the arrival airport for 10 seconds, it is promoted to arrived regardless of what the engine flags say.
- Re-taxiing from the gate. If you start rolling again after reaching
arrived (you gave way, or held short of a crossing runway), you drop back to taxi_in at 4 kt or more — a slightly lower bar than the 8 kt used on the landing rollout, so a slow marshalled taxi still counts.
- Deboarding is final. Once the engines are off at the gate, the flight stays in
deboarding. It does not transition again.
Special and recovery transitions
Real flying does not always run gate-to-gate. Stratos handles the common departures from the script.
Rejected Takeoff
If you abort during the takeoff roll, the aircraft decelerates back below takeoff speed while still on the ground. Stratos only calls this a rejected takeoff when it is confident a real roll was underway — either you had been in takeoff for at least 3 seconds, or engine power was deliberately cut to below 50 % of its peak during the roll. A momentary speed blip that does not meet either test is treated as a fast-taxi glitch and reverts to taxi. Once you slow back below taxi speed and vacate, you return to taxi.
Go-Around
A go-around is detected on a balked landing: while in final or landed, if you pitch up to 8° or more and push the throttles to 70 % N1 or more, Stratos recognises the missed approach and switches to go_around. When the aggressive pitch and power ease off, it transitions to climb if you are climbing away, or back to approach if you level or descend to try again.
Touch-and-go
After a touchdown (landed, taxi_in, or arrived), if you climb away again — more than 50 ft AGL, climbing, sustained for the usual confirmation window — Stratos treats it as a touch-and-go or re-takeoff and returns you to takeoff. A brief bounce on landing does not meet this bar and is ignored, so a hard arrival is not mistaken for a departure.
Approach recovery
Approach has two escape hatches so a transient reading cannot trap you there:
- If you start climbing, it transitions back to
climb (a missed approach that does not meet the go-around criteria).
- If you settle into sustained level flight near your recorded cruise altitude for 30 seconds, it returns to
cruise — handling cases where an altimeter setting change briefly looked like a descent.
Aircraft-type differences
The same phases apply to everything, but a few rules adapt to the airframe.
- Helicopters have no takeoff roll. They pass briefly through
takeoff during the vertical liftoff (so a VA’s takeoff rule still fires) and then go to climb. A short hover-flight can land directly from climb or cruise, so helicopters are allowed to reach landed without passing through approach/final. Go-around detection is disabled for them, because normal helicopter maneuvering naturally involves high pitch and power.
- Piston / general-aviation aircraft report no turbine N1, so the takeoff-power gate uses engine RPM percentage instead of N1.
- Turbine aircraft (jets and turboprops) use N1 for the takeoff-power gate and go-around detection. Whether an engine counts as running — what moves
arrived on to deboarding — is read from the simulator’s per-engine on/off flags, not from N1.
How phases are used in Stratos
Pulling it together, the phase feeds four places you will encounter as a VA admin or plugin developer:
- Event rules bind to phases. A “Phase Cruise” rule fires the moment cruise is detected; a “Phase Landed” rule fires on touchdown. See VA onboarding.
- The Additional Fields matrix uses phases as columns — you choose which optional fields ride along on position reports during each phase. See Additional Fields.
- The
phase field on every position report carries the current phase string (boarding, climb, cruise, …). When the sim is paused the top-level field reports PAUSED, while the underlying phase is preserved for field selection.
- Plugins read the live phase via
useFlightPhase, which pushes an update only when the phase actually changes.
Threshold quick reference
A scannable index of every number used above — nothing new here, just collected in one place. These are the values used in the current release.
On the ground — departure
| What | Threshold |
|---|
| Pushback speed band | 2–8 kt |
| Taxi speed band | 8–45 kt |
| Takeoff speed | 45 kt or more |
| Takeoff power — turbine | N1 of 50 % or more |
| Takeoff power — piston | RPM of 70 % or more |
In the air
| What | Threshold |
|---|
| Climb trend | average vertical speed above +200 fpm |
| Descent trend | average vertical speed below −200 fpm |
| Level (for cruise) | average vertical speed within ±100 fpm |
| Cruise confirmation | about 3 s level, altitude steady within 300 ft |
| Leaving cruise | 3 s sustained climb or descent and 300 ft change |
| Switching between climb and descent | 3 s sustained and 50 ft change |
| Approach gate | within 50 nm, below 8000 ft AGL |
| Final gate | within 50 nm, below 1000 ft AGL, under 210 kt |
On the ground — arrival
| What | Threshold |
|---|
| Taxi-in (after landing) | 8–25 kt |
| Re-taxi from the gate | 4 kt or more |
| Stopped at the gate, engines running | under 2 kt |
| Reaching arrived without engine data | stopped within 5 nm of arrival for 10 s |
| Landed hold | at least 1.5 s |
Special transitions
| What | Threshold |
|---|
| Rejected takeoff | 3 s or more in takeoff, or power cut below 50 % of peak |
| Go-around | pitch 8° or more and N1 70 % or more, from final or landed |
| Touch-and-go | above 50 ft AGL, climbing, sustained |
Detection internals
| What | Threshold |
|---|
| Reliable-data gate | 3 samples (about 1.5 s) |
| Sampling | every ~0.5 s over a 5 s rolling window |
At higher simulation rates, the altitude gates scale up automatically so that
autopilot oscillations under time compression do not cause rapid phase
bouncing.