Documentation

Platform usage guides and technical reference for 61Insights.

Creating a Flight Record

Flight records are the primary log of training activity. Each record carries one or more graded task entries, and approach tasks can be linked to a full analyzer result including scored track data.

Steps

  1. Navigate to Flights in the sidebar.
  2. Select New Flight from the mode toggle.
  3. Enter a title (required) and an optional description.
  4. If you are an instructor, use the student selector to associate the record with one of your assigned students.
  5. Add one or more task entries — each requires a type and an ACS grade.
  6. For approach task types an airport + approach selector appears, creating a placeholder slot that can be linked to an analyzer result later.
  7. Click Submit. The result card appears below with a task summary and, if an approach task was included, a KML upload prompt.
A flight record can be created without an analyzer result attached. You can attach a result later from the Analyzer or from Analysis History.
Adding Tasks to an Existing Flight

Use this mode when a debrief reveals additional tasks to document, or when approach results are being back-filled after the flight.

  1. Navigate to Flights and select Add Tasks to Existing.
  2. Choose a flight from the dropdown. Flights are listed as date — student — title, most recent first.
  3. Add task rows exactly as in the New Flight form.
  4. Click Submit. The tasks are appended via PATCH /api/flights/:id.
Uploading a KML Track File

The analyzer accepts GPS track files exported from ForeFlight or any app that produces a KML file. The file must contain either a gx:Track (with timestamps and altitude) or a LineString (coordinates only, no timestamps).

  1. Navigate to Analyzer in the sidebar.
  2. Drag and drop a .kml file onto the upload zone, or click to open a file picker.
  3. The file is parsed in the browser — nothing is uploaded at this point. The track displays on the map immediately.
  4. Choose Auto or Manual detection mode.

Auto mode queries nearby airports from the CIFP database and tests every approach within range against the track. Detected segments are listed with the best-matching approach pre-selected.

Manual mode lets you type an airport identifier and select an approach from the list. Both modes support multiple rows for flights with several approaches.

Auto detection works best for single-airport flights. On multi-airport flights it may surface approaches from intermediate airports. Review the suggested approach label before scoring.
Scoring and Saving Results
  1. After detection, each segment appears with its label and time. Review the approach subtype (e.g., ILS, RNAV-LPV, RNAV-LNAV) — you can override it if you flew an RNAV approach to LNAV minimums instead of LPV.
  2. Click Score Selected. The analyzer runs analyzeTrack for each segment and automatically saves each result to the server.
  3. Results appear per pass with: ACS Standard or Below ACS label, component score gauges (glidepath, lateral, altitude), the constraint crossing table, the approach map, and deviation charts.
  4. Use the + Add to Flight button on any result to attach it to a flight record.
Results are also accessible later from Analysis History. Each history row has a + Flight button for the same attach workflow.
How Maneuver Detection Works

The Maneuver Analyzer uses the same KML track file as the approach analyzer. After uploading a track, the analyzer determines which maneuver types are applicable based on the certificate or rating you are pursuing, then detects and scores each maneuver found in the flight.

Steps

  1. Upload a KML file in the Analyzer (the same upload used for approach analysis).
  2. The analyzer computes your applicable maneuvers from your active pursuit (e.g., PPL-ASEL, IR, CPL-ASEL).
  3. Toggle individual maneuver types on or off using the hint chips — each chip represents one ACS maneuver family.
  4. Click Analyze Maneuvers. The analyzer smooths the GPS track, derives kinematics (turn rate, climb rate, bank angle estimates), and runs each detector.
  5. Detected segments appear as result panels with component score gauges, raw metrics, and GPS limitation annotations.
  6. Save individual results to the server, then optionally attach them to a flight record via + Add to Flight.
Maneuver and approach analysis run independently on the same track. You can score approaches first, then analyze maneuvers (or vice versa) without re-uploading.
Supported Maneuvers (25 Types)

Maneuvers are grouped by category. Which ones appear depends on your active pursuit and aircraft class (single-engine vs. multi-engine).

