Skip to main content
Scoring

GlideComp logo How GAP Scoring Works

A guide to competition scoring for paragliding and hang gliding pilots

What is GAP?

FAI S7F §2

Most paragliding (PG) and hang gliding (HG) cross-country competitions in the world use the GAP scoring system. The FAI/CIVL (the international body for free-flight sports) maintains GAP. Section 7F of the FAI Sporting Code gives the full definition.

The name "GAP" comes from the three people who designed the system in the early 2000s: Gerolf Heinrichs, Angelo Crapanzano, and Paul Mollison. CIVL changed and improved it many times after that.

The core idea is this: a perfect task day is worth 1000 points. GAP divides these 1000 points among four categories: distance, time, leading, and arrival. Each pilot gets a share of the available points, related to how that pilot performed against the other pilots. A task day is not ideal when few pilots launch, or when nobody flies far. On such a day, the task is worth less than 1000 points.

How a Task Works

FAI S7F §6

This is the structure of a competition task, for pilots who never flew one.

The task committee defines a route as a series of turnpoints. Each turnpoint is a GPS coordinate with a cylinder radius around it. Pilots must fly into each cylinder in the given order. A typical task has these parts:

  • Launch — Where pilots take off. You must be at launch to get a score.
  • Start of Speed Section (SSS) — Where your timed run starts. In a race to goal, your clock starts at a fixed start gate time. That gate is the last gate at or before your crossing. In an elapsed-time task, the clock starts when you cross the cylinder.
  • Turnpoints — Intermediate waypoints that you must tag in order. You tag a turnpoint when you fly into its cylinder. The usual radius is 400 m to 2 km.
  • End of Speed Section (ESS) — The finish line for timing. Your speed section time stops here. In many tasks, ESS is the last turnpoint before goal.
  • Goal — The final turnpoint. If you reach goal, you completed the task. In PG, you must reach goal to get time points. ESS alone is not sufficient.

Your speed section time starts when you cross SSS. It stops when you reach ESS. Your flown distance is the distance along the optimised route, through the turnpoints you reached.

Task Validity

FAI S7F §9

Not every task day is worth the full 1000 points. If the conditions were bad, and most pilots landed near launch, the scores count for less in the overall standings. GAP does this with task validity. Task validity is a multiplier between 0 and 1 that scales the available points.

Task validity is the product of three independent sub-validities:

Launch Validity

Launch validity decreases when fewer pilots launch than expected. If almost all pilots fly, launch validity is 1.0. "Almost all" means more than the "nominal launch" threshold, usually 96%. If half of the field stays on the ground, launch validity decreases a lot. A task that only a few pilots launched into therefore cannot be worth too much.

"Pilots present" are the pilots not marked Absent. They are the pilots who flew and uploaded a track, plus the pilots who were present but Did Not Fly. Organisers set this on the pilot roll call of each task.

Distance Validity

Distance validity decreases when pilots do not fly far enough against the expected task distance. It uses the spread of the distances that all pilots flew. If most pilots landed near launch, the task was probably not fair, and the scores decrease.

Time Validity

Time validity decreases when the fastest time is much shorter than the expected task duration. The expected duration is the "nominal time", usually 90 minutes. A very short winning time can show that the task was too easy, or that the conditions were unusual.

The overall task validity is:

Task Validity=Launch Validity×Distance Validity×Time Validity\text{Task Validity} = \text{Launch Validity} \times \text{Distance Validity} \times \text{Time Validity}

And the total available points for the task are:

Available Points=1000×Task Validity\text{Available Points} = 1000 \times \text{Task Validity}

On a day with good conditions, task validity is close to 1.0, and the task offers almost 1000 points. On a bad day, the task can offer only 200 to 400 points.

The Four Scoring Components

FAI S7F §10

GAP divides the available points among four categories. The split depends on how many pilots made goal. That fraction is the goal ratio.

  • Distance Points — Reward how far you flew. Always the largest share.
  • Time Points — Reward how fast you completed the speed section. Worth more when many pilots make goal.
  • Leading Points — Reward the pilots who flew at the front of the pack and showed the way. They are also called "departure points". They are on by default, and a competition can disable them.
  • Arrival Points — Reward an early arrival at ESS. Hang gliding only. They are on by default for HG, and a competition can disable them.

When nobody makes goal, almost all of the points go to distance. When the goal ratio increases, more points go to time and leading. If all pilots completed the task, the important question is who was the fastest, not who flew the farthest.

A polynomial formula calculates the weight of each component from the goal ratio. For example, when the goal ratio is 0, the distance weight is approximately 0.9, which is 90% of the points. When 50% of the pilots make goal, the distance weight decreases to approximately 0.55.

Distance Points

FAI S7F §11.1

Every pilot who launches gets distance points. Distance points are therefore the largest part of a usual score. For paragliding, the formula is a direct proportion of the distance you flew:

Distance Points=Your DistanceBest Distance×Available Distance Points\text{Distance Points} = \dfrac{\text{Your Distance}}{\text{Best Distance}} \times \text{Available Distance Points}

