How we build FLT
Every real flight becomes a test.
You cannot reproduce a frozen barometer or a burst of stale GPS fixes at a desk. That's why FLT's detection logic is built from recorded flights, and every one of them is kept as a test that the next change must still pass.
The problem
There is no ground truth without flying
A landing detector that works on paper meets a student's approach: a balloon, a bounce, three deliberate touches and a go-around, in an aircraft whose phone has just woken from a suspension with two minutes of queued sensor samples. Every wrong assumption costs a week, because the only way to find it is to fly again.
Our answer was to treat each flight as evidence. The raw telemetry of every test flight is exported, replayed through the current detection pipeline and kept. Every threshold in FLT is a named, conservative, reversible constant, and each one traces back to a flight that demanded it.
Fly. Export the telemetry. Replay it. Fix what broke, without breaking any earlier flight. Fly again.
The evidence loop
Five steps, repeated every flight
A real session
Typically a circuit session with an instructor: student touch-and-goes, bounces, demonstrations, steep turns. Sometimes the messier the better, or at least that what we tell our instructors.
Raw telemetry out
The flight's telemetry is exported from the phone as a CSV, exactly as the sensors delivered it, glitches included.
Through the same code
The recording is replayed through the very same detection logic the app runs in flight, a self-calibrating state machine that tracks the aircraft's point in the circuit, and must reproduce the flight's true landing and go-around counts.
Without regressing
A fix for one flight is re-run against every recorded flight. If an older count changes, the fix is wrong, however right it looks.
Confirm in the air
Until a change has been flown, we call it "tested against recorded flights", not proven. That wording carries through to this sit so you can have confidence in what we've validated and what's still theory.
What the flights taught us
Sensors that lie convincingly
The hardest problems were never noise. They were plausible, wrong data. In each case the fix was to find the signature of dishonesty rather than to trust one source or average them, which is what we now call sensor-integrity arbitration: on every cycle the most trustworthy value is chosen by evidence learned in flight and the last agreed value, and the raw data from every sensor is still logged.
The barometer that froze
On one flight the watch's barometer quietly stopped on final, repeating the same value while the aircraft descended. A live barometer jitters every sample or two; a frozen one is set aside and the GPS takes over until it wakes.
Samples that arrive late
A watch app suspended between deliveries is handed queued pressure samples up to two minutes old, each looking fresh by arrival time. That flight logged nine landings from six real ones. FLT now judges freshness by the sample's own timestamp.
GPS that teleports
Fixes flushed in a burst after a suspension can imply hundreds of knots. Aircraft don't teleport, so a step of hundreds of feet or an impossible speed is rejected, and no single sample can move a reference.
Two devices that disagree
Phone and watch barometers can differ by a constant offset. When both record, FLT aligns them onto whichever device has the live barometer that flight, then blends fixes weighted by each one's reported accuracy.
A wrong ground reference
An early flight recorded zero of seven landings because the ground altitude latched before the altimeter reported. The runway reference is now learned from the flight itself, from the lowest firm height seen.
Taxiing that looked like circuits
Altitude wandering at a holding point once looked like arming and landing. Nothing below flying speed can now arm a landing or count a re-touch.
Being precise about precision
What the devices measure and what FLT estimates
An iPhone and a watch have no pitot tube, no attitude reference and no connection to the aircraft. Some things they measure directly. Others FLT works out, and we say so wherever the number appears.
| Measured by the device | Estimated by FLT |
|---|---|
| Position, ground speed and heading, from GPS | Bank angle in a turn, from ground track and speed, unless load factor was recorded |
| Pressure, converted to pressure altitude against your QNH | True airspeed and wind, from a circle fitted to the ground velocity through a full turn |
| Load factor and touchdown g, from the accelerometer | Sink rate at touchdown and flare height, from the altitude trace at full fix rate below 300 feet |
| Heart rate, from the watch, if you opt in | Field elevation, self-calibrated from the lowest firm height seen |
Landing quality thresholds and turn-comparison tolerances are calibrated against recorded flights and remain provisional until enough logged flights have refined them. The app labels them that way on screen.
Trust in the record
We never rewrite your record without your permission
Pilots copy landing counts into legal logbooks. When detection improves, FLT does not go back and change the counts of flights you have already logged. A Re-Analyse Flight button replays a stored flight's telemetry through the current logic when, and only when, you ask.
The same stance runs through the whole app: scores that are still being calibrated say so, heart rate is off until you turn it on, and none of your flight data leaves your device and your personal iCloud account unless you explicitly share it.
FLT has been in flight testing in Australia since April 2026, with 22 test flights and 117 landings so far used to refine its detection and analysis, flown by the people who build it as part of their own RPC and PPL training.
Get FLT
Fly with it, and tell us what it got wrong
Every flight you send us with a wrong count makes the next version better. How to report one.