Performance

  • Steep Turns — 360° coordinated turns at 45° bank
  • Straight & Level — sustained stable flight (altitude, heading, airspeed)
  • Turn to Heading — roll out within ±10° of target heading
  • Emergency Descent — rapid altitude loss at a controlled speed
  • Steep Spiral — three 360° gliding turns with constant radius
  • Chandelle — climbing 180° turn, max pitch at 90°
  • Lazy Eight — symmetric climbing and descending turns through 180°

Ground Reference

  • Turns Around a Point — constant-radius orbit maintaining altitude
  • S-Turns — alternating semicircles across a line feature
  • Rectangular Course — four-sided ground track with wind correction
  • Eights on Pylons — figure-eight pivoting on two ground references at pivotal altitude

Takeoff / Landing

  • Normal Takeoff — climb rate, centerline tracking, speed stability
  • Normal Landing — stabilized approach, alignment, touchdown speed
  • Go-Around — prompt climb initiation after rejected landing
  • Traffic Pattern — four-leg rectangular circuit geometry
  • Forward Slip — controlled cross-controlled descent to landing
  • Power-Off 180 — power-off accuracy approach from abeam the touchdown point

Instrument

  • Airspeed Change — accelerate/decelerate while maintaining altitude and heading
  • Constant Airspeed Climb — sustained climb with speed control
  • Rate Climb — climb at a target vertical speed (e.g., 500 fpm)
  • Unusual Attitude Recovery — prompt recovery from nose-high or nose-low
  • Holding Pattern — racetrack geometry, timing, altitude, speed
  • Intercept & Track — intercept a radial/bearing and maintain tracking
  • DME Arc — constant-radius arc at a specified DME distance
  • Missed Approach — execute climb-out after descending to decision altitude
Scoring and GPS Limitations

Each maneuver is scored on multiple component dimensions (e.g., altitude maintenance, bank angle, heading accuracy, airspeed control). Component scores range from 0 to 100 and are combined into an overall score. The maneuver meets ACS Standard only when every component individually passes its threshold.

Private vs. Commercial standard

Your active pursuit determines which ACS standard applies. IR and PPL pursuits use private pilot tolerances; CPL and ATP pursuits use tighter commercial tolerances.

Confidence rating

Each detected maneuver carries a confidence value (0 to 1) reflecting how certain the detector is that the GPS track actually represents this maneuver. For example, steep turns detected from heading change rate are high confidence (0.85), while unusual attitude recovery is low confidence (0.5) because GPS cannot confirm actual aircraft attitude.

GPS limitations

Each component score is annotated with a GPS limitation notice explaining what GPS data can and cannot verify for that component. These annotations are saved with the result so they remain visible when reviewing historical data. Common limitations include:

  • Bank angle — estimated from turn rate and groundspeed; actual bank angle is not measured by GPS
  • Airspeed — GPS reports groundspeed only; indicated airspeed depends on wind, which is unknown
  • Coordination — slip/skid and rudder inputs are invisible to GPS
  • Power management — throttle position and RPM are not recorded
GPS-based maneuver scoring is an approximation. Scores should be used as a training supplement alongside instructor observation, not as a standalone evaluation.
Common Error Checklist

Many important maneuver errors are not detectable from GPS data — things like improper rudder coordination, fixation on instruments, or failure to clear the area. The Common Error Checklist lets instructors document these observations alongside the GPS-derived scores.

Instructor workflow

  1. After a maneuver is detected and scored, the error checklist appears below the score gauges.
  2. Check any errors the instructor observed during the maneuver.
  3. Save the result — checked errors are persisted with the maneuver record.
  4. Errors on previously saved results can be updated via the result detail view.

Student view

Students see checked errors as read-only items. This gives them visibility into what the instructor observed without the ability to modify the assessment.

Reporting Detection Issues

Maneuver and approach detection is not perfect. If the analyzer misses a maneuver, miscategorizes it, or detects one that did not occur, you can submit feedback directly from the Analyzer page.