The pilot who flew the farthest gets the full distance points. Each other pilot gets a share in proportion to the distance they flew. For hang gliding, half of the points use this proportion. The other half uses a "difficulty" measure, described below.

Minimum Distance

There is a minimum scored distance, usually 5 km. If you launch and fly only 1 km before you land, you still get the score for 5 km. Pilots call these "bomb-out points". The minimum gives each pilot a reason to launch and fly the task, instead of staying on the ground.

One case does not get the minimum: a tracklog that is not a flight of this task. Such a tracklog is a flight on a different day, or at a different site. It is not evidence that the pilot took off. It therefore scores zero instead of the minimum, and the page gives the reason. See how track validity checks work.

Distance Difficulty (hang gliding only)

In hang gliding, distance points have two halves (FAI rules, S7F §11.1.1 ):

Distance Points=(12Linear+12Difficulty)×Available Distance Points\text{Distance Points} = \left( \tfrac{1}{2}\,\text{Linear} + \tfrac{1}{2}\,\text{Difficulty} \right) \times \text{Available Distance Points}

  • The linear half is the same proportion of the best distance as the formula above.
  • The difficulty half uses the positions where the other pilots landed. A part of the course is "harder" when few pilots flew past it. A flight past a group of landed gliders is therefore worth more points. A short flight into an area where all pilots already landed is worth less.

The rulebook gives two reasons. First, for safety and retrieve, pilots must not have a reason to fly a small distance past a group that landed. Second, a pilot who lands usually had difficulty just before, so the last glide into a landing field is "easy" distance. Pilots who reach goal always get the full distance points. The report card shows the linear half and the difficulty half separately.

Difficulty does not apply to paragliding. A competition can also disable it in its settings and score hang gliding with the linear formula.

Where distance is measured from

Some tasks define a separate take-off turnpoint before the start (SSS). Competitions do not agree whether the take-off→start leg counts in the scored distance. GlideComp has two settings, and each competition selects one:

  • Take-off (default) — GlideComp measures the distance from the take-off point, through the start cylinder, to goal. The take-off is a fixed launch point. This obeys the FAI CIVL GAP and PWCA rules, and agrees with most scoring software, including AirScore.
  • Start cylinder — GlideComp measures the distance from the edge of the start cylinder. The take-off→start leg is not scored. This obeys the words of some national hang-gliding rules, for example Australia's HGFA/SAFA. It also agrees with the "Move Origin" option in the Davis/SeeYou scoring toolchain.

The two settings give different results only for a task with a take-off turnpoint. A task that starts at the SSS scores the same with both settings. The setting does not change the speed section (SSS→ESS), and therefore does not change time points or leading points.

Time Points

FAI S7F §11.2

Time points reward the pilots who completed the speed section quickly. These are the rules:

  • Paragliding: You must make goal to get time points ( §12.1 ). This rule removes the reason for a fast final glide close to the ground.
  • Hang gliding: You must reach ESS to get time points. Goal then validates them. By default, a pilot who crosses ESS but lands before goal keeps only 80% of their time and arrival points ( §12.1 ). Each competition can change this share under Advanced scoring settings. The share does not change distance points or leading points.

If you are eligible, your time points come from your speed fraction. The speed fraction is a value between 0 and 1. It measures how close your time was to the time of the fastest pilot:

SF=max ⁣(0,  1(Δttbest)5/6)\text{SF} = \max\!\left(0,\; 1 - \left(\dfrac{\Delta t}{\sqrt{t_{\text{best}}}}\right)^{5/6} \right)

In this formula, Δt\Delta t is the difference between your time and the best time, in hours. tbestt_{\text{best}} is the time of the fastest pilot, in hours. The 5/6 exponent is the current FAI S7F value, and the default for both sports. A competition can select the older 2/3 exponent instead, which is the GAP2016/2018 curve.

The 2/3 curve is a little more generous. Each competition sets this exponent independently of the leading-coefficient variant. The report card names the exponent that GlideComp applied.

For paragliding, the best time is the time of the fastest pilot in goal ( §11.2.1 ). For hang gliding, GlideComp agrees with AirScore. The ESS-but-not-goal share keeps part of the time points by default. While it does, the best time is the time of the fastest pilot to reach ESS. The speed fractions of the reduced pilots then stay on the same scale. If a competition sets that share to 0%, the best time comes from the goal pilots, exactly as the specification reads.

The curve is generous. Pilots close to the fastest time get almost the full points, and the reduction increases slowly for slower times. If you finish 10 minutes after the winner, you still get a large share of the time points.

Time Points=SF×Available Time Points\text{Time Points} = \text{SF} \times \text{Available Time Points}

In a race-to-goal task with start gates, your clock runs from the start gate you took ( §8.3.1 ). That gate is the last gate at or before your start-cylinder crossing. The clock does not run from the crossing itself. For example, the gates are at 13:30 and 13:50, and you cross at 13:49. Your clock then runs from 13:30.

An elapsed-time task uses your actual crossing time. GlideComp scores both types as the specification requires. The report card shows the gate you took and your crossing time.

Leading Points

FAI S7F §11.3

Leading points, also called "departure points", reward the pilots who accept the risk of flight at the front of the gaggle. These pilots show the way to goal. Without this reward, the best strategy is to stay in a thermal and let the other pilots find the way.

