How GAP Scoring Works
A guide to competition scoring for paragliding and hang gliding pilots
What is GAP?
FAI S7F §2Most 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 §6This 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 §9Not 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 competition total. 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:
And the total available points for the task are:
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 §11GAP 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.
There is one exception. In hang gliding, if nobody reaches the end of the speed section, the task has no time points and no arrival points at all. Distance and leading keep their usual share, and the rest of the day is not shared out to the other components: it is simply not awarded. A pilot's score does not change, because neither component can be earned without an end-of-speed-section crossing, but the scoreboard and the report card then show what could really be won. The report card says so in the day-quality section, and again beside the time and arrival components.
That puts a ceiling on such a day. Nobody in goal means a distance weight of 0.9 and a leading weight of 0.0175, so a perfect day offers at most 900 points for distance and 18 for leading — 918 in total. It is also the most an open-distance task can be worth.
Distance Points
FAI S7F §12.1Every 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:
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 §12.1.1 ):
- 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 differ by the distance from the route's first point to the start cylinder's edge. For a task with a take-off turnpoint, that is the take-off→start leg. For a task that starts at the SSS, the FAI rule still measures from the start cylinder's centre, so the two settings differ by the start radius. The setting does not change the speed section (SSS→ESS), and therefore does not change time points or leading points.
Time Points
FAI S7F §12.2Time 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:
In this formula, is the difference between your time and the best time, in hours. 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 ( §9.4.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.
In a race-to-goal task with start gates, your clock runs from the start gate you took ( §9.2.4.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 §12.3Leading 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 2026 FAI specification defines two LC variants, one for each sport ( §12.3.1 ). Hang gliding uses the classic squared-distance area. Paragliding uses the weighted area, where the middle of the course counts for more — computed as the specification's exact weight-envelope integral since the 2025 edition. GlideComp gives each sport the variant from the specification; it is not a setting. 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.
Pilots who land out
A pilot who lands before ESS has no more track to measure, but the curve must still cover the rest of the day. GlideComp holds that pilot at the best distance they reached, and carries the curve on to maxTime ( §12.3.1 ):
That is the later of two times — when the last pilot landed out, and when the last pilot reached ESS — but never later than the task deadline. A stopped task ends the curve at the task stop time, because nothing after the stop is scored.
maxTime is one time for the whole class, not for each pilot. A pilot who stays up long after the winner is home therefore adds a little to the leading coefficient of every pilot who landed out. Your report card gives the maxTime that your own curve used, and which of these times set it.
How Points Are Awarded
Leading points use a curve with the same shape as time points, but with LC values in place of times:
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
The 2026 specification has one formula for both sports ( §11 ): leading takes the task's Leading Time Ratio of the non-distance weight. The ratio can be set between 0% and 26% for each task. The default is 26% for paragliding and 17.5% for hang gliding.
Paragliding has one extra rule: if nobody makes goal, leading takes all of the non-distance weight, because paragliders get no time points without goal. Hang gliding has no such case: on a day when nobody makes goal the distance weight is 0.9, so leading at the default ratio takes 0.0175 — the 18 points of the 918-point ceiling above.
Earlier editions let paragliding competitions choose between three leading-weight generations. GlideComp scores every task — including historical competitions — under the 2026 formula, and each scores page names the edition it was scored with (see Differences from the Official Specification).
Arrival Points
FAI S7F §12.4Hang 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:
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 §12Your total score for a task is the sum of your four component scores. The specification ( S7F §12 ) rounds this total to one decimal place. GlideComp subtracts the penalties before it rounds ( §13.5 ), so the rounding is always the last step:
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 §13.4Bad 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 scores 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–15A competition's overall scores combine each pilot's task scores. 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 ( §16 )
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 §11–11When 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 ( §10.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 time ratio | 26% / 17.5% | The share of the non-distance weight that goes to leading points ( §11 ), settable from 0% to 26% for each task. The defaults are the specification's: 26% for paragliding, 17.5% for hang gliding. The leading-coefficient variant and the 5/6 time-points exponent are fixed per sport by the 2026 specification and are not settings. |
| 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 ( §12.4 ).
- Distance difficulty: on — HG distance points are half linear, half difficulty ( §12.1.1 ).
- Leading coefficient: classic (squared-distance), with the 5/6 time-points exponent — the hang-gliding formulas of the 2026 specification ( §12.2 , §12.3.1 ).
- Jump-the-gun (early start, §13.3 ): 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 ( §13.2 ): 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 — the paragliding formulas of the 2026 specification ( §12.2 , §12.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 ( §13.2 ): 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 2026 edition of the CIVL Sporting Code Section 7F — and scores every task with them, including historical competitions flown under earlier rules; those pages carry a notice that their scores are indicative. 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 §13.5 ) | Implemented. The scorekeeper enters them, and the audit log records them. |
| Penalties — percentage ( §13.5 ) | Not implemented. Tracked in issue #265 — add your voice there if you need it. |
| Early starts & jump-the-gun ( §13.3 ) | 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 ( §13.2 ) | 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 , §9.2.4.1 ) | Implemented. The start moves to the last gate at or before the crossing. The LC clock runs from the first gate ( §12.3.1 ). |
| Goal lines ( §6.2.3.1 , §9.2.3 ) | Implemented. The line is perpendicular to the final leg, with the control semi-circle behind it. It must be crossed in the direction of the last leg. |
| Line tolerance ( §9.1.2 ) | Implemented for the goal line. It gets the same percentage as a cylinder, and the same 5 m minimum, so a crossing just past the end of the line still counts. |
| Line-type control zones at intermediate turnpoints ( §6.2.2 , §9.2.2 ) | Not implemented. Every turnpoint before goal is a cylinder. A task file cannot describe a line anywhere but goal, so no task can ask for one. Tracked in issue #359. |
| Open distance task type | Removed from GAP by the 2025 edition — the specification now covers Race and Time Trial tasks only. GlideComp's open-distance format is the classic free-flight format, a separate, non-GAP scoring format. |
| Task deadline enforcement ( §9.2 , §12.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 ( §9.3 ) | Partially implemented. A start crossing before the window opens cannot validate a start. See below. |
| Stopped tasks (weather calldowns, §13.4 ) | 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 scores. 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 scores, 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 . Every change to how a flight is scored is recorded in the scoring changelog , which says what moved and who it affects. A change re-scores every competition, including one that has already finished.
Differences from the Official Specification
We compared the GlideComp scoring engine line by line against the FAI Sporting Code Section 7F (2026 edition). We also compared it against the source code of AirScore, the CIVL-approved scoring software. The last comparison was in August 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 2026 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 (2026) | GlideComp | AirScore |
|---|---|---|---|
| Task validity ( §10 ) | Launch, distance and time validity from the cubic polynomials of the specification. | As the specification. | As the specification in the GAP2020 and later presets, except that the pre-2025 editions printed 0.027 as the launch-validity linear coefficient. The 2025 edition corrected that decade-old typo to 0.028, which AirScore's library always used — so the three now agree. |
| Weight split — hang gliding ( §11 ) | 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 ( §11 ) | Leading takes LeadingTimeRatio (default 26%) of the non-distance weight. It takes all of the non-distance weight when nobody makes goal. | As the specification, for every task. The pre-2026 leading-weight generations (GAP2016/2018, the PWC weights of 2020–2022) are no longer implemented; historical competitions are rescored under the 2026 formula and their pages say so. | 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 ( §12.2 ) | SF = 1 − (Δt/√tbest)5/6, both sports. | 5/6 for every task. The older 2/3 curve is no longer implemented. | 5/6 in GAP2020 and later. 2/3 in GAP2016/2018. |
| "Best time" ( §9.4.1 ) | HG: the fastest pilot to ESS. PG: the fastest pilot who also reached goal. | As the specification — fixed per sport since the 2026 edition. | The same rule (GAP2020 and later, pilot_speed). GlideComp follows AirScore here. |
| ESS but not goal ( §13.2 ) | PG keeps 0% of the time points, and HG keeps 80% by default. The §13.2 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 ( §12.3.1 ) | HG: classic squared-distance area. PG: weighted area. Clock from the first start gate. | Both variants, fixed per sport as the specification pins them. There is no "integrated" variant. | Classic, weighted, and the PWC 2023 "integrated" variant. |
| Leading-points curve ( §12.3 ) | LF = 1 − ((LC − LCmin)/√LCmin)2/3. | As the specification. | As the specification. |
| Arrival points ( §12.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 ( §12.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 ( §13.4.1 ) | Fixed values: announcement − 15 min (HG), − 5 min (PG). | As the specification. | A score-back time for each competition, with defaults of 5 min for PG and 15 min for HG — the same values the 2026 edition fixed. |
| Stopped task: time-points reduction ( §13.4.5 ) | Every pilot is scored only to the stop. The reduction is the time points the best pilot between ESS and goal would have received; it is subtracted from each goal pilot and added to the available distance points. | As the specification. | 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 ( §13.4.6 ) | Glide ratio 5 (HG) and 2.5 (PG), computed at the pilot's position at the stop time. GNSS altitude. | As the specification: 5 and 2.5, at the stop position, on GNSS altitude. | 4 (PG) and 5 (HG) by default, configurable, over every track point. GPS altitude for PG, but barometric (QNH) altitude for HG by default. |
| Cylinder tolerance ( §9.1.1 ) | Fixed: 0% relative + 5 m absolute, for every competition. | As the specification. A tolerance declared in a task file is ignored — every task is evaluated at the fixed band. | 0.1% + 5 m by default in GAP2020 and later. 0.5% in GAP2016/2018. |
| Jump the gun ( §13.3 ) | 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 ( §13.5 ) | Order: jump-the-gun, then percentage, then absolute. Minimum 0. | Jump-the-gun and absolute penalties. No percentage penalties (issue #265). | All three, and negative (bonus) penalties. |
| Score rounding ( §12 ) | 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 Vincenty inverse and direct — one of the three algorithms §7.1.4 sanctions. Route optimisation is the §7.1.3 PathFinder algorithm over the §7.1.2 local projection, with the path corrected back onto the control-zone boundaries ( §7.1.7 ). | 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 §16), 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 ( §9.2.4.1 ). A crossing before the first gate cannot validate a start ( §9.2 ). 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 ( §12.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 §9.4.1 ( §12.2 , §13.2 )
GlideComp implements the ESS-but-not-goal rule as §13.2 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.
§9.4.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.
One leading-weight formula, for every competition ( §11 )
The 2026 specification takes the leading weight from a Leading Time Ratio parameter for each task, in both sports. GlideComp applies this formula to every competition, including historical ones that were originally published under an earlier generation. Those pages carry a notice that their scores are indicative, and this is the one place a GlideComp score can differ from an old published score by design rather than by defect.
A competition sets its Leading Time Ratio (0% to 26%) in the scoring settings; the defaults are the specification's own — 26% for paragliding and 17.5% for hang gliding.
Line control zones are only supported at goal ( §6.2.2 , §9.2.2 )
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. It carries the goal-line tolerance of §9.1.3 , and it must be crossed in the direction of the last leg. Goal is the only place where GlideComp understands a line. The specification also allows a line at an intermediate turnpoint, but the .xctsk task format cannot describe one, so no task can ask for it and GlideComp treats every turnpoint before goal as a cylinder. Tracked in issue #359 — add your thoughts there if this matters for your competition.
"Open distance" means the classic format, not a GAP task type
GlideComp's open-distance competitions score the classic free-flight format. There is one take-off point, pilots fly as far as they can, and the score is the straight-line distance from the take-off cylinder edge. Earlier editions of the specification also defined an open distance task inside GAP; the 2025 edition removed it, and the 2026 specification covers Race and Time Trial tasks only. A GlideComp task with control zones always scores as a Race.
Launch window: only provable violations are enforced ( §9.3 )
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 and line tolerance ( §9.1.1 , §9.1.2 ): 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 gets the same percentage over its length, with the same 5 m minimum, so a crossing that lands just past the end of the line still counts — and the report card says when the band is the reason. The control semi-circle behind the line gets the cylinder calculation, as §9.2.3 requires.
- The two-fix rule is not a second way to reach a goal line ( §9.2.2 ): §9.2.2 also validates a line from two consecutive fixes on opposite sides of it, if the speed needed to fly around the end of the line is more than 120 km/h. GlideComp does not use this as an extra way to reach goal. A pilot whose straight path between two fixes passes outside the end of the line went around it at their own speed, so the test says nothing about them: on its own it would give goal to a pilot who crossed the line's extension a kilometre past the end. The case the test is for — a crossing so close to the end that measurement could put it on either side — is what the line tolerance above covers. A goal line is reached by crossing it ( §9.2.3 ), or by a fix in the control zone behind it.
- Mis-set task deadlines are ignored ( §9.2 ): 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 ( §12.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 ( §12 , §13.5 ): GlideComp rounds the total of each pilot to one decimal place, after it subtracts the penalties, exactly as the 2026 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 ( §13.2 ): 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.
- Hang gliding goal lines use the paragliding semi-circle rule ( §9.2.3 ): the rule that entering the control semi-circle behind the goal line counts as a crossing is a paragliding-only rule in the specification. For hang gliding, only a crossing of the line itself counts. GlideComp applies the paragliding rule to both sports. The direction of a crossing is checked for both sports: a pilot who crosses the line the wrong way does not reach goal. The effect of the deviation is very small, because a pilot who gets behind the line has almost always entered the semi-circle. Tracked in issue #359.
- Leading coefficient: track points after the deadline ( §12.3.1 ): the specification counts a track point recorded after the task deadline at the deadline time. GlideComp counts it at its own time, which makes the leading coefficient of a pilot who kept going a little worse than the specification gives. It applies only to a pilot who was still flying toward ESS after the deadline, and who therefore earned no more distance for it. The end of the curve itself follows the specification.
- Times carry fractions of a second ( §9.4 ): the specification's smallest unit of time is one second. GlideComp interpolates each crossing between the two nearest fixes, so a speed-section time can carry a fraction of a second. That is more precise, but time points can differ by a fraction of a point from a scorer that works in whole seconds. Tracked in issue #586.
- Single start gate: which start crossing counts ( §9.2 ): with a single gate, the specification takes the first crossing after the gate. GlideComp tries every crossing and keeps the best flight, for every task type. The start time snaps to the gate either way, so time points never differ. For a pilot who crossed, returned, and crossed again, the reported crossing and the leading points can differ. Tracked in issue #587.
- 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 ( §7.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 route optimiser is the specification's own algorithm set ( §7.1 ): the local projection, the PathFinder crossing and reflection constructions with the 0.1 m threshold, and the projection correction back onto the control-zone boundaries. One internal difference remains: the reflection case is solved with a numeric search instead of the closed form of the referenced paper — the same point, found a different way. The optimised route is therefore 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
-
CIVL Sporting Code Section 7F — XC Scoring (2026 Edition)
The definitive specification. It contains all of the formulas, coefficients and rules, and this includes penalties, stopped tasks and series scoring. -
FAI/CIVL — International Hang Gliding and Paragliding Commission
The governing body that maintains the GAP scoring rules and organises World and Continental championships. -
FAI Sporting Code
The full collection of FAI sporting codes for all air sports. Section 7 is for hang gliding and paragliding.