How to report

  1. Click Report Issue after running detection (the button appears in the maneuver and approach result areas).
  2. Select the category (maneuver or approach) using the toggle at the top of the dialog.
  3. Choose a feedback type:
    • Missed — the maneuver was flown but not detected
    • Miscategorized — detected as the wrong type
    • False Positive — detected but the maneuver was not actually flown
  4. For miscategorized and false positive reports, a Detected Segment dropdown pre-fills the start and end point indices from the segment that was incorrectly detected. For missed reports, set the point range manually using the slider or number inputs.
  5. Select the expected type — for maneuvers, choose from the full list of 25 maneuver types; for approaches, choose the approach subtype (ILS, LOC, RNAV-LPV, etc.).
  6. For miscategorized reports, select detected as to indicate what the system incorrectly labeled the segment.
  7. Add a description with any additional context (what you were flying, what you expected to see, etc.).
  8. Review the map preview — the dialog shows the selected point range on a map with green (start) and red (end) markers, plus altitude labels. This helps verify you have selected the correct portion of the track.
  9. Click Submit Feedback. The report is saved along with an excerpt of the GPS track data (the selected range plus ~50 points of context on each side, up to 2,000 points total).

What happens to feedback

Submitted reports enter a Pending status. Tenant admins and flight ops admins can review feedback in the Feedback tab under Tenant Settings, where they can:

  • Filter by status: Pending, Investigating, Resolved, Won’t Fix
  • Expand any item to see the full description, track metadata (altitude range, point count), and submission date
  • Update the status and add resolution notes

The GPS track excerpt attached to each report is used by the development team to reproduce the detection issue and improve the algorithms.

How the Approach Track Is Selected

Before scoring, the analyzer filters the raw GPS track down to points that plausibly belong to the approach through several ordered steps.

1. Range filter

Points beyond 15 NM from the runway threshold are excluded (20 NM for circling). Points more than 90° off the approach inbound bearing are also dropped.

2. Ground track heading filter

For straight-in approaches, any point where the computed ground track (derived from successive GPS fixes) is more than 90° opposite the inbound course is dropped. This prevents outbound legs of a procedure turn from being scored. Circling approaches skip this filter.

3. Approach validation gate

An approach is only considered flown if the track satisfies at least one entry rule:

  • IAF fly-by — the track passed within 1.0 NM of any IAF or IF waypoint.
  • Radar vector to FAF — the track passed within 0.5 NM of the FAF with a ground track within 30° of the approach course and altitude within ±200 ft of the FAF crossing altitude.

4. IAF trim

Points collected before the aircraft first passes within 1.0 NM of an IAF or IF are discarded. If no IAF/IF waypoints exist, the trim falls back to the FAF. This prevents feeder route data from inflating the scored segment.

5. Course-alignment trim

Points prior to the aircraft first establishing within 30° of the inbound course are trimmed from all scoring — glidepath, lateral, and altitude constraints. This removes procedure turn outbound legs and base turns.

6. Pass splitting

Multiple approaches in the same KML are split into individual passes. A new pass begins when the aircraft climbs more than 50 ft while moving away from the threshold (missed approach / go-around), or when there is a gap of more than ~2 minutes between adjacent qualifying points.

Lateral (Cross-Track) Deviation

Lateral deviation is the perpendicular distance of each GPS fix from the extended approach centerline. The centerline is constructed by projecting a point 25 NM outbound from the threshold on the reciprocal of the inbound course, then computing the spherical cross-track distance of each track point to that line segment.

Full-scale reference by approach subtype

  • Outside FAF (all types): ±1.0 NM — en-route scale, not used in ACS standard check.
  • ILS — angular beam: antenna modeled 1.3 NM past the stop end. Full scale = (distFromThreshold + 1.3 NM) × tan(2.5°). At the threshold this yields ~347 ft.
  • RNAV-LPV: same angular model, beam origin at the threshold: distFromThreshold × tan(2.5°).
  • LOC, VOR, RNAV-LNAV, NDB inside FAF: fixed ±0.3 NM.

Scoring

Lateral score = 100 × (1 − normalized RMS) where normalized RMS is the root-mean-square of each point's deviation divided by its full-scale reference.

ACS Standard threshold

Precision: normalized RMS ≤ 0.75 (IR/PPL/CPL) or ≤ 0.25 (ATP). Non-precision: xtrack RMS ≤ lateralMultiplier × locHalfWidth.