The Leading Coefficient

Each pilot gets a leading coefficient (LC). The LC is a number for the time that the pilot spent close to ESS and in front of the pack. It is the area below a curve of the remaining distance to ESS against time. GlideComp measures that distance along the course, from the start gate opening.

A "ratchet" keeps your best distance: the distance counts only when it decreases, that is, when you fly toward ESS. A flight away from ESS therefore does not remove your progress. This is the same leading coefficient as CIVL GAP and AirScore.

The 2024 FAI specification defines two LC variants, one for each sport ( §11.3.1 ). Hang gliding uses the classic squared-distance area. Paragliding uses the weighted area, where the middle of the course counts for more. GlideComp gives each sport the variant from the specification. A competition can change the variant in its settings, independently of the time-points exponent, so every combination is available. The report card names the variant that GlideComp applied.

A lower LC shows that you spent more time at the front. The pilot with the lowest LC gets the maximum leading points.

How Points Are Awarded

Leading points use a curve with the same shape as time points, but with LC values in place of times:

LF=max ⁣(0,  1(LCLCminLCmin)2/3)\text{LF} = \max\!\left(0,\; 1 - \left(\dfrac{\text{LC} - \text{LC}_{\min}}{\sqrt{\text{LC}_{\min}}}\right)^{2/3} \right)

The pilot with the best LC, which is the lowest LC, gets the full leading points. Each other pilot gets less, in proportion to their own LC.

Leading points are on by default for both categories, which is the FAI formula. A competition can disable them. PG competitions give leading points more weight than HG competitions, because paragliding has no arrival points to take a share of the non-distance points.

How much weight goes to leading (paragliding)

For paragliding, each competition selects how the non-distance points of the day divide between leading and time. Hang gliding always uses the FAI HG formula. New PG competitions use S7F 2024 by default. Competitions created before 15 July 2026 use GAP2020 by default, so their published scores never change:

  • S7F 2024 ( §10 , the default for new competitions) — if one pilot or more makes goal, leading takes the task's LeadingTimeRatio of the non-distance weight. That ratio is 0% to 50%, and 26% by default. If nobody makes goal, leading takes all of the non-distance weight, because paragliders get no time points without goal. Time takes the remainder.
  • GAP2020 (older competitions) — if one pilot or more makes goal, leading takes 35% of the non-distance weight. If nobody makes goal, leading takes 0.1×BestDist/TaskDist0.1 \times \text{BestDist}/\text{TaskDist} of the total. The name of this setting is historical: the formula is the GAP2016/2018 formula (see Differences from the Official Specification).
  • S7F 2020–2022 — the PWC-derived generation between the other two, which AirScore's gap2020, gap2021 and gap2022 presets use. It fixes the complete split, which the other settings do not. The distance weight is 0.838 when nobody makes goal, and 0.8051.374GR+1.413GR20.484GR30.805 - 1.374\,\text{GR} + 1.413\,\text{GR}^2 - 0.484\,\text{GR}^3 in all other cases. The leading weight is always 0.162, and time takes the remainder, which is exactly zero when nobody makes goal. It is never a default. Select it to reproduce a competition that AirScore scored with those presets.

Arrival Points

FAI S7F §11.4

Hang gliding only. Arrival points reward the pilots for their order of arrival at ESS. The first pilot to reach ESS gets the most arrival points. Each later pilot gets less.

The order comes from the clock at ESS, not from the speed. GlideComp ranks the pilots by the wall-clock time of their crossing of the end of the speed section. A pilot on an earlier start gate can therefore arrive before a faster pilot on a later gate, and get more arrival points. This result surprises people, but it is correct. Arrival points reward arrival first, which is what makes the race at the front worth the risk. Time points already reward speed.

The first arrival gets 100% of the available arrival points. Every other pilot who reaches ESS keeps approximately 20% or more. That minimum is the constant term in the curve below. Between the two, the decrease is fast at the start. An arrival in front of half of the field is worth approximately 33% of the available points, not 50%.

In these formulas, ArrivalRatio is the fraction of the ESS field that you arrived in front of:

ArrivalRatio=1PositionAtESS1PilotsAtESS\text{ArrivalRatio} = 1 - \frac{\text{PositionAtESS} - 1}{\text{PilotsAtESS}}

ArrivalFactor=0.2+0.037r+0.13r2+0.633r3\text{ArrivalFactor} = 0.2 + 0.037\,r + 0.13\,r^2 + 0.633\,r^3

The sum of the four coefficients is exactly 1. The first arrival therefore takes the full available points. The report card of each pilot shows their position, their ESS time and the arithmetic. The ESS column of the task's scores table shows the arrival order of the whole field.

Arrival points are on by default for hang gliding. A competition can disable them in its settings. They do not apply to paragliding competitions.

Your Total Score

FAI S7F §11

Your total score for a task is the sum of your four component scores. The specification ( S7F §11 ) rounds this total to one decimal place. GlideComp subtracts the penalties before it rounds ( §12.4 ), so the rounding is always the last step:

Total=round0.1 ⁣(Distance+Time+Leading+ArrivalPenalties)\text{Total} = \text{round}_{0.1}\!\left(\text{Distance} + \text{Time} + \text{Leading} + \text{Arrival} - \text{Penalties}\right)

A pilot's score is never less than zero, whatever the size of the penalty. GlideComp ranks the pilots by this total, highest first. If two pilots have the same total, the pilot with the longer flown distance gets the higher rank. The scoreboard shows these totals as whole points, but the ranking and the tie-breaks use the one-decimal value.

Practical Example

This example is a task day with good conditions, a task validity of 0.95, and 20% of the pilots in goal. Leading points and arrival points are off. The task then has approximately 950 available points, divided approximately like this:

  • Distance: ~570 points available (60% weight)
  • Time: ~380 points available (40% weight)

A pilot who made goal with the fastest time scores 570 + 380 = 950 points. A pilot who flew 80% of the best distance and did not make goal scores approximately 456 + 0 = 456 points. In PG there are no time points without goal.

Stopped Tasks

FAI S7F §12.3

Bad weather can make the safety committee stop a task during the flight. GlideComp then scores the task as a stopped task. The organiser records the time of the stop announcement on the task. GlideComp applies the stopped-task rules of the specification automatically. The report card of each affected pilot shows how.

The task stop time ( §12.3.1 )

A pilot near a scoring milestone at the announcement must not have a reason to continue the flight in dangerous conditions. GlideComp therefore moves the announcement back to an earlier task stop time. For paragliding, the task stop time is the announcement minus the competition's score-back time. The default score-back time is 5 minutes, and the competition can change it in its scoring settings. For hang gliding, the score-back is one start-gate interval, or 15 minutes when the task has one start gate.

Can the task be scored at all? ( §12.3.2 )

A stopped task counts only if it was long enough. The minimum length is min(1 hour, half the nominal time). GlideComp measures it from the race start with one start gate, or from the last pilot's start with multiple gates or elapsed time. A task stopped before that time scores zero for every pilot, and the standings give the reason.

Stopped-task validity ( §12.3.3 )

A fourth validity factor is added to launch, distance and time. If one pilot or more reached the end of the speed section, this factor is 1, because the race had a result. If nobody reached it, the factor decreases the value of the day. The decrease depends on the spread of the field, and on how many pilots already landed at the stop.

What part of your flight counts ( §12.3.4 , §12.3.5 )

In a race with one start gate, every pilot is scored from the start to the task stop time. A turnpoint tagged after the stop time does not count, and GlideComp measures the distance only up to it. With multiple start gates, or with elapsed-time starts, every pilot is scored for the same quantity of flying time. That time is the time between the start of the last-started pilot and the stop.

A pilot who was already past the end of the speed section at the stop is scored for their complete flight. This includes goal after the stop. GlideComp then subtracts a fixed quantity from the time points of every goal pilot. That quantity is the time points of a hypothetical pilot who reaches ESS exactly at the stop. A finish just before the stop is therefore worth no more than a stop just after ESS.

The altitude bonus ( §12.3.6 )

A pilot who is still in the air at the stop, with height available, can glide further. Their distance therefore gets an altitude bonus. At each track point in the scored window, the height above goal counts as more distance, at a fixed glide ratio. The ratio is 4:1 for paragliders and 5:1 for hang gliders, on GNSS altitude.

The bonus applies to distance points only, and never gives more than the goal distance. It does not change time points or leading points. A pilot who landed before the stop gets no bonus.

The task page marks a stopped task and shows its stop time. The competition's public audit log records the stop. The report card of each pilot describes the scored window and the crossings that no longer counted. It also describes the altitude bonus and the reduction of the goal time points.

Series scoring & Fixed Total Validity

FAI S7F §13–15

The overall standings of a competition combine the task scores of each pilot. There are two methods, and each competition selects one in its scoring settings.

Sum of task scores

Your competition score is the sum of every task score. Most hang-gliding competitions and short series use this method. Pilots with the same total share a place ( S7A §5.2.5.4 permits ties).

FTV — Fixed Total Validity ( §15 )

This is the usual paragliding method, and the default for new paragliding competitions. FTV scores you on your best tasks instead of all of your tasks, so one bad day costs less. GlideComp discards a fixed fraction of the competition's total validity. The fraction is 20% for a competition with 6 tasks or fewer, and 25% for 7 tasks or more.

Each task has a validity, which is approximately its winning score divided by 1000. GlideComp puts your tasks in order, best performance first. It then adds your scores, and the validity of each task, until the kept validity reaches the fixed limit. The task that goes past the limit counts in part. GlideComp discards the tasks after it. A pilot who flew too few tasks to reach the limit keeps all of them.

On the scores page of an FTV competition, a strike-through marks the discarded tasks of each pilot. The mark "(part)" shows a task that counts in part. Open a pilot's total for the full breakdown: the tasks that counted, the tasks that GlideComp discarded, and the arithmetic.

Default Competition Settings

FAI S7F §10–11

