Skip to main content
Loss of provenance

A previous release had provenance metadata, but this release does not. View details.

balloon-ranking-glicko

A Glicko-2 based rating engine for competitive hot-air balloon pilots.

This is the public, open-source rating math behind the Global Balloon Pilot Ranking System. It is a pure-Python package with zero runtime dependencies. Given a chronological history of competition events, it produces a Glicko-2 rating, rating deviation (RD), and volatility for every pilot, plus derived values (Strength of Field, tier assignments).

Design

  • Algorithm: Glicko-2, implemented directly from Mark Glickman's specification.
  • Input signal: task finishing position, not raw points. Position is the cleaner signal of "did this pilot beat that pilot in this task".
  • Rating period: one per event. All pairwise outcomes from all of an event's tasks are pooled into a single Glicko-2 update per pilot.
  • No-result handling: no-result pilots are tied for last within the no-result group. This matches FAI scoring conventions.
  • Pure functions, zero I/O: no database, no network, no file I/O. The caller supplies events and prior ratings; the engine returns new ratings.

The engine has no opinions about storage or identity. The caller supplies events plus the rating state entering each event; the engine returns the state coming out.

Install

pip install balloon-ranking-glicko

Quick start

from datetime import date
from balloon_ranking_glicko import Event, Task, TaskResult, RatingEngine

event = Event(
    event_id="example-2026",
    event_date=date(2026, 6, 1),
    tasks=(
        Task(
            task_id="t1",
            results=(
                TaskResult(pilot_id="alice", position=1),
                TaskResult(pilot_id="bob", position=2),
                TaskResult(pilot_id="carol", position=3),
            ),
        ),
    ),
)

engine = RatingEngine()
ratings = engine.process_history([event])
for pid, r in sorted(ratings.items(), key=lambda kv: -kv[1].rating):
    print(f"{pid}: {r.rating:.1f} (RD {r.rd:.1f})")

Public API

  • Event, Task, TaskResult, PilotRating — frozen dataclasses
  • RatingEngine(tau, initial_rating, initial_rd, initial_volatility)
    • process_event(event, prior_ratings) -> dict[str, PilotRating]
    • process_history(events) -> dict[str, PilotRating]
    • process_history_with_snapshots(events) -> Iterator[(Event, dict[str, PilotRating])]
  • compute_sof(event, ratings) -> float
  • assign_tiers(ratings, cutoffs=None) -> dict[str, str]

Development

pip install -e ".[dev]"
pytest
mypy

The Glicko-2 implementation is validated against the worked example from Glickman's paper (final rating 1464.06, RD 151.52, volatility 0.05999).

License

MIT

Metadata

Release files for balloon-ranking-glicko 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Loss of provenance

These files do not have provenance metadata, despite files in a prior release including this data.

We recommend further investigation before installing these files. View details.

Source distribution (sdist)

Source distribution for balloon-ranking-glicko 0.1.1
File Size Uploaded Provenance Actions
balloon_ranking_glicko-0.1.1.tar.gz 14.2 kB Without provenance Details for balloon_ranking_glicko-0.1.1.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for balloon-ranking-glicko 0.1.1
File Interpreter ABI Platform Actions
balloon_ranking_glicko-0.1.1-py3-none-any.whl Python 3 none any Details for balloon_ranking_glicko-0.1.1-py3-none-any.whl

Total release size: 26.9 kB

Release files / balloon_ranking_glicko-0.1.1.tar.gz

Loss of provenance

This file belongs to a release without provenance metadata, despite a prior release including this data.

We recommend further investigation before installing this file. View details.

Download URL balloon_ranking_glicko-0.1.1.tar.gz
Size 14.2 kB
Tags Source
SHA-256 checksum
How to use checksums
eed9052f93a9c43713754855009503bb80a3dfbecc14791711cf6cef423e9d39
BLAKE2b-256 checksum
How to use checksums
b3f00a9095e95c8bb42545906f3f59423e90f8785cf3ee9fabab2e7838fcb82a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.0

Release files / balloon_ranking_glicko-0.1.1-py3-none-any.whl

Loss of provenance

This file belongs to a release without provenance metadata, despite a prior release including this data.

We recommend further investigation before installing this file. View details.

Download URL balloon_ranking_glicko-0.1.1-py3-none-any.whl
Size 12.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
67df33020d022e6da16543baaaf0fcb5e5d0cee98802200bd59aaaffecedde66
BLAKE2b-256 checksum
How to use checksums
142d3e144435c715e59424da4bca41d37bde48335956e01d5b231cd00af65971
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.0

Security for balloon-ranking-glicko 0.1.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Loss of provenance

A previous release of these files had provenance metadata, but this release does not.

While this could reflect a routine change by the project maintainers, it may also indicate that the release files have been compromised.

Release comparison

  • Removed 0.1.0 2 files With provenance
  • Added 0.1.1 2 files Without provenance

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files Loss of provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page