Glidepath (Vertical) Deviation

Glidepath deviation is only computed for approaches with vertical guidance — ILS and RNAV approaches flown to LPV or LNAV/VNAV minimums. RNAV-LNAV has no glidepath score even if the procedure includes VNAV data.

Reference glidepath altitude

idealAlt = TDZE + distNM × 6076.12 × tan(glidepathAngle°)

Where TDZE is touchdown zone elevation, 6076.12 converts NM to feet, and glidepathAngle is typically 3.0° but uses the published CIFP value.

Scoring window

Only points from the FAF inward to 0.5 NM from the threshold are scored. Points closer than 0.5 NM are excluded (landing flare or missed approach). If the aircraft climbs more than 150 ft above the ideal glidepath, all subsequent points are excluded as a missed approach.

Scoring model

  • Precision (ILS, RNAV-LPV): angular full-scale = dist × 6076.12 × tan(1.4°) ft. Normalized RMS ≤ 0.75 for ACS Standard.
  • Non-precision with advisory VNAV: score = 100 − (gpRms / 2). ACS Standard requires gpRms ≤ 75 ft.
Minimums Assignment

The analyzer uses published minimums from the CIFP database to set the altitude constraint on the MAP waypoint. Published minimums always take precedence over raw CIFP leg altitudes.

Straight-in MDA/DA

The approach minimums[] array is filtered for entries with type: "mda". The first non-circling entry is used.

Circling MDA

For circling approaches, minimums are filtered for entries whose label contains "circling". When GPS timestamps are available the analyzer estimates groundspeed from track points within ±1 NM of the FAF and determines FAA approach category:

  • Cat A: < 91 kt
  • Cat B: 91–120 kt
  • Cat C: 121–140 kt
  • Cat D: ≥ 141 kt

Altitude constraint scoring

A waypoint is "crossed" when the nearest track point is within 1.5 NM of the waypoint. The constraint is met when actual altitude satisfies altMin − 80 ft (floor) and altMax + 150 ft (ceiling). Step-down fixes are not scored on precision approaches.

Missed Approach Point Detection

Precision approaches (ILS, RNAV-LPV)

No MAP-fix trimming is applied. The glidepath scoring window's 0.5 NM floor serves as the natural endpoint; the missed approach climb detector (150 ft above GP) handles go-arounds.

Non-precision approaches

The MAP waypoint (type: "mda" with lat/lon) is used as the end trigger. Scoring stops when the aircraft has come within 0.3 NM of the MAP fix and then diverges by more than 0.2 NM.

Fallback (no lat/lon MAP)

When the MAP has no geographic coordinates, the analyzer uses distance-divergence: once the aircraft reaches within (closest waypoint distance + 1 NM) of the threshold, scoring stops if the distance then increases by more than 1.0 NM.

Student

Students are the primary users of the platform. Everything on a student's account is private — no other student can see their records. If you are training independently without a school affiliation, you are automatically enrolled in a personal solo account on first login.

Typical workflow

  1. After each flight, log it under New Flight / Tasks with a title and one or more graded task entries.
  2. Upload your GPS track (KML) in the Analyzer to score approaches (lateral, glidepath, altitude) and maneuvers (steep turns, ground reference, instrument tasks, etc.).
  3. Attach approach and maneuver results to flight records to keep a complete debrief record.
  4. Review ACS task progress on the Progress page.
  5. Use the Dashboard calendar to track task volume and score trends over time.

Sidebar navigation

Dashboard · New Flight / Tasks · Analyzer · Progress

Instructor

Instructors can view and create records for students assigned to them. Visibility is strictly limited to assigned students — data from other instructors' students is not visible.

Typical workflow

  1. After a lesson, log the flight under New Flight / Tasks, selecting the student from the student picker.
  2. Upload the KML in the Analyzer, score approaches and maneuvers, then attach results to the flight record.
  3. Review the Common Error Checklist on each maneuver result to document observations that GPS cannot capture (coordination, power management, clearing turns, etc.).
  4. Use the Students page to navigate to a student's record and review their flight history, analysis results, curriculum, and progress.
  5. Use the Dashboard to see a summary of all assigned students' task performance.

Sidebar navigation

Dashboard · New Flight / Tasks · Analyzer · Students

Instructor-student pairings are created by a flight_ops_admin or admin from the Assignments page. You will not see a student's data until the assignment exists.
Flight Ops Admin

Designed for chief instructors and schedulers. Flight ops admins see all students in the tenant, can create records for any of them, and manage instructor-student assignments — but cannot invite users or change membership roles.

Additional responsibilities vs. Instructor

  • View and create records for any active student in the tenant, not just assigned students
  • Access the Assignments page to pair and unpair instructors with students

Sidebar navigation

Dashboard · New Flight / Tasks · Analyzer · Students · Assignments

Admin

Full tenant control. Admins handle membership lifecycle: inviting users, adjusting roles, and configuring available training programs. All flight_ops_admin capabilities are included.

Additional responsibilities vs. Flight Ops Admin

  • Invite new users by email with a specific role
  • Revoke pending invitations before they are accepted
  • Change any member's role at any time
  • Deactivate student accounts (blocks login and uploads; preserves all historical data)
  • Reactivate deactivated accounts
  • Configure which training programs appear in the student pursuit selector

Sidebar navigation

Dashboard · New Flight / Tasks · Analyzer · Students · Assignments · Settings

Deactivating a student preserves all historical records. Admins and instructors can still view past data for inactive students — deactivation only blocks new logins and uploads.
Multi-School Membership

A single account can hold memberships in multiple organizations simultaneously. Roles are independent per organization — you can be an instructor at one school and a student at another. The tenant switcher in the sidebar lets you switch between organizations. All data is fully scoped to the selected organization.

Users with no school affiliation are automatically enrolled in a personal solo account on first login. Solo accounts support the full Analyzer and flight logging workflow without instructor involvement.
For Students: Dashboard

The Dashboard (/dashboard) is the student's primary performance overview with two main panels.

This Week

Stat cards appear for each task type (approach and maneuver) scored during the current ISO week, showing the min, mean, and max overall score. Cards are color-coded: green ≥ 80, yellow 60–79, orange < 60.

Activity Calendar

A month-at-a-glance calendar where each day with scored tasks shows the mean overall score, score range (min–max), and ACS pass rate (n/total). Clicking a day opens a detail panel listing each approach and maneuver result with its type, score, ACS label, and a link to the full result.

Solo users: My Course selector

Students on the solo tenant see a My Course dropdown above the weekly summary to select the certificate or rating they are pursuing. This sets the curriculum used in the Progress page. School-affiliated students have their pursuit set by an instructor or admin.

For Students: Progress Page

The Progress page (/progress) tracks ACS task completion against the curriculum for your active pursuit. A pursuit must be set — if none is set, a prompt directs you to set one.

Progress bar

A top-level bar shows the number and percentage of required tasks that have reached ACS Standard. Waived tasks (computed from already-held certificates) are excluded from the denominator and shown separately.

Task statuses

  • Complete — at least one ACS Standard score logged for this task
  • Attempted — logged at least once but never yet at ACS Standard
  • Not Started — no records found
  • Waived — automatically waived because a prerequisite certificate is already held

Status reflects the best-ever score: once a task reaches ACS Standard it stays Complete. Expanding a task row shows the full evaluation history with dates, flight titles, scores, and links to approach results.

The icon on each task opens a drawer with the full ACS knowledge, risk management, and skill standards for that task.

For Students: Flight and Analysis History

New Flight / Tasks (/flights)

After submitting a record, the result card appears on the same page showing the flight title, date, task list with score chips, and — if an approach task was included — the approach map with a KML upload slot.

Analysis History (/history)

A table of all saved approach results, filterable by airport. Each row shows date, airport, approach label, overall score, and ACS label. Clicking a row opens the full Result Detail page with deviation charts, constraint table, and map. Each row has a + Flight button to attach the result to a flight record retroactively.

For Instructors: Students Roster

The Students page (/students) is the roster of all students visible to the current user. Instructors see only their assigned students. Flight ops admins and admins see all tenant members.

Each row shows name, email, and a status chip for non-active memberships: Pending (invited but not yet logged in) or Inactive (deactivated). Inactive rows are visually dimmed. Clicking any row opens that student's detail page.

If you expect to see a student but they are not listed, check with a flight_ops_admin or admin to confirm the instructor assignment has been created.
For Instructors: Student Detail

The Student Detail page (/students/:studentId) is a tabbed view of everything logged for one student.

Flights tab

All flight records: date, title, task, score chip, and approach label/airport for approach tasks. Maneuver results attached to a flight appear as task entries with their ACS label.

Analysis tab

All approach and maneuver results: date, type, overall score, ACS label. Clicking a row opens the full Result Detail view.

Curriculum tab

Instructors and above can set the student's Pursuing certificate or rating, filtered to programs enabled by the tenant admin. The Already Holds section toggles which certificates the student already holds — this drives the waiver computation on the Progress tab. Instructors can save pursuit changes; changing held certificates requires admin role.

Progress tab

The same ACS task tracker shown on the student's Progress page: task status grouped by ACS Area, evaluation history per task, links to approach results.

Course History tab

A chronological log of every time the student's active pursuit was changed — previous value, new value, and date. Useful for tracking students who have transitioned between ratings (e.g., completed IR, now pursuing CPL).

For Instructors: Dashboard (Staff View)

When an instructor, flight_ops_admin, or admin loads the Dashboard it shows a Student Progress view — a task-oriented summary across all visible students — instead of the personal calendar.

Filter by Student

A dropdown lets you filter to a single student, yourself (Me), or view all students at once. Filtering to one student shows tasks directly; viewing all students shows one collapsible accordion per student.

Per-student accordion

Each accordion header shows the student's name, a curriculum progress fraction (n/total complete), and a two-tone progress bar: green for ACS-complete tasks, orange for attempted-but-not-yet-ACS tasks.

Task rows

Each task shows the task name, up to 5 recency dots (filled green for ACS Standard, hollow orange for Student), a count summary, and the most recent attempt date. Expanding shows up to 10 scored attempts with dates and links to approach results.

The Dashboard loads up to 500 recent flight records. For very active tenants this may not cover the full history — use the Student Detail page for a complete view of any individual student.
Branding

Tenant admins can customize the appearance of the platform for their organization. The Branding tab in Tenant Settings controls two properties that affect the entire app for all members of the tenant.

Logo URL

Provide a URL to a PNG or SVG image. The logo appears in the top-left header area where “61Insights” normally displays. Leave the field blank to show the default 61Insights wordmark. The logo is rendered at 36 px height and auto-scales width to maintain aspect ratio (max 220 px wide).

The URL must be publicly accessible (no authentication required) and served over HTTPS. Logos hosted on services like Google Drive require a direct image link, not a sharing URL.

Appearance Preset

Two built-in presets control the full visual surface of the app:

  • Aviation Light — light background, muted blue accents, high-contrast text. Best for daytime use and projection in classrooms.
  • Aviation Dark — dark blue-black background with blue accents. Reduces eye strain during evening debriefs and matches cockpit lighting.

The preset drives header styling, card backgrounds, input fields, navigation, buttons, and text colors. A live preview panel in the Branding tab shows how each element will appear before you save.

Saving

Click Save Branding to apply changes. All tenant members will see the updated branding on their next page load. Changes are scoped to the tenant — members with memberships in other organizations will see each organization’s own branding when switching tenants.

Training Programs

The Programs tab controls which certificate and rating pursuits are available to students in the tenant. By default, all programs are enabled.

How it works

  • Toggle individual programs on or off using the checkboxes. Use Select All or Clear All for bulk changes.
  • Only enabled programs appear in the pursuit selector when an instructor or admin sets a student’s active pursuit.
  • Solo-tenant users (students training independently) see only enabled programs in their My Course dropdown.
  • Disabling a program does not affect students already pursuing it — they keep their current pursuit until it is explicitly changed.
Programs include all certificate and rating combinations: PPL-ASEL, PPL-AMEL, IR, CPL-ASEL, CPL-AMEL, ATP, and seaplane variants (ASES, AMES). Each program maps to a specific set of ACS tasks and maneuver types in the Progress page and Maneuver Analyzer.
Detection Feedback Review

The Feedback tab (visible to admins and flight ops admins) shows all detection feedback submitted by tenant members. This is the administrative side of the Report Issue feature in the Analyzer.

Reviewing feedback

  • Each row shows the feedback type (Missed, Miscategorized, False Positive), category (maneuver or approach), expected type, submitter, date, and current status.
  • Use the status filter dropdown to focus on Pending, Investigating, Resolved, or Won’t Fix items.
  • Expand a row to see the full description, track metadata (total points, altitude range, excerpt indices), and resolution notes.

Updating status

  1. Expand the feedback item.
  2. Select a new status from the dropdown (Pending → Investigating → Resolved / Won’t Fix).
  3. Add resolution notes explaining what was found or changed (up to 2,000 characters).
  4. Click Update. The status change and notes are saved immediately.

Root admins managing other tenants can also access this tab from the Tenants management page.

Known Limitations and What to Expect

The following issues arise from the nature of GPS data and the approximations in the scoring model. They are expected artifacts, not bugs.

GPS altitude vs. pressure altitude

ForeFlight and most GPS sources report WGS-84 ellipsoidal altitude, not the pressure altitude (MSL) used by approach plates. The geoid undulation is typically 60–100 ft in the continental US, creating a systematic bias on glidepath score. A well-flown ILS may still show a 50–80 ft glidepath RMS for this reason alone.

No timestamps (LineString KML)

Some export formats produce a LineString without timestamps. In this case groundspeed cannot be computed, approach category is unknown, and the category-specific circling MDA cannot be selected.

Sparse track point density

A 1 Hz track at 100 kt produces a point every ~170 ft — adequate for final approach. Tracks at 0.1 Hz produce points ~1,700 ft apart. At that density, short excursions may be missed entirely (artificially good lateral score), and sparse tracks on curved segments like procedure turns can exaggerate cross-track error.

Magnetic vs. true course

CIFP approach courses are magnetic. When a trueCourse field is present in the stored approach data it is used; otherwise finalCourse (magnetic) is used directly. Since bearings from lat/lon are always true north–referenced, using magnetic course without declination correction introduces a systematic lateral offset equal to local magnetic variation.

ILS localizer antenna offset

The angular localizer beam model places the antenna 1.3 NM past the stop end — an average for published ILS installations. Actual distances range from ~0.8 NM to over 1.5 NM. At the FAF the error is small (<2%), but near the threshold it can be meaningful.

LOC course half-width

Non-precision approaches use a fixed ±0.3 NM full-scale reference unless the CIFP data includes a locHalfWidthNM value. Actual LOC/VOR course widths vary — when the stored half-width is missing, the 0.3 NM default may make the ACS Standard threshold more or less strict than the actual approach structure.

IAF trim and partial track recordings

If the GPS recording began after the IAF was already crossed, the IAF trim cannot find an IAF passage and falls back to the FAF. The scored segment starts at the FAF, and the IAF-to-FAF portion is not included.

Pass splitting on shallow missed approaches

The pass splitter triggers on a >50 ft climb while moving away from the threshold. A very gradual go-around — or a touch-and-go where altitude stays near threshold elevation — may not trigger a split, causing two passes to be scored as one continuous track.

Maneuver heading scoring near north

Heading-based scores (straight & level, intercept & track, takeoff centerline tracking, etc.) correctly handle the 360°/0° wraparound. A heading of 359° and 1° are treated as 2° apart, not 358°.

Maneuver bank angle estimation

Bank angle is derived from turn rate and groundspeed using the coordinated turn formula. In turbulence or with significant crosswind, the estimate may diverge from actual bank angle. Steep turn bank angle scores should be interpreted as approximations.

Maneuver detection on long flights

Tracks from flights longer than two hours at 1 Hz produce over 7,200 data points. The analyzer processes these without issue, but dense tracks may surface more candidate segments that require manual review. Toggle off irrelevant maneuver types before analyzing to reduce noise.