When you create a competition, you select only hang gliding or paragliding. GlideComp then applies the official CIVL GAP defaults for that category. The defaults are the current FAI Sporting Code Section 7F values. A new competition therefore scores like a standard FAI/AirScore event with no other work. You can change any default under Advanced scoring settings in the competition's Settings dialog. You need to do this only if your event uses local rules with different values, for example Australia's SAFA.

Both categories share most of the values. The differences come from the specification, which scores hang gliding and paragliding differently. Arrival points and distance difficulty apply to hang gliding only. Paragliding has no arrival points, so its leading weight is higher.

Setting Default What it means
Nominal launch 96% Launch validity is full when more than this fraction of the pilots launch ( §9.1 ).
Nominal goal 30% The share of pilots expected to make goal on a good day. It sets the distance, time and leading weight split.
Nominal distance Auto The expected task distance for distance validity. "Auto" is 70% of the optimised distance of each task. A fixed value applies to the full competition.
Nominal time 90 min The expected winning time. A much faster winner decreases the value of the task (time validity).
Minimum distance 5 km The minimum distance for a pilot who launched, even if they land sooner ("bomb-out points").
Leading points On Rewards flight at the front of the pack. On for both categories in the FAI formula. Paragliding gives them more weight, because it has no arrival points.
Leading formula Per sport The leading-coefficient variant ( §11.3.1 ): classic (squared-distance) for hang gliding, weighted (weighted-area, GAP2020 and later) for paragliding. This is the pairing of the 2024 specification. Any competition can select either variant.
Time points exponent 5/6 The speed-fraction exponent ( §11.2 ), for both sports. It is set independently of the leading formula. "2/3" selects the older GAP2016/2018 curve, which is a little more generous.
PG leading weight S7F 2024 Paragliding only: the split of weight between leading and time. New PG competitions use S7F 2024 by default, with the LeadingTimeRatio parameter at 26%. Competitions created before 15 July 2026 use GAP2020 by default, so their scores do not change. That name is historical: it is the GAP2016/2018 weight formula. S7F 2020–2022 gives the PWC-derived weights of AirScore's gap2020, gap2021 and gap2022 presets, to reproduce a competition of that period. This setting has no effect on hang gliding.
Distance origin Take-off GlideComp measures the scored distance from the take-off point, through the start (FAI CIVL GAP / PWCA). "Start cylinder" removes the take-off→start leg (HGFA/SAFA).

Hang gliding (HG)

  • Arrival points: on — HG scores order of arrival at ESS ( §11.4 ).
  • Distance difficulty: on — HG distance points are half linear, half difficulty ( §11.1.1 ).
  • Leading coefficient: classic (squared-distance), with the 5/6 time-points exponent. This is the hang-gliding pairing of the 2024 specification ( §11.2 , §11.3.1 ).
  • Jump-the-gun (early start, §12.2 ): 1 penalty point for each 2 s before the gate, up to 300 s. A pilot who starts earlier than 300 s gets the minimum distance only.
  • ESS but not goal ( §12.1 ): the pilot keeps 80% of their time and arrival points. This is the recommended default of the specification, and local regulations can change it.

Paragliding (PG)

  • Arrival points: off — the specification gives paragliding no arrival points.
  • Distance difficulty: off — paragliding distance is always the linear proportion.
  • Leading coefficient: weighted (weighted-area), with the 5/6 time-points exponent. This is the paragliding pairing of the 2024 specification ( §11.2 , §11.3.1 ).
  • GlideComp scores an early start as launch→start. There is no jump-the-gun penalty, which is for HG only.
  • ESS but not goal ( §12.1 ): 0%. Without goal there are no time points. The specification fixes this value for paragliding, to remove the reason for a fast final glide close to the ground.

GlideComp Implementation Notes

GlideComp implements the core GAP formulas of the 2024 edition of the CIVL Sporting Code Section 7F. We compare its results against real competition scores that AirScore published. The validity polynomials, the weight distributions and the point formulas obey the official specification. GlideComp does not implement every feature of the full specification. In a small number of places, its behaviour is different on purpose, or different for now. The next section lists all of these differences.

The tables below group the features by the FAI competition category. Section 7F is written for Category 1 events, which are the FAI World and Continental championships. Organisers of Category 2 events and non-sanctioned events can score as they want ( S7F §1.1 ), and most local and club competitions are in that group. GlideComp has everything that a Category 2 or local competition needs. The only missing parts are championship sub-rankings for Category 1.

All competition categories

