IGC-SPY Metrics Reference
Key Terminology
| Term | Description |
| Glide | A segment of straight flight between thermals |
| Track | Actual distance flown (every GPS fix) |
| True (T-) | Excludes tries (failed thermal attempts) |
| Tries | Failed thermal attempts (entered but abandoned) |
| Thermals | Successful thermal climbs |
| Orbit | One complete circle in a thermal |
| Netto | Vertical air mass movement (lift/sink) |
| STF | Speed To Fly - optimal speed for conditions |
| Stab | Stabilised - excludes entry/exit of thermal |
| _r, _l, _m | Right turn, Left turn, Mixed direction suffixes |
Race Class Metrics
The Race class contains aggregate statistics for the entire race (start to finish).
Time Metrics
| Metric | Field Name | Description | Calculation |
| Start Time | start_time | Time at race start | First fix after start |
| End Time | end_time | Time at race finish | Finish fix time |
| Race Time | race_time | Total race duration | end_time - start_time |
| Glide Time | glide_time | Time gliding (incl tries) | tglide_time + tries_time |
| True Glide Time | tglide_time | Time gliding (excl tries) | Direct measurement |
| Thermal Time | thermal_time | Time in thermals | Sum of all thermal times |
| Tries Time | tries_time | Time in failed attempts | Sum of all tries times |
| True Glide Time % | tglide_time_pct | % of race gliding | tglide_time / race_time * 100 |
| Thermal Time % | thermal_time_pct | % of race thermaling | thermal_time / race_time * 100 |
| Tries Time % | tries_time_pct | % of race in tries | tries_time / race_time * 100 |
Altitude Metrics
| Metric | Field Name | Description | Calculation |
| Start Altitude | start_alt | Altitude at start | Start fix altitude |
| End Altitude | end_alt | Altitude at finish | Finish fix altitude |
| Race Altitude | race_alt | Net altitude change | end_alt - start_alt |
| Min Altitude | min_alt | Lowest point in race | Minimum of all fixes |
| Max Altitude | max_alt | Highest point in race | Maximum of all fixes |
| Glide Altitude | glide_alt | Alt change during glides (incl tries) | Sum of glide altitude changes |
| True Glide Altitude | tglide_alt | Alt change during glides (excl tries) | Sum excluding tries |
| Thermal Altitude | thermal_alt | Total alt gained in thermals | Sum of thermal gains |
| Thermal Lost Altitude | thermal_lost_alt | Alt lost while thermaling | Sum of negative changes in thermals |
| Tries Altitude | tries_alt | Alt change in tries | Sum of tries altitude |
| Tries Lost | tries_lost | Alt lost in tries | Sum of negative changes in tries |
| Avg Thermal Altitude | avg_thermal_alt | Average alt gain per thermal | thermal_alt / thermals_count |
| Avg Glide Altitude | avg_glide_alt | Average cruising altitude | Weighted average during glides |
Distance Metrics
| Metric | Field Name | Description | Calculation |
| Race Length | race_length | Point-to-point distance | distance(start_fix, finish_fix) |
| Track Length | track_length | Total path flown (excl thermals) | Sum of all glide segments |
| True Track Length | ttrack_length | Path flown (excl thermals & tries) | Sum excluding tries |
| Race Deviation % | race_deviation_pct | Extra distance from deviations | (ttrack_length / race_length - 1) * 100 |
| Avg Glide Length | avg_glide_length | Average distance between thermals | race_length / glides_count |
Count Metrics
| Metric | Field Name | Description |
| Glides Count | glides_count | Number of glide segments |
| Thermals Count | thermals_count | Number of thermals used |
| Thermals Count R | thermals_count_r | Right-turning thermals |
| Thermals Count L | thermals_count_l | Left-turning thermals |
| Thermals Count M | thermals_count_m | Mixed-direction thermals |
| Tries Count | tries_count | Number of failed thermal attempts |
Speed Metrics
| Metric | Field Name | Description | Calculation |
| Race Speed | race_speed | Overall race speed | race_length / race_time |
| Glide Speed | glide_speed | Speed excluding thermal time | race_length / glide_time |
| True Glide Speed | tglide_speed | Speed excl thermals & tries | race_length / tglide_time |
| Track Speed | track_speed | Actual path speed (excl thermals) | track_length / glide_time |
| True Track Speed | ttrack_speed | Path speed excl tries | ttrack_length / tglide_time |
| Min Speed | min_speed | Minimum ground speed in glides | Minimum of glide segments |
| Max Speed | max_speed | Maximum ground speed in glides | Maximum of glide segments |
| Avg Thermal Speed | avg_thermal_speed | Average speed while circling | Weighted average in thermals |
| Avg STF | theory_avg_dolphin_stf | Theoretical optimal Speed To Fly | Calculated from conditions |
Climb Rate Metrics
| Metric | Field Name | Description | Calculation |
| Avg Thermals Climb | avg_thermals_climb | Average climb per thermal | thermal_alt / thermal_time |
| Avg Thermals Climb R | avg_thermals_climb_r | Right-turn thermal climb rate | Right thermals only |
| Avg Thermals Climb L | avg_thermals_climb_l | Left-turn thermal climb rate | Left thermals only |
| Avg Thermals Climb M | avg_thermals_climb_m | Mixed thermal climb rate | Mixed thermals only |
| Avg Orbits Climb | avg_orbits_climb | Average climb per orbit | Average of orbit climb rates |
| Avg Orbits Climb R | avg_orbits_climb_r | Right orbit climb rate | Right orbits only |
| Avg Orbits Climb L | avg_orbits_climb_l | Left orbit climb rate | Left orbits only |
| Avg Orbits Climb M | avg_orbits_climb_m | Mixed orbit climb rate | Mixed orbits only |
| Avg Tries Climb | avg_tries_climb | Climb rate in tries | tries_alt / tries_time |
L/D (Lift/Drag Ratio) Metrics
| Metric | Field Name | Distance | Altitude | Calculation |
| Glide LD | glide_ld | Point-to-point | Includes tries | -race_length / glide_alt |
| True Glide LD | tglide_ld | Point-to-point | Excludes tries | -race_length / tglide_alt |
| Track LD | track_ld | Every fix | Includes tries | -track_length / glide_alt |
| True Track LD | ttrack_ld | Every fix | Excludes tries | -ttrack_length / tglide_alt |
Netto & Polar Metrics
| Metric | Field Name | Description | Calculation |
| True Track Netto | ttrack_avg_dolphin_netto | Average netto (air mass) | Average of fix-by-fix netto values |
| True Track Avg Netto | ttrack_avg_block_netto | Weighted average netto | Block-style netto calculation |
| Sink at STF | sink_at_stf | Sink rate at theoretical STF | polar_sink_rate(netto, theory_avg_dolphin_stf) |
| Sink at TTrack Speed | sink_at_ttrack_speed | Sink rate at actual speed | polar_sink_rate(netto, ttrack_speed) |
| Density Alt % Gain | dens_alt_percent_gain | Performance gain from altitude | Based on air density |
Leg Class Metrics
The Leg class contains the same metrics as Race but for individual task legs (between turnpoints).
All Race metrics apply to Leg, with these additional fields:
| Metric | Field Name | Description |
| Leg ID | id | Leg number (1, 2, 3...) |
| Start Point | start_point | Turnpoint name at leg start |
| Finish Point | finish_point | Turnpoint name at leg end |
| Leg Time | leg_time | finish_fix.rawtime - start_fix.rawtime |
Glide Class Metrics
The Glide class contains metrics for individual glide segments between thermals.
Time Metrics
| Metric | Field Name | Description |
| Start Time | start_time | Entry time into glide |
| End Time | end_time | Exit time from glide |
| Glide Time | glide_time | Duration including tries |
| True Glide Time | tglide_time | Duration excluding tries |
| Tries Time | tries_time | Time spent in tries during glide |
Altitude Metrics
| Metric | Field Name | Description |
| Start Altitude | start_alt | Altitude at glide start |
| End Altitude | end_alt | Altitude at glide end |
| Glide Altitude | glide_alt | Altitude change (incl tries) |
| True Glide Altitude | tglide_alt | Altitude change (excl tries) |
| Tries Altitude | tries_alt | Altitude change in tries |
| Min Altitude | min_alt | Lowest point in glide |
| Max Altitude | max_alt | Highest point in glide |
Distance Metrics
| Metric | Field Name | Description |
| Glide Length | glide_length | Point-to-point distance |
| Track Length | track_length | Actual path distance |
| True Track Length | ttrack_length | Path distance excl tries |
| Tries Track Length | tries_track_length | Path distance in tries |
Speed Metrics
| Metric | Field Name | Description | Calculation |
| Glide Speed | glide_speed | Point-to-point speed | glide_length / glide_time |
| True Glide Speed | tglide_speed | P2P speed excl tries | glide_length / tglide_time |
| Track Speed | track_speed | Path speed | track_length / glide_time |
| True Track Speed | ttrack_speed | Path speed excl tries | ttrack_length / tglide_time |
| Min Speed | min_speed | Minimum ground speed | |
| Max Speed | max_speed | Maximum ground speed | |
L/D Metrics
| Metric | Field Name | Calculation |
| Glide LD | glide_ld | -glide_length / glide_alt |
| True Glide LD | tglide_ld | -glide_length / tglide_alt |
| Track LD | track_ld | -track_length / glide_alt |
| True Track LD | ttrack_ld | -ttrack_length / tglide_alt |
Vario & Netto Metrics
| Metric | Field Name | Description |
| Glide Vario | glide_vario | Sink rate (incl tries) |
| True Glide Vario | tglide_vario | Sink rate (excl tries) |
| True Track Netto | ttrack_avg_dolphin_netto | Air mass movement (netto) |
| True Track Avg Netto | ttrack_avg_block_netto | Weighted average netto |
| STF | stf | Speed To Fly for this glide |
| Sink at STF | sink_at_stf | Expected sink at STF |
Thermal Class Metrics
The Thermal class contains metrics for individual successful thermal climbs.
Basic Info
| Metric | Field Name | Description |
| ID | id | Thermal number (1, 2, 3...) |
| Direction | direction | Turn direction (R, L, M) |
| Orbit Count | orbit_count | Number of complete circles |
Time Metrics
| Metric | Field Name | Description |
| Start Time | start_time | Entry time into thermal |
| End Time | end_time | Exit time from thermal |
| Time | time | Total time in thermal |
Altitude Metrics
| Metric | Field Name | Description |
| Start Altitude | start_alt | Altitude at entry |
| End Altitude | end_alt | Altitude at exit |
| Altitude | alt | Net altitude gained |
| Lost Altitude | lost_alt | Altitude lost in sinking moments |
| Min Altitude | min_alt | Lowest point in thermal |
| Max Altitude | max_alt | Highest point in thermal |
Speed Metrics (Ground Speed While Circling)
| Metric | Field Name | Description |
| Min Speed | min_speed | Minimum ground speed |
| Max Speed | max_speed | Maximum ground speed |
| Avg Speed | avg_speed | Average ground speed |
| Stab Min Speed | stab_min_speed | Stabilised min speed |
| Stab Max Speed | stab_max_speed | Stabilised max speed |
| Stab Avg Speed | stab_avg_speed | Stabilised avg speed |
Orbit Time Metrics
| Metric | Field Name | Description |
| Min Orbit Time | min_orbit_time | Fastest orbit |
| Max Orbit Time | max_orbit_time | Slowest orbit |
| Avg Orbit Time | avg_orbit_time | Average orbit duration |
| Stab Min Orbit Time | stab_min_orbit_time | Stabilised min |
| Stab Max Orbit Time | stab_max_orbit_time | Stabilised max |
| Stab Avg Orbit Time | stab_avg_orbit_time | Stabilised average |
Orbit Diameter Metrics
| Metric | Field Name | Description |
| Min Diameter | min_diam | Smallest circle diameter |
| Max Diameter | max_diam | Largest circle diameter |
| Avg Diameter | avg_diam | Average circle diameter |
| Stab Min Diameter | stab_min_diam | Stabilised min |
| Stab Max Diameter | stab_max_diam | Stabilised max |
| Stab Avg Diameter | stab_avg_diam | Stabilised average |
Climb Rate Metrics
| Metric | Field Name | Description |
| Min Climb | min_climb | Minimum climb rate |
| Max Climb | max_climb | Maximum climb rate |
| Avg Climb | avg_climb | Average climb rate |
| Stab Min Climb | stab_min_climb | Stabilised min |
| Stab Max Climb | stab_max_climb | Stabilised max |
| Stab Avg Climb | stab_avg_climb | Stabilised average |
Wind Metrics
| Metric | Field Name | Description |
| Wind Direction | wind_dir | Estimated wind direction |
| Wind Speed | wind_speed | Estimated wind speed |
Other
| Metric | Field Name | Description |
| Track Length | track_length | Total distance flown in thermal |
Orbit Class Metrics
The Orbit class contains metrics for individual circles within thermals.
| Metric | Field Name | Description |
| ID | id | Orbit number within thermal |
| Direction | direction | Turn direction (R, L) |
| Start Time | start_time | Circle start time |
| End Time | end_time | Circle end time |
| Time | time | Circle duration |
| Start Altitude | start_alt | Altitude at start |
| End Altitude | end_alt | Altitude at end |
| Altitude | alt | Net altitude gain |
| Lost Altitude | lost_alt | Altitude lost in sinking moments |
| Lost Alt % | lost_alt_pct | % of gain lost |
| Track Length | track_length | Distance flown in orbit |
| Diameter | diam | Circle diameter |
| Min Speed | min_speed | Minimum ground speed |
| Max Speed | max_speed | Maximum ground speed |
| Speed | speed | Average ground speed |
| Vario | vario | Climb rate |
Thermal Attempt (Tries) Class
The Thermal_attempt class extends Thermal with the same metrics, but represents failed thermal attempts that were abandoned.
Calculation Notes
Time Components
Race Time = Thermal Time + Glide Time
= Thermal Time + (True Glide Time + Tries Time)
Distance Components
Track Length = TTrack Length + Tries Distance + Thermal Circle Distance
Race Length = Point-to-point distance (straight line)
Altitude Components
glide_alt = Altitude change during glides (including tries)
tglide_alt = Altitude change during glides (excluding tries)
thermal_alt = Altitude gained in thermals
tries_alt = Altitude gained/lost in tries
Stabilised vs Regular Metrics
- Regular: Includes all data from thermal entry to exit
- Stabilised (Stab): Excludes entry and exit phases, only measures steady-state circling
Direction Suffixes
- _r: Right-turning thermals only
- _l: Left-turning thermals only
- _m: Mixed (changed direction) thermals only
Database Storage Units
All values are stored in SI units:
| Measurement | Unit |
| Distance | meters (m) |
| Speed | meters per second (m/s) |
| Altitude | meters (m) |
| Time | seconds (s) or HH:MM:SS string |
| Wing Loading | kg/m² |
| Climb Rate | m/s (vario) |
The web interface converts these based on user preferences.
Delta Color Coding (h2h.php)
| Color | Meaning |
| Green | Glider 1 better than Glider 2 |
| Red | Glider 1 worse than Glider 2 |
| Blue | Neutral/informational delta |
Green = Better (positive is good)
Race Speed, all climb rates, all L/D ratios, netto values
Red = Better (positive is bad)
Tries Count, Tries Time, Sum of Alt Lost metrics