Feature Status
Task validity (launch, distance, time) Implemented
Distance, time, leading, arrival points Implemented
Weight distribution Implemented
PG and HG scoring differences Implemented
Leading coefficient (ratchet mechanism) Implemented
Minimum distance floor Implemented
Penalties — absolute points ( S7F §12.4 ) Implemented. The scorekeeper enters them, and the audit log records them.
Penalties — percentage ( §12.4 ) Not implemented
Early starts & jump-the-gun ( §12.2 ) Implemented. PG is scored launch→start. HG gets 1 point for each X s early, to a maximum of Y s. X and Y are configurable, with defaults 2 and 300.
ESS but not goal ( §12.1 ) Implemented. PG keeps 0% of the time points. HG keeps 80% of the time and arrival points, and this share is configurable.
Start gates / race start times ( §6.3.3 , §8.3.1 ) Implemented. The start moves to the last gate at or before the crossing. The LC clock runs from the first gate ( §11.3.1 ).
Goal lines ( §6.2.3 , §8.5.2 ) Implemented. The line is perpendicular to the final leg, with the control semi-circle behind it.
Line-type control zones at intermediate turnpoints ( §8.4 ) Not implemented. Every turnpoint before goal is a cylinder.
Task deadline enforcement ( §8.3 , §11.1 ) Implemented. A crossing after the goal deadline does not count. GlideComp measures the distance of a landed-out pilot up to the deadline.
Launch window ( §8.6.1 ) Partially implemented. A start crossing before the window opens cannot validate a start. See below.
Stopped tasks (weather calldowns, §12.3 ) Implemented: scored-back stop time, minimum-run check, stopped validity, scored time window, and altitude bonus. See Stopped Tasks.
Multi-task series scoring Implemented. A competition total is the sum of the task scores of each pilot, ranked for each class, with top-3-per-task and team standings. See the competition scores pages.
FTV (fixed total validity) for series Implemented as an optional series-scoring method, and the default for new paragliding competitions. It discards a fixed fraction of the total validity: 20% for 6 tasks or fewer, and 25% for 7 or more. It then scores each pilot on their best tasks. See Fixed Total Validity.

FAI Category 1 (World & Continental championships) only

These sub-rankings occur only at FAI Category 1 championships. Those events have national team entries and a separate women's category. GlideComp does not implement them, on purpose. Category 2 and local competitions do not use them, and the definitions are in Sporting Code Section 7A §5.2.4–5.2.5. They also change no scores, because each one is a filtered list of the same task scores.

Feature Status
Female sub-ranking (S7A §5.2.4.2, §5.2.5.2) Not implemented, on purpose. It lists the female pilots again, with the scores from the overall ranking. It needs pilot gender data that GlideComp does not collect.
Nation sub-ranking / national teams (S7A §5.2.4.3, §5.2.5.3) Not implemented, on purpose. It ranks the nations by the sum of their best three pilots, or two pilots at the Women's Worlds. It needs national-team entries. It is not the same as GlideComp's team standings, which any competition can use.

A new competition uses the official CIVL GAP settings for its category by default. Leading points are on for both categories. Arrival points and distance difficulty are on for hang gliding. The scores therefore agree with a standard FAI/AirScore event. See Default Competition Settings for the full list. You can change any setting under the competition's Advanced scoring settings.

The source code of the scoring engine is open, and it is on GitHub .

Differences from the Official Specification

We compared the GlideComp scoring engine line by line against the FAI Sporting Code Section 7F (2024 edition). We also compared it against the source code of AirScore, the CIVL-approved scoring software. The last comparison was in July 2026. The table shows how the three compare on each part of the formula. The notes below the table explain the important differences in more detail. A section number (§) refers to the 2024 edition, and links to the correct page of the official PDF .

The AirScore column describes its current GAP presets, which are GAP2023 unless the text names another generation. AirScore also has older preset generations, which behave differently where the table says so.

Feature FAI S7F (2024) GlideComp AirScore
Task validity ( §9 ) Launch, distance and time validity from the cubic polynomials of the specification. As the specification. As the specification in the GAP2020 and later presets. The old GAP2016/2018 library takes the launch-validity ratio from a DNF-count threshold. It also uses 0.028 as the first coefficient, where the specification uses 0.027.
Weight split — hang gliding ( §10 ) DistW = 0.9 − 1.665·GR + 1.713·GR² − 0.587·GR³. Arrival is (1−DistW)/8. Leading is 1.4·(1−DistW)/8. As the specification. As the specification, and identical in every generation.
Weight split — paragliding ( §10 ) Leading takes LeadingTimeRatio (default 26%) of the non-distance weight. It takes all of the non-distance weight when nobody makes goal. The "S7F 2024" setting is the specification. The "GAP2020" setting is in fact the GAP2016/2018 formula: 0.35·(1−DistW), or 0.1·BestDist/TaskDist when nobody makes goal. The "S7F 2020–2022" setting implements the PWC-derived generation, and agrees with AirScore's gap2020, gap2021 and gap2022 presets. The gap2023 preset is the specification. The gap2020, gap2021 and gap2022 presets use the S7F 2020–2022 weights. Those weights are PWC-derived: distance 0.838 at 0% goal, and 0.805 − 1.374·GR + 1.413·GR² − 0.484·GR³ in all other cases, with leading fixed at 0.162.
Time-points curve ( §11.2 ) SF = 1 − (Δt/√tbest)5/6, both sports. 5/6 by default. Each competition can select 2/3. 5/6 in GAP2020 and later. 2/3 in GAP2016/2018.
"Best time" ( §11.2.1 ) The fastest pilot who also reached goal. The fastest pilot to ESS while the ESS-but-not-goal share is more than 0, which is the HG default. Goal validates the best time when the share is 0, which is always true for PG. The same rule (GAP2020 and later, pilot_speed). GlideComp follows AirScore here.
ESS but not goal ( §12.1 ) PG keeps 0% of the time points, and HG keeps 80% by default. The §12.1 formula keeps the arrival points in full. Reduces time and arrival points by the factor. Reduces time and arrival points by the factor, the same as GlideComp.
Leading coefficient ( §11.3.1 ) HG: classic squared-distance area. PG: weighted area. Clock from the first start gate. Both variants, with the specification default for each sport. A competition can select either one. There is no "integrated" variant. Classic, weighted, and the PWC 2023 "integrated" variant.
Leading-points curve ( §11.3 ) LF = 1 − ((LC − LCmin)/√LCmin)2/3. As the specification. As the specification.
Arrival points ( §11.4 ) Position-based only (HG). Position-based only. Position-based by default. There is also an old OzGAP time-of-arrival option, at double weight.
HG distance difficulty ( §11.1.1 ) 100 m slots. Look-ahead max(30, 30·BestDist/PilotsLandedOut). Cumulative relative difficulty. As the specification, and it reproduces AirScore's sub-slot interpolation. As the specification.
Stopped task: score-back ( §12.3.1 ) PG: announcement − score-back time (default 5 min). HG: one start-gate interval, or 15 min with one gate. As the specification. A score-back time for each competition only, with defaults of 5 min for PG and 15 min for HG. There is no gate-interval rule.
Stopped task: time-points reduction ( §12.3.5 ) A fixed quantity is subtracted from the time points of each goal pilot. As the specification, for goal pilots only. It subtracts the quantity from the time points of every ESS pilot, and adds the quantity to the available distance points.
Stopped task: altitude bonus ( §12.3.6 ) Glide ratio 4 (PG) and 5 (HG). GNSS altitude is the default of the specification. 4 and 5, on GNSS altitude. 4 and 5, configurable. GPS altitude for PG, but barometric (QNH) altitude for HG by default.
Cylinder tolerance ( §8.1 ) 0.1% for Cat 1. Up to 0.5% for Cat 2. Minimum 5 m. 0.5% + 5 m for every competition by default, and configurable for each task. 0.1% + 5 m by default in GAP2020 and later. 0.5% in GAP2016/2018.
Jump the gun ( §12.2 ) HG only: 1 point for each X s early (default 2 s), to a maximum of Y s (default 300 s). PG is scored launch→SSS. As the specification, with X and Y configurable. As the specification, written as 0.5 pt/s.
Penalties ( §12.4 ) Order: jump-the-gun, then percentage, then absolute. Minimum 0. Jump-the-gun and absolute penalties. No percentage penalties. All three, and negative (bonus) penalties.
Score rounding ( §11 ) Total = component sum rounded once to one decimal, after penalties. As the specification. Ranking and tie-breaks use the rounded value. Full precision internally. It rounds for display only: task results to 1 decimal in GAP2020 and later, and competition totals to whole points.
Distance computation ( §4.2 ) WGS84 ellipsoid. WGS84 Andoyer-Lambert (+ Vincenty destination). WGS84 Karney geodesics (geographiclib). The routes differ by metres, which gives small differences in the absolute points.
Series scoring / FTV Task ranking and competition totals, optionally FTV (§13–15). Competition totals by sum of task scores or FTV (S7F §15), ranked for each class (S7A ties), with top-3-per-task and teams. FTV is the default for new PG competitions. Implemented. FTV is the PG preset default, with factor 0.75.

The previous section lists the features that GlideComp does not implement. These are the other places where the behaviour of GlideComp differs from the words of the specification:

Start gates: placeholder midnight gates are ignored ( §6.3.3 )

GlideComp scores race-to-goal start gates as the specification requires. The start time of each pilot is the last gate at or before their start-cylinder crossing ( §8.3.1 ). A crossing before the first gate cannot validate a start ( §8.3 ). Early starts obey the §12.2 rules: paragliders are scored launch→start, and hang gliders get the jump-the-gun penalty. The leading-coefficient clock runs from the first gate ( §11.3.1 ).

There is one practical difference. If the only gate of a race task is exactly 00:00:00 UTC, GlideComp treats the task as a task with no gates. It then times the task as elapsed time. Some tools write this single midnight gate to satisfy the non-empty-gates rule of the file format. A real gate at midnight UTC does not occur in practice.

Hang gliding "best time" follows AirScore, not the letter of §11.2.1 ( §11.2 , §12.1 )

GlideComp implements the ESS-but-not-goal rule as §12.1 requires. Paragliders lose all of their time points without goal. Hang glider pilots keep 80% of their time and arrival points by default, and each competition can change that share.

§11.2.1 defines the "best time" as the time of the fastest pilot who also reached goal. GlideComp follows the AirScore implementation instead. The ESS-but-not-goal share keeps part of the time points by default in HG. While it does, the best time is the time of the fastest pilot to reach ESS, with or without goal. The speed fractions of the reduced pilots are then on the same scale as the speed fractions of the other pilots. When the share is 0%, which is always true for paragliding, goal validates the best time exactly as the specification reads.

The paragliding leading weight: three generations, one historical name ( §10 )

The 2024 specification takes the PG leading weight from a LeadingTimeRatio parameter for each task. The default is 26% of the non-distance weight, and 100% of it when nobody makes goal. Paragliding competitions created on or after 15 July 2026 use this S7F 2024 formula by default.

Competitions created before that date keep the earlier GlideComp formula, which is the setting named GAP2020. Their published scores therefore never change. That formula gives leading 35% of the non-distance weight when one pilot or more makes goal, and 0.1×BestDist/TaskDist0.1 \times \text{BestDist}/\text{TaskDist} when nobody does. The official documents and the AirScore source show that the name is historical and not accurate. The 35% and 0.1×BestDist rule is the GAP2016/2018 formula, from CIVL GAP 2018 §10 and the old GAP library of AirScore.

The real S7F 2020–2022 generation used different PG weights, derived from the PWC. AirScore's gap2020, gap2021 and gap2022 presets implement them: distance weight 0.838 with nobody in goal, 0.8051.374GR+1.413GR20.484GR30.805 - 1.374\,\text{GR} + 1.413\,\text{GR}^2 - 0.484\,\text{GR}^3 in all other cases, and a fixed leading weight of 0.162. GlideComp has them as the S7F 2020–2022 setting, to reproduce a competition that AirScore scored with those presets. It is never a default.

A competition selects one of the three formulas, and its LeadingTimeRatio, under Paragliding leading weight in the scoring settings. The hang-gliding weights are identical in every generation, and this setting does not change them.

Line control zones are only supported at goal ( §8.4 )

GlideComp scores a goal line as the specification defines it. The line goes through the goal waypoint, perpendicular to the final leg, with the semi-circular control zone behind it. Goal is the only place where GlideComp understands a line. The specification also allows a line at an intermediate turnpoint. Such a line is valid when two consecutive fixes are on opposite sides of it. A flight around its end must also need an impossible speed of more than 120 km/h. GlideComp treats every turnpoint before goal as a cylinder. Line-type turnpoints are rare in XCTrack task files, so this affects few tasks.

Launch window: only provable violations are enforced ( §8.6.1 )

The specification counts the turnpoints of a pilot only if that pilot launched inside the launch time window. GlideComp applies the half of this rule that a tracklog can prove. A start-cylinder crossing before the window opens (takeoff.timeOpen in the task file) shows that the pilot was in the air before launch was permitted. Such a crossing cannot validate a start, and the report card gives the reason.

A tracklog alone cannot prove when the pilot launched. GlideComp does not detect a pilot who launched before the window and started the course after the window opened. It also does not detect a pilot who launched after the window closed. Launch-time detection is not part of scoring, so the scorekeeper decides these cases and can add a penalty manually.

Smaller details

  • Cylinder tolerance default ( §8.1 ): GlideComp applies the full tolerance band of the specification: a percentage plus an absolute minimum of 5 m. The band extends outward for a cylinder that you enter, and inward for the start that you exit. The default percentage is 0.5%, which is the Cat 2 maximum. GlideComp uses it for every competition, and does not select 0.1% automatically for a Cat 1 event. The percentage is configurable for each task. A goal line has no tolerance band, because GlideComp scores it as exact geometry.
  • Mis-set task deadlines are ignored ( §8.3 ): GlideComp applies the goal deadline as the specification requires. A crossing after the deadline does not count, and the distance of a landed-out pilot is measured only up to it ( §11.1 ). There is one guard. A deadline at or before the first start gate is a task-setting mistake that gives every pilot zero. A launch-window open time at or after the deadline is the same kind of mistake. GlideComp therefore treats such a deadline as unset, like the fallbacks for a missing SSS or ESS. If the deadline changed a pilot's score, the report card shows the cutoff time and each ignored crossing.
  • Rounding ( §11 , §12.4 ): GlideComp rounds the total of each pilot to one decimal place, after it subtracts the penalties, exactly as the 2024 specification requires. It also keeps the component points to 0.1. The scoreboard shows the totals as whole points, but the ranking and the tie-breaks use the one-decimal value.
  • ESS-but-not-goal reduces arrival points too ( §12.1 ): the §12.1 formula reduces only the time points of a hang glider pilot, and keeps the arrival points in full. AirScore applies the factor to the arrival points as well, and GlideComp agrees with AirScore. An ESS-but-not-goal pilot therefore keeps 80% of both by default.
  • Optional leading and arrival points: the specification always gives a leading weight, and an arrival weight in hang gliding classes 1 and 5. GlideComp uses the FAI formula by default: leading on for both categories, and arrival on for hang gliding. A competition can disable either one, which is common in club-level scoring. A competition that disables one departs from the specification.
  • Distance origin: the optional "start cylinder" distance origin departs from the launch-to-goal task distance of the specification ( §6.4.2 ), on purpose. It agrees with the words of some national rules, for example HGFA/SAFA. The default "take-off" setting obeys the specification.
  • Distance precision: GlideComp computes the distances on the WGS84 ellipsoid, as the specification requires ( §4.2 ). The optimised route is not bit-identical to the route of another tool such as AirScore. The points of a landed-out pilot can therefore differ by a small quantity. This changes the absolute values more than the relative ranking.

If one of these differences is important for your competition, open an issue on GitHub . Do the same if you find a difference that this page does not list. Scoring transparency is the purpose of this project.

Official References