Skip to main content
Petanque Life
← Back to all features
04

Competition Management

342 features · 23 subsystems

End-to-end management of all petanque competitions: from calendar planning to results and rankings. Covers all formats (singles, doubles, triples), all levels (club to world championships), and all disciplines (petanque, jeu provencal, sport-boules).

Competition Calendar

F04.01
Planned
How it works
  • F04.01.01 Shipped

    Multi-level calendar (world, continental, national, regional, club) — PL-F0401a

    ✅ PL-F0401a
  • F04.01.02 Shipped

    Calendar event types (championship, open, league, friendly, training) — PL-F0401a

    ✅ PL-F0401a
  • F04.01.03 Shipped

    Date conflict detection across levels — PL-F0401a

    ✅ PL-F0401a
  • F04.01.04 Shipped

    Calendar approval workflow (regional > national > continental) — PL-F0401a

    ✅ PL-F0401a
  • F04.01.05 Shipped

    Public calendar view with filters (level, region, discipline, format) — PL-F0401b

    ✅ PL-F0401b
  • F04.01.06 Shipped

    Calendar subscription (iCal export, webcal://, ETag/If-Modified-Since, cursor pagination) — PL-F0401b, PL-T074

    ✅ PL-F0401b, PL-T074
  • F04.01.07 Shipped

    Season definition and management — PL-F0401b

    ✅ PL-F0401b
  • F04.01.08 Shipped

    Calendar notifications and reminders — PL-F0401b

    ✅ PL-F0401b

Tournament Setup

F04.02
Planned
How it works
  • F04.02.01 Shipped

    Tournament creation wizard (type, format, rules, venue, dates) — PL-F0402a

    ✅ PL-F0402a
  • F04.02.02 Shipped

    Competition formats (see F04.10 for full format catalog) — PL-F0402a

    ✅ PL-F0402a
  • F04.02.03 Shipped

    Disciplines: pétanque, jeu provençal, sport-boules — configurable per tenant — PL-F0402a

    ✅ PL-F0402a
  • F04.02.04 Shipped

    Configurable game formats per tenant — tête-à-tête, doublette, triplette, mixed doublette, mixed triplette + tenant-specific variants. Includes players per team, boules per player. — PL-F0402a

    ✅ PL-F0402a
  • F04.02.05 Shipped

    Configurable competition classes (spelklasser) per tenant — each federation defines its own age/gender classes with codes, age limits, and ranking eligibility. Examples: Sweden (M/YJ/J/Ö/D/V55/V65), France (Poussin→Vétéran), Germany (Minimes→Senioren), Spain (Benjamín→Veterano+Sub-23). Class is always age OR gender, never both combined. — PL-F0402a

    ✅ PL-F0402a
  • F04.02.06 Shipped

    Competition class = competition class + game format — the atomic unit is the combination, e.g., "Ös" (Open singles), "V65d" (Veteran 65 doubles). A competition event can have multiple competition classes. — PL-F0402a

    ✅ PL-F0402a
  • F04.02.07 Shipped

    Disability categories and adaptive rules — PL-F0402b

    ✅ PL-F0402b
  • F04.02.08 Shipped

    Points system configuration (per competition type) — PL-F0402b

    ✅ PL-F0402b
  • F04.02.09 Shipped

    Entry fee configuration — PL-F0402b

    ✅ PL-F0402b
  • F04.02.10 Shipped

    Maximum participants / team limits — PL-F0402b

    ✅ PL-F0402b
  • F04.02.11 Shipped

    Qualification criteria (ranking threshold, regional qualification) — PL-F0402b

    ✅ PL-F0402b
  • F04.02.12 Shipped

    Multi-day tournament scheduling — PL-F0402b

    ✅ PL-F0402b
  • F04.02.13 Shipped

    Competition regulation document attachment — PL-F0402c

    ✅ PL-F0402c
  • F04.02.14 Shipped

    Configurable competition levels per tenant — each federation defines its own levels (e.g., Sweden: internationell/nationell/regional/lokal/propaganda; France: international/national/régional/départemental/local/animation; Germany: A/B/C/D). Each level has: who can sanction it, ranking eligibility, ranking coefficient, required referee grade, venue requirements. — PL-F0402c

    ✅ PL-F0402c
  • F04.02.15 Shipped

    Competition type classification — configurable per tenant: championship (SM/DM/VM), cup, open/concours, league, friendly, mêlée, propaganda/recruitment (license-free), inbjudningstävling, extern tävling — PL-F0402c

    ✅ PL-F0402c
  • F04.02.16 Shipped

    Multi-discipline event (same event hosts multiple competition classes as separate draws) — PL-F0402c

    ✅ PL-F0402c
  • F04.02.17 Shipped

    Multi-day scheduling with sessions (morning/afternoon) — PL-F0402c

    ✅ PL-F0402c
  • F04.02.18 Shipped

    Competition templates (save and reuse common setups) — PL-F0402c

    ✅ PL-F0402c
  • F04.02.19 Shipped

    Competition cloning (copy last year's tournament with new dates) — PL-F0402d

    ✅ PL-F0402d
  • F04.02.20 Shipped

    Sanction application workflow — club/district applies for sanction → relevant authority reviews (federation for national+, district for local) → district provides statement on regional applications → authority approves/rejects → sanction fee charged → competition listed in calendar. Configurable per level per tenant. — PL-F0402d

    ✅ PL-F0402d
  • F04.02.21 Shipped

    Sanction deadlines per level — configurable per tenant (e.g., Sweden: Aug 1 for int/nat, Sep 30 for regional, district decides for local) — PL-F0402d

    ✅ PL-F0402d
  • F04.02.22 Shipped

    Sanction quotas — configurable max per level per year (e.g., Sweden: ~7 int/nat, ~48 regional, max 4 parallel regionals). Blackout periods (e.g., no other events during SM). — PL-F0402d

    ✅ PL-F0402d
  • F04.02.23 Shipped

    Sanction fee per competition class — configurable per tenant (e.g., Sweden: 300 SEK/class, no fee for youth classes). Payable to district or federation. — PL-F0402d

    ✅ PL-F0402d
  • F04.02.24 Shipped

    Promotion/recruitment competition (propaganda) — license-free events for recruitment. Configurable: who can sanction (federation and/or district with quota), no ranking points, open to unlicensed players. — PL-F0402d

    ✅ PL-F0402d
  • F04.02.25 Shipped

    Ranking-capped competitions (concours promotionnel) — France: events restricted to players below a certain ranking level. Configurable ranking threshold per competition. Per-tenant RankingCapConfig med default/min/max cap och level-koppling. — PL-F0402e

    ✅ PL-F0402e
  • F04.02.26 Shipped

    Club-bound flag — if enabled, all players in a team must hold license in the same club. Violation = configurable penalty (disqualification, forfeit score, fine). club_bound_violation_penalty och club_bound_fine_amount på Competition. — PL-F0402e

    ✅ PL-F0402e
  • F04.02.27 Shipped

    Match time limit — configurable per tenant/level (e.g., Spain: 60 min, CEP: 75 min). Optional. CompetitionLevel.default_match_time_limit_minutes och default_throw_time_limit_seconds auto-populeras vid skapande. — PL-F0402e

    ✅ PL-F0402e
  • F04.02.28 Shipped

    Sanction revocation — authority can revoke sanction with mandatory reason, category, revoked_by. Auto-suspenderar tävling. Giltiga kategorier: rule_violation, safety_concern, venue_issue, federation_interest, organizer_misconduct, other. — PL-F0402e

    ✅ PL-F0402e

Tournament Discovery & Registration

F04.03
Planned

### Cross-Border Tournament Discovery

How it works
  • F04.03.01 Shipped

    Global tournament search (find competitions in any country) — PL-F0403a

    ✅ PL-F0403a
  • F04.03.02 Shipped

    Map-based tournament finder (search by location, radius, dates) — PL-F0403a

    ✅ PL-F0403a
  • F04.03.03 Shipped

    Filter by: country, region, format, discipline, team format, level, open/invitational — PL-F0403a

    ✅ PL-F0403a
  • F04.03.04 Shipped

    "Traveling player" mode (show tournaments near a destination + date range) — PL-F0403a

    ✅ PL-F0403a
  • F04.03.05 Shipped

    Tournament recommendations based on ELO level and preferences — PL-F0403a

    ✅ PL-F0403a
  • F04.03.06 Shipped

    Follow tournaments in other countries (get notifications) — PL-F0403b

    ✅ PL-F0403b
  • F04.03.07 Shipped

    Tournament detail page: rules, venue, entry fee, accommodation tips, language — PL-F0403b

    ✅ PL-F0403b
  • F04.03.08 Shipped

    "Open to foreign players" flag on tournaments (organizer marks this) — PL-F0403b

    ✅ PL-F0403b
  • F04.03.09 Shipped

    Cross-border entry requirements info (license validity, temporary license) — PL-F0403b

    ✅ PL-F0403b
  • F04.03.10 Shipped

    Temporary license / day pass for foreign players (federation configurable) — PL-F0403b

    ✅ PL-F0403b
  • F04.03.11 Shipped

    Tournament saved/wishlist (plan your tournament calendar) — PL-F0403c

    ✅ PL-F0403c
  • F04.03.12 Shipped

    Travel group finder (other players going to same tournament) — PL-F0403c

    ✅ PL-F0403c
  • F04.03.13 Shipped

    Online registration (individual and team) — PL-F0403c

    ✅ PL-F0403c
  • F04.03.14 Shipped

    Registration validation (license check, age category, ranking eligibility) — PL-F0403c

    ✅ PL-F0403c
  • F04.03.15 Shipped

    Registration payment integration (multi-currency for international) — PL-F0403c

    ✅ PL-F0403c
  • F04.03.16 Shipped

    Registration deadline management — PL-F0403d

    ✅ PL-F0403d
  • F04.03.17 Shipped

    Waiting list management — PL-F0403d

    ✅ PL-F0403d
  • F04.03.18 Shipped

    Late registration handling — PL-F0403d

    ✅ PL-F0403d
  • F04.03.19 Shipped

    Team composition validation (correct number of players, mixed rules) — PL-F0403d

    ✅ PL-F0403d
  • F04.03.20 Shipped

    Substitution rules and management — PL-F0403d

    ✅ PL-F0403d
  • F04.03.21 Shipped

    Registration confirmation and receipt — PL-F0403e

    ✅ PL-F0403e
  • F04.03.22 Shipped

    Bulk registration (club enters multiple teams) — PL-F0403e

    ✅ PL-F0403e
  • F04.03.23 Shipped

    Seeding based on rankings — PL-F0403e

    ✅ PL-F0403e
  • F04.03.24 Shipped

    Cross-border registration (register for tournament in another nation with valid license) — PL-F0403e

    ✅ PL-F0403e
  • F04.03.25 Shipped

    Registration language (show tournament info in player's language) — PL-F0403e

    ✅ PL-F0403e
  • F04.03.26 Shipped

    PublicationScope enum (PRIVATE/ORGNODE/TENANT/GLOBAL) on Competition — PL-T007

    ✅ PL-T007
  • F04.03.27 Shipped

    PUT /competitions/{id}/publication endpoint with audit log — PL-T007

    ✅ PL-T007
  • F04.03.28 Shipped

    GET /public/competitions/global cross-tenant public API (paginerad, cachad 15 min) — PL-T007

    ✅ PL-T007
  • F04.03.29 Shipped

    GET /public/tenants/{code}/competitions per-federation public listing — PL-T007

    ✅ PL-T007
  • F04.03.30 Shipped

    Scope filter on GET /competitions (query param scope=private

    tenant|orgnode|global) — PL-T007 | ✅ PL-T007
  • F04.03.31 Shipped

    GLOBAL scope requires federation-admin (club-admin 403 policy) — PL-T007

    ✅ PL-T007
  • F04.03.32 Shipped

    Competition visibility service with ORGNODE ancestor/descendant expansion — PL-T007

    ✅ PL-T007
  • F04.03.33 Shipped

    Backfill migration (existing competitions → TENANT scope) — PL-T007

    ✅ PL-T007
  • F04.03.34 Shipped

    Compound index (publication_scope, status, start_date) for queries — PL-T007

    ✅ PL-T007

Draw & Scheduling (Tirage au Sort)

F04.04
Planned
How it works
  • F04.04.01 Shipped

    Automatic draw generation (randomized with seeding rules)

    ✅ PL-F0404a
  • F04.04.02 Shipped

    Separation rules (same club, same region in different groups)

    ✅ PL-F0404a
  • F04.04.03 Shipped

    Poule composition (balanced by ranking)

    ✅ PL-F0404a
  • F04.04.04 Shipped

    Bracket generation (single/double elimination)

    ✅ PL-F0404a
  • F04.04.05 Shipped

    Swiss-system pairing algorithm

    ✅ PL-F0404a
  • F04.04.12 Shipped

    Monrad pairing algorithm (Swiss variant, common in Scandinavia)

    ✅ PL-F0404b
  • F04.04.13 Shipped

    Mêlée random team draw (new random teams each round)

    ✅ PL-F0404b
  • F04.04.14 Shipped

    Super-mêlée draw (mixed player levels, partner rotation every round)

    ✅ PL-F0404b
  • F04.04.06 Shipped

    Court assignment optimization

    ✅ PL-F0404b
  • F04.04.07 Shipped

    Schedule generation (time slots per round)

    ✅ PL-F0404b
  • F04.04.08 Shipped

    Draw publication and notification

    ✅ PL-F0404c
  • F04.04.09 Shipped

    Manual draw adjustments (with audit trail)

    ✅ PL-F0404c
  • F04.04.10 Shipped

    Bye management (odd number of participants)

    ✅ PL-F0404c
  • F04.04.11 Shipped

    Re-draw capabilities (when teams withdraw)

    ✅ PL-F0404c

Match Management

F04.05
In progress
How it works
  • F04.05.01 Shipped

    Match score entry (by official, scorer, or team delegate) — PL-F0405a

    ✅ PL-F0405a
  • F04.05.02 Shipped

    Real-time score tracking — PL-F0405a

    ✅ PL-F0405a
  • F04.05.03 Shipped

    Match status tracking (scheduled, in progress, completed, suspended, forfeit) — PL-F0405a

    ✅ PL-F0405a
  • F04.05.04 Shipped

    Match timer — configurable: total match time limit (Spain: 60 min, CEP: 75 min) AND per-throw time limit (Spain: 30 seconds). Both optional and configurable per tenant/competition level. Distinct enforcement UI for each. — PL-F0405a

    ✅ PL-F0405a
  • F04.05.05 Shipped

    Match result confirmation (both teams or umpire) — PL-F0405a

    ✅ PL-F0405a
  • F04.05.06 Shipped

    Score dispute resolution workflow — PL-F0405a

    ✅ PL-F0405a
  • F04.05.07 Shipped

    Forfeit and withdrawal handling — PL-F0405b

    ✅ PL-F0405b
  • F04.05.08 Shipped

    Court change management — PL-F0405b

    ✅ PL-F0405b
  • F04.05.09 Shipped

    Match comments and incident reporting — PL-F0405b

    ✅ PL-F0405b
  • F04.05.10 Shipped

    Photo/video attachment to match records — PL-F0405b

    ✅ PL-F0405b
  • F04.05.11 Shipped

    Mène (end/round) tracking — score progression per mène within a match — PL-F0405b

    ✅ PL-F0405b
  • F04.05.12 Shipped

    Mène-level detail: which team scored, how many points, cochonnet position — PL-F0405b

    ✅ PL-F0405b
  • F04.05.13 Shipped

    Individual throw tracking (optional, for detailed analytics) — PL-F0405c

    ✅ PL-F0405c
  • F04.05.14 Shipped

    Throw type classification: point (portée/raspaille/donnée), tir (carreau/palet/raté) — PL-F0405c

    ✅ PL-F0405c
  • F04.05.15 Shipped

    Throw outcome recording: successful/missed, distance from cochonnet — PL-F0405c

    ✅ PL-F0405c
  • F04.05.16 Shipped

    Photo proof upload per mène (disputed measurements) — PL-F0405c

    ✅ PL-F0405c
  • F04.05.17 Shipped

    Match timeline view (mène-by-mène score progression) — PL-F0405c

    ✅ PL-F0405c
  • F04.05.18 Shipped

    Court Ops Console — live-board för marshal/jury president med color-coded threshold-flaggor och SSE-stream per event — PL-T223

    ✅ PL-T223
  • F04.05.19 Shipped

    Threshold alerts — warn/overrun/escalate (75/100/125 % default), tenant/event-config, audit-trail i CourtOpsAlert med ack-flow — PL-T223

    ✅ PL-T223
  • F04.05.20 Shipped

    Marshal broadcast — audience ∈ {all_marshals, all_teams, court_neighbors, next_up}, multi-lang body, F09.02-fan-out — PL-T223

    ✅ PL-T223

Results & Standings

F04.06
Planned
How it works
  • F04.06.01 Shipped

    Real-time standings/leaderboard calculation

    ✅ PL-F0406a
  • F04.06.02 Shipped

    Tiebreaker rules (head-to-head, point difference, quotient)

    ✅ PL-F0406a
  • F04.06.03 Shipped

    Poule standings with all stats (W, L, PF, PA, PD, quotient)

    ✅ PL-F0406a
  • F04.06.04 Shipped

    Bracket progression (automatic advancement)

    ✅ PL-F0406a
  • F04.06.05 Shipped

    Final results publication

    ✅ PL-F0406a
  • F04.06.06 Shipped

    Result export (PDF, CSV, federation format)

    ✅ PL-F0406b
  • F04.06.07 Shipped

    Historical results archive

    ✅ PL-F0406b
  • F04.06.08 Shipped

    Public results page (embeddable)

    ✅ PL-F0406b
  • F04.06.09 Shipped

    Audit trail on all result entries and modifications

    ✅ PL-F0406b

Rankings

F04.07
Planned
How it works
  • F04.07.01 Shipped

    National ranking system per federation

    ✅ PL-F0407a
  • F04.07.02 Shipped

    World ranking (FIPJP)

    ✅ PL-F0407a
  • F04.07.03 Shipped

    Continental rankings

    ✅ PL-F0407a
  • F04.07.04 Shipped

    Configurable ranking algorithm per tenant — each federation defines: point scale per competition level × placement × number of participants, ranking coefficient/multiplier per level, max competitions counted per year, and whether ranking is per competition class (Sweden: separate list for Ös, Ds, V55s etc.)

    ✅ PL-F0407a
  • F04.07.05 Shipped

    Ranking per configurable dimension — separate rankings per: competition class (age/gender), game format, or combined. Configurable per tenant. A player can appear on multiple ranking lists.

    ✅ PL-F0407a
  • F04.07.06 Shipped

    Ranking history and progression charts

    ✅ PL-F0407a
  • F04.07.07 Shipped

    Configurable ranking validity — points expire after configurable period: Sweden 1 year from competition date, France 2 years, Germany 3 years with weighted decay (3×current + 2×previous + 1×two years ago)

    ✅ PL-F0407b
  • F04.07.08 Shipped

    Tournament category multipliers — configurable categories (e.g., Germany: A/B/C/D with multipliers 4/3/2/1; Sweden: point scale varies by level + participant count; France: coefficients per level)

    ✅ PL-F0407b
  • F04.07.09 Shipped

    Ranking publication and notification

    ✅ PL-F0407b
  • F04.07.10 Shipped

    Ranking-based qualification thresholds

    ✅ PL-F0407b
  • F04.07.11 Shipped

    Club/team rankings

    ✅ PL-F0407b
  • F04.07.12 Shipped

    Public ranking search and filtering

    ✅ PL-F0407b
  • F04.07.13 Shipped

    Global ELO rating system (skill-based, worldwide, format-independent) — PL-F0407c

    ✅ PL-F0407c
  • F04.07.14 Shipped

    ELO calculation per match result (win/loss margin affects change) — PL-F0407c

    ✅ PL-F0407c
  • F04.07.15 Shipped

    ELO K-factor configuration (higher for new players, lower for established) — PL-F0407c

    ✅ PL-F0407c
  • F04.07.16 Shipped

    ELO separate ratings per format (singles, doubles, triples) — PL-F0407c

    ✅ PL-F0407c
  • F04.07.17 Shipped

    ELO history and progression chart per player — PL-F0407c

    ✅ PL-F0407c
  • F04.07.18 Shipped

    ELO-based matchmaking suggestions (balanced pairing) — PL-F0407c

    ✅ PL-F0407c
  • F04.07.19 Shipped

    ELO leaderboards (global, continental, national, club) — PL-F0407d

    ✅ PL-F0407d
  • F04.07.20 Shipped

    Dual ranking display: Federation Points + Global ELO side by side — PL-F0407d

    ✅ PL-F0407d
  • F04.07.21 Shipped

    ELO updated from both official competitions and casual games — PL-F0407d

    ✅ PL-F0407d
  • F04.07.22 Shipped

    Partnership/team ELO (combined rating for regular partnerships) — PL-F0407d

    ✅ PL-F0407d

League / Series Management

F04.08
In progress

Season-long competitions where clubs/teams play regular fixtures.

How it works
  • F04.08.01 Shipped

    League creation (divisions, tiers, pools) — configurable per tenant — PL-F0408a

    ✅ PL-F0408a
  • F04.08.02 Shipped

    Promotion/relegation rules (automatic + playoff, configurable spots per tenant) — PL-F0408a

    ✅ PL-F0408a
  • F04.08.03 Shipped

    Home/away fixture generation (round-robin, single or double) — PL-F0408a

    ✅ PL-F0408a
  • F04.08.04 Shipped

    Configurable tiebreaker rules per tenant — Sweden: points → wins → klotskillnad → head-to-head → lottery. Other nations may differ. — PL-F0408a

    ✅ PL-F0408a
  • F04.08.05 Shipped

    Match postponement and rescheduling with audit trail + tenant deadline enforcement — PL-F0408a

    ✅ PL-F0408a
  • F04.08.06 Shipped

    Season results archive with public endpoints and cross-league search — PL-F0408a

    ✅ PL-F0408a
  • F04.08.07 Shipped

    Team roster with max players per season — configurable per tenant (e.g., Germany Bundesliga: max 10 players per team per season). max_players_per_team på League, valideras vid register_team + update_roster. — PL-F0408b

    ✅ PL-F0408b
  • F04.08.08 Shipped

    League registration deadline and team enrollment. registration_deadline på League (date, optional). POST /leagues/{id}/open-registration (setup→registration, kräver minst en division), POST /leagues/{id}/close-registration (registration→active). Deadline kontrolleras inklusivt vid teamregistrering och roster-uppdatering. — PL-F0408b

    ✅ PL-F0408b
  • F04.08.09 Shipped

    Composite match day — a league match day consists of multiple sub-matches. Configurable format per league: Germany Bundesliga (1 triplette + 1 doublette + 1 mixed doublette), France D1N (3 triplettes + 3 doublettes + 3 tête-à-tête = 9 parties), Denmark (similar). Match day result = sum of sub-match results. CompositeMatchDayConfig stöder name/description; spelarantal per sub-match valideras mot GameFormat.players_per_team; GET /leagues/{id}/match-day-summary med round_number-filter. — PL-F0408b

    ✅ PL-F0408b
  • F04.08.10 Shipped

    Player eligibility per match (registered in roster, not suspended, not transferred). Service check_player_eligibility() med 4 kontroller: roster, license_active, not_transferred, club_match. Bulk-endpoint POST /leagues/{id}/divisions/{level}/teams/{club_id}/check-eligibility. Eligibilitetsfel blockerar sub-match-recordning. — PL-F0408b

    ✅ PL-F0408b
  • F04.08.11 Shipped

    League statistics (top scorers, most wins, etc.). GET /leagues/{id}/player-statistics med sort_by (total_points_scored/matches_won/sub_matches_won/matches_played) och division_level-filter. Publik spegling GET /public/leagues/{id}/player-statistics. — PL-F0408b

    ✅ PL-F0408b
  • F04.08.12 Shipped

    Inter-club league (clubs send teams). league_type (inter_club/individual/mixed) på League. Inter_club: klubbar valideras mot Club-samlingen, en klubb kan ej registreras i flera divisioner i samma liga (409), holdfællesskab via club_ids (2+ klubbar som ett lag). GET /leagues/?league_type= filter. — PL-F0408b

    ✅ PL-F0408b
  • F04.08.13 Shipped

    Inter-region/district league (regional all-star teams or district series). scope (club/district/region) och district_id på League; district_id på LeagueTeam; validering att district_id krävs vid teamregistrering i district/region-liga; duplikat-district i samma division blockeras (409). — PL-F0408c

    ✅ PL-F0408c
  • F04.08.14 Shipped

    Playoff generation from league standings. championship-bracket-typ; seeded_from_standings; rounds_total (2 = hem+borta); seed_from_phase; duplikat-bracket skyddas (409). — PL-F0408c

    ✅ PL-F0408c
  • F04.08.15 Shipped

    League calendar with venue rotation. GET /leagues/{id}/calendar (rounds grupperade med fixture-detaljer, from_date/to_date-filter); GET /public/leagues/{id}/calendar (utan auth); home_venue_map vid fixture-generering. — PL-F0408c

    ✅ PL-F0408c
  • F04.08.16 Shipped

    League hierarchy — national league feeds into regional/district leagues. parent_league_id/league_level på League; LeagueHierarchyLevel i TenantConfig.LeagueConfig; GET /leagues/hierarchy-tree (rekursivt träd per tenant); GET /leagues/{id}/hierarchy (per-liga vy). Konfigurerbart per tenant (France: D1N→D2N→D3N→DR→DD, Germany: Bundesliga→Landesliga→Bezirksliga). — PL-F0408c

    ✅ PL-F0408c
  • F04.08.17 Shipped

    Transfer quarantine during active league — configurable: transfer_quarantine_scope (tenant/player_league/none) i TenantConfig.LeagueConfig. GET /leagues/{id}/transfer-quarantine-status per spelare. Karantänlogik integrerad i transfer-flödet. — PL-F0408c

    ✅ PL-F0408c
  • F04.08.18 Shipped

    Multi-phase league season — format_type (round_robin/knockout/swiss/monrad), points_for_win/draw/loss-override, carry_over_points, transition_criteria (top_n/threshold/all) per fas. POST /leagues/{id}/phases/{n}/transition med kvalificerade/eliminerade lag i svar. — PL-F0408c

    ✅ PL-F0408c
  • F04.08.19 Shipped

    Promotion via standalone tournament — configurable: promotion determined by a separate tournament (Germany: Aufstiegsrunde where 10 Landesmeister play round-robin, top 4 promote to Bundesliga). Distinct from in-league promotion. — PL-F0408d

    ✅ PL-F0408d
  • F04.08.20 Shipped

    Substitution constraints per league — configurable: reserve players locked to specific sub-match after insertion (Spain: Liga Nacional), maximum reserves per match day, substitution registration deadline. — PL-F0408d

    ✅ PL-F0408d
  • F04.08.21 Shipped

    Court specification enforcement per league — configurable: minimum court dimensions, closed court rules (Spain: pista cerrada 50cm from sideline, 1m from backline). Validated at venue assignment. — PL-F0408d

    ✅ PL-F0408d

National Team Selection

F04.09
Planned
How it works
  • F04.09.01 Shipped

    Selection committee management — PL-F0409

    ✅ PL-F0409
  • F04.09.02 Shipped

    Selection criteria definition — PL-F0409

    ✅ PL-F0409
  • F04.09.03 Shipped

    Candidate pool tracking (ranking, performance, availability) — PL-F0409

    ✅ PL-F0409
  • F04.09.04 Shipped

    Team composition builder — PL-F0409

    ✅ PL-F0409
  • F04.09.05 Shipped

    Selection announcement workflow — PL-F0409

    ✅ PL-F0409
  • F04.09.06 Shipped

    National team history and records — PL-F0409

    ✅ PL-F0409

Competition Format Catalog

F04.10
Planned

All supported competition formats and their unique rules.

How it works
  • F04.10.01 Shipped

    Knockout / Elimination — single elimination, loser goes home — PL-F0410a

    ✅ PL-F0410a
  • F04.10.02 Shipped

    Double elimination — losers bracket, second chance — PL-F0410a

    ✅ PL-F0410a
  • F04.10.03 Shipped

    Consolation bracket (consolante) — separate bracket for first-round losers — PL-F0410a

    ✅ PL-F0410a
  • F04.10.04 Shipped

    Round-robin — everyone plays everyone — PL-F0410a

    ✅ PL-F0410a
  • F04.10.05 Shipped

    Poules + Knockout — group stage then elimination (most common) — PL-F0410a

    ✅ PL-F0410a
  • F04.10.06 Shipped

    Swiss system — paired by similar results, no elimination — PL-F0410a

    ✅ PL-F0410a
  • F04.10.07 Shipped

    Monrad system — Swiss variant (Scandinavian, strength-based pairing) — PL-F0410b

    ✅ PL-F0410b
  • F04.10.08 Shipped

    Mêlée — individual entry, random team draw each round, individual ranking — PL-F0410b

    ✅ PL-F0410b
  • F04.10.09 Shipped

    Super-mêlée — like mêlée but mixed levels, partner rotation every round — PL-F0410b

    ✅ PL-F0410b
  • F04.10.10 Shipped

    Marathon — continuous play all day, most wins/points wins — PL-F0410b

    ✅ PL-F0410b
  • F04.10.11 Shipped

    Américaine — doublette with partner change after each match (round-robin style) — PL-F0410b

    ✅ PL-F0410b
  • F04.10.12 Shipped

    Tête-à-tête integral — every player plays every other player — PL-F0410b

    ✅ PL-F0410b
  • F04.10.13 Shipped

    Championnat Tête-à-tête — singles championship (3 boules each)

    ✅ PL-F0410c ✅ PL-F0410c
  • F04.10.14 Shipped

    Championnat Doublette — doubles championship (3 boules each)

    ✅ PL-F0410c ✅ PL-F0410c
  • F04.10.15 Shipped

    Championnat Triplette — triples championship (2 boules each)

    ✅ PL-F0410c ✅ PL-F0410c
  • F04.10.16 Shipped

    Championnat Mixte — mixed doubles/triples (mandatory male+female)

    ✅ PL-F0410c ✅ PL-F0410c
  • F04.10.17 Shipped

    Championnat Combiné — combined competition (match play + shooting skills)

    ✅ PL-F0410c ✅ PL-F0410c
  • F04.10.18 Shipped

    Championnat des Clubs — inter-club championship (club sends multiple teams)

    ✅ PL-F0410c ✅ PL-F0410c
  • F04.10.19 Shipped

    Championnat des Nations — nation vs nation (national delegations)

    ✅ PL-F0410d ✅ PL-F0410d
  • F04.10.20 Shipped

    Tir de Précision — precision shooting at marked targets on court

    ✅ PL-F0410d ✅ PL-F0410d
  • F04.10.21 Shipped

    Tir de Précision scoring system (points per target zone hit)

    ✅ PL-F0410d ✅ PL-F0410d
  • F04.10.22 Shipped

    Tir de Précision court layout management (target positions per FIPJP rules)

    ✅ PL-F0410d ✅ PL-F0410d
  • F04.10.23 Shipped

    Tir Rapide — rapid shooting against the clock

    ✅ PL-F0410d ✅ PL-F0410d
  • F04.10.24 Shipped

    Tir Rapide timer integration (countdown per attempt)

    ✅ PL-F0410d ✅ PL-F0410d
  • F04.10.25 Shipped

    Tir Progressif — increasingly difficult targets (distance, angle, obstacles)

    ✅ PL-F0410e ✅ PL-F0410e
  • F04.10.26 Shipped

    Tir Progressif level progression and scoring

    ✅ PL-F0410e ✅ PL-F0410e
  • F04.10.27 Shipped

    Relais de Tir — team shooting relay (each player shoots in sequence)

    ✅ PL-F0410e ✅ PL-F0410e
  • F04.10.28 Shipped

    Shooting competition leaderboard (separate from match rankings)

    ✅ PL-F0410e ✅ PL-F0410e
  • F04.10.29 Shipped

    Shooting accuracy statistics per player (career, season, competition)

    ✅ PL-F0410e ✅ PL-F0410e
  • F04.10.30 Shipped

    Shooting competition as standalone event or embedded within combined championship

    ✅ PL-F0410e ✅ PL-F0410e
  • F04.10.31 Shipped

    Video replay integration for shooting competitions (analyze technique)

    ✅ PL-F0410f ✅ PL-F0410f
  • F04.10.32 Shipped

    National Championship (qualification pathway: club > regional > national)

    ✅ PL-F0410f ✅ PL-F0410f
  • F04.10.33 Shipped

    Continental Championship (e.g., European Championship) — national delegations

    ✅ PL-F0410f ✅ PL-F0410f
  • F04.10.34 Shipped

    World Championship — FIPJP sanctioned, all disciplines

    ✅ PL-F0410f ✅ PL-F0410f
  • F04.10.35 Shipped

    Cup / Coupe — knockout with seeding, often multi-round across weeks

    ✅ PL-F0410f ✅ PL-F0410f
  • F04.10.36 Shipped

    Grand Prix / Ranking tournament — open entry, high ranking points coefficient

    ✅ PL-F0410f ✅ PL-F0410f
  • F04.10.37 Shipped

    Challenge / Trophée — invitational tournament (organizer selects participants)

    ✅ PL-F0410g ✅ PL-F0410g
  • F04.10.38 Shipped

    Masters / Finale — end-of-season event for top-ranked players

    ✅ PL-F0410g ✅ PL-F0410g
  • F04.10.39 Shipped

    World Games — multi-sport event with petanque included

    ✅ PL-F0410g ✅ PL-F0410g
  • F04.10.40 Shipped

    Youth Championship — dedicated age-group championships (U13, U15, U18, U23)

    ✅ PL-F0410g ✅ PL-F0410g
  • F04.10.41 Shipped

    Veterans Championship — 55+, 65+ categories

    ✅ PL-F0410g ✅ PL-F0410g
  • F04.10.42 Shipped

    Para-Petanque Championship — disability classifications

    ✅ PL-F0410g ✅ PL-F0410g
  • F04.10.43 Shipped

    Women's Championship — dedicated women's events at all levels

    ✅ PL-F0410h ✅ PL-F0410h
  • F04.10.44 Shipped

    Championship series — multiple events, cumulative points determine overall winner

    ✅ PL-F0410h ✅ PL-F0410h
  • F04.10.45 Shipped

    Series calendar management (which events count)

    ✅ PL-F0410h ✅ PL-F0410h
  • F04.10.46 Shipped

    Series standings (running total across events)

    ✅ PL-F0410h ✅ PL-F0410h
  • F04.10.47 Shipped

    Best-of-N scoring (only top X results count)

    ✅ PL-F0410h ✅ PL-F0410h
  • F04.10.48 Shipped

    Series finale qualification (top N qualify for finale)

    ✅ PL-F0410h ✅ PL-F0410h
  • F04.10.49 Shipped

    Series sponsorship and branding per circuit

    ✅ PL-F0410i ✅ PL-F0410i
  • F04.10.50 Shipped

    Custom format builder (combine stages: poules → repechage → knockout)

    ✅ PL-F0410i ✅ PL-F0410i
  • F04.10.51 Shipped

    Stage transition rules (how many advance from each stage)

    ✅ PL-F0410i ✅ PL-F0410i
  • F04.10.52 Shipped

    Points-to-win configuration (11, 13, or custom per round/stage)

    ✅ PL-F0410i ✅ PL-F0410i
  • F04.10.53 Shipped

    Time limit per match/mène (configurable per competition)

    ✅ PL-F0410i ✅ PL-F0410i
  • F04.10.54 Shipped

    Tiebreaker configuration per format

    ✅ PL-F0410i ✅ PL-F0410i
  • F04.10.55 Shipped

    Format validation (ensure rules are internally consistent)

    ✅ PL-F0410j ✅ PL-F0410j
  • F04.10.56 Shipped

    Format preview (simulate a tournament with N teams to check flow)

    ✅ PL-F0410j ✅ PL-F0410j

Qualification Pathways

F04.11
Planned

Multi-stage qualification from local to international level.

How it works
  • F04.11.01 Shipped

    Qualification pathway definition (e.g., club > district > regional > national > world) — PL-F0411a

    ✅ PL-F0411a
  • F04.11.02 Shipped

    Qualification spots allocation (how many advance from each stage) — PL-F0411a

    ✅ PL-F0411a
  • F04.11.03 Shipped

    Automatic qualification tracking (player qualifies at district → registered for regional) — PL-F0411a

    ✅ PL-F0411a
  • F04.11.04 Shipped

    Wild card / invitation slots — PL-F0411a

    ✅ PL-F0411a
  • F04.11.05 Shipped

    Qualification via ranking (top N nationally qualify for continental) — PL-F0411b

    ✅ PL-F0411b
  • F04.11.06 Shipped

    Qualification history per player (which championships qualified for) — PL-F0411b

    ✅ PL-F0411b
  • F04.11.07 Shipped

    Cross-reference: national qualification linked to continental/world entry — PL-F0411b

    ✅ PL-F0411b

International Competitions

F04.12
Planned

Features specific to international events (continental, world championships, World Games).

How it works
  • F04.12.01 Shipped

    National delegation management (federation submits team roster)

    ✅ PL-F0412a ✅ PL-F0412a
  • F04.12.02 Shipped

    Delegation size limits per event type

    ✅ PL-F0412a ✅ PL-F0412a
  • F04.12.03 Shipped

    Nation vs nation format (e.g., triplette championship = 3 triplettes per nation)

    ✅ PL-F0412a ✅ PL-F0412a
  • F04.12.04 Shipped

    Flag/anthem management per nation (for ceremonies)

    ✅ PL-F0412a ✅ PL-F0412a
  • F04.12.05 Shipped

    Accreditation system (player, official, media, VIP badges)

    ✅ PL-F0412a ✅ PL-F0412a
  • F04.12.06 Shipped

    Multi-language announcements at event

    ✅ PL-F0412a ✅ PL-F0412a
  • F04.12.07 Shipped

    Time zone management (schedule in local time, display in viewer's time)

    ✅ PL-F0412b ✅ PL-F0412b
  • F04.12.08 Shipped

    International ranking points (FIPJP points from world/continental events)

    ✅ PL-F0412b ✅ PL-F0412b
  • F04.12.09 Shipped

    Travel and accommodation coordination per delegation

    ✅ PL-F0412b ✅ PL-F0412b
  • F04.12.10 Shipped

    International competition results fed back to national rankings

    ✅ PL-F0412b ✅ PL-F0412b
  • F04.12.11 Shipped

    Historical records per international competition (all-time medal table)

    ✅ PL-F0412b ✅ PL-F0412b
  • F04.12.12 Shipped

    International competition bidding (federation applies to host)

    ✅ PL-F0412b ✅ PL-F0412b

Casual Games

F04.13
Planned

Non-tournament games between players — social play, practice matches, club evenings.

How it works
  • F04.13.01 Shipped

    Quick game creation (pick players, format, start playing) — PL-F0413a

    ✅ PL-F0413a
  • F04.13.02 Shipped

    Casual game score tracking (same scoring as official matches) — PL-F0413a

    ✅ PL-F0413a
  • F04.13.03 Shipped

    Mène tracking for casual games (optional) — PL-F0413a

    ✅ PL-F0413a
  • F04.13.04 Shipped

    Casual game history per player — PL-F0413a

    ✅ PL-F0413a
  • F04.13.05 Shipped

    Casual game ELO impact (configurable — can be weighted lower than official) — PL-F0413a

    ✅ PL-F0413a
  • F04.13.06 Shipped

    Location tagging (where was the game played — venue or GPS)

    ✅ PL-F0413b ✅ PL-F0413b
  • F04.13.07 Shipped

    Invite players to casual game (in-app)

    ✅ PL-F0413b ✅ PL-F0413b
  • F04.13.08 Shipped

    "Looking for game" status (player signals availability at a venue)

    ✅ PL-F0413b ✅ PL-F0413b
  • F04.13.09 Shipped

    Club evening management (organized casual play sessions)

    ✅ PL-F0413b ✅ PL-F0413b
  • F04.13.10 Shipped

    Random team generator (shuffle players into balanced teams by ELO)

    ✅ PL-F0413b ✅ PL-F0413b
  • F04.13.11 Shipped

    Casual game statistics (separate from official stats)

    ✅ PL-F0413c ✅ PL-F0413c
  • F04.13.12 Shipped

    Social sharing of casual game results

    ✅ PL-F0413c ✅ PL-F0413c
  • F04.13.13 Shipped

    Photo/video from casual games

    ✅ PL-F0413c ✅ PL-F0413c

Player of the Match & Awards

F04.14
Planned

Inspired by football, tennis, and other sports — in-match and post-match recognition.

How it works
  • F04.14.01 Shipped

    Player of the Match voting (spectators, officials, or automatic from stats)

    ✅ PL-F0414a
  • F04.14.02 Shipped

    Player of the Tournament award

    ✅ PL-F0414a
  • F04.14.03 Shipped

    Best Shooter award (highest tir accuracy in competition)

    ✅ PL-F0414a
  • F04.14.04 Shipped

    Best Pointer award (highest pointing accuracy)

    ✅ PL-F0414a
  • F04.14.05 Shipped

    Most Carreaux award (most perfect hits)

    ✅ PL-F0414a
  • F04.14.06 Shipped

    Comeback of the tournament (biggest deficit overcome)

    ✅ PL-F0414b ✅ PL-F0414b
  • F04.14.07 Shipped

    Fair play award (sportsmanship, nominated by umpires)

    ✅ PL-F0414b ✅ PL-F0414b
  • F04.14.08 Shipped

    Season awards: Player of the Year, Young Player, Newcomer, Coach, Club, Umpire

    ✅ PL-F0414b ✅ PL-F0414b
  • F04.14.09 Shipped

    Award voting system (federation configurable: public vote, expert panel, stats-based)

    ✅ PL-F0414b ✅ PL-F0414b
  • F04.14.10 Shipped

    Awards history and hall of fame integration

    ✅ PL-F0414b ✅ PL-F0414b

Head-to-Head & Comparison Tools

F04.15
Planned

Inspired by tennis, chess, and combat sports.

How it works
  • F04.15.01 Shipped

    Head-to-head comparison (any two players — record, stats, ELO delta)

    ✅ PL-F0415a ✅ PL-F0415a
  • F04.15.02 Shipped

    Team vs team comparison (two clubs, two nations — all-time record)

    ✅ PL-F0415a ✅ PL-F0415a
  • F04.15.03 Shipped

    Player comparison tool (side-by-side: stats, ELO, ranking, strengths)

    ✅ PL-F0415a ✅ PL-F0415a
  • F04.15.04 Shipped

    Pre-match prediction (ELO-based win probability)

    ✅ PL-F0415a ✅ PL-F0415a
  • F04.15.05 Shipped

    Form guide (last 5/10/20 results, W/L streak)

    ✅ PL-F0415b ✅ PL-F0415b
  • F04.15.06 Shipped

    Surface/terrain performance comparison (indoor vs outdoor, gravel vs sand)

    ✅ PL-F0415b ✅ PL-F0415b
  • F04.15.07 Shipped

    Rivalry tracking (frequent opponents, notable matchups)

    ✅ PL-F0415b ✅ PL-F0415b

Records & Milestones

F04.16
Planned

Inspired by cricket, athletics, and tennis — tracking all-time records.

How it works
  • F04.16.01 Shipped

    All-time records database (per federation, per competition, per club)

    ✅ PL-F0416a
  • F04.16.02 Shipped

    Record categories: most titles, longest win streak, highest ELO, most 13-0 wins

    ✅ PL-F0416a
  • F04.16.03 Shipped

    Automatic record detection (system alerts when a record is broken)

    ✅ PL-F0416a
  • F04.16.04 Shipped

    Milestone alerts (100th match, 500th win, 10th season, etc.)

    ✅ PL-F0416a
  • F04.16.05 Shipped

    Career milestone badges

    ✅ PL-F0416a
  • F04.16.06 Shipped

    First-ever tracking (first player from a nation to reach X, first 13-0 in a final, etc.)

    ✅ PL-F0416b
  • F04.16.07 Shipped

    Youngest/oldest records (youngest champion, oldest active player, etc.)

    ✅ PL-F0416b
  • F04.16.08 Shipped

    Record book per competition (every edition's winners, stats, attendance)

    ✅ PL-F0416b
  • F04.16.09 Shipped

    Nation/club record walls (displayed on CMS site)

    ✅ PL-F0416b

Team Partnerships

F04.17
Planned

Track stable partnerships over time — who plays well together.

How it works
  • F04.17.01 Shipped

    Partnership registry (regular doublette/triplette combinations)

    ✅ PL-F0417a ✅ PL-F0417a
  • F04.17.02 Shipped

    Partnership win/loss record

    ✅ PL-F0417a ✅ PL-F0417a
  • F04.17.03 Shipped

    Partnership ELO (combined team rating)

    ✅ PL-F0417a ✅ PL-F0417a
  • F04.17.04 Shipped

    Partnership history (all matches played together)

    ✅ PL-F0417a ✅ PL-F0417a
  • F04.17.05 Shipped

    "Find a partner" matching (by ELO range, location, availability, playing style)

    ✅ PL-F0417b ✅ PL-F0417b
  • F04.17.06 Shipped

    Partnership chemistry score (win rate together vs. individually)

    ✅ PL-F0417b ✅ PL-F0417b
  • F04.17.07 Shipped

    Partnership profile page (public)

    ✅ PL-F0417b ✅ PL-F0417b

Per-National Competition Structures

F04.18
Planned

Per-nation championship pathways, league hierarchies, discipline variants, age-class configurations, and official calendars.

How it works
  • F04.18.01 Shipped

    France - Championnat de France national → ligue → comité → club

    ✅ PL-F0418a ✅ PL-F0418a
  • F04.18.02 Shipped

    France - 4 championship categories (Tête-à-tête, Doublette, Triplette, Mixte)

    ✅ PL-F0418a ✅ PL-F0418a
  • F04.18.03 Shipped

    France - Jeu provençal as separate discipline

    ✅ PL-F0418a ✅ PL-F0418a
  • F04.18.04 Shipped

    Sweden - SM (Svenska Mästerskapen)

    ✅ PL-F0418a ✅ PL-F0418a
  • F04.18.05 Shipped

    Sweden - Elitserien / Division 1 / Division 2

    ✅ PL-F0418a ✅ PL-F0418a
  • F04.18.06 Shipped

    Germany - DPV Bundesliga + Landesligan

    ✅ PL-F0418a ✅ PL-F0418a
  • F04.18.07 Shipped

    Norway - NM med kvalspel (flat hierarchy, federation-sanctioned)

    ✅ PL-F0418b ✅ PL-F0418b
  • F04.18.08 Shipped

    Spain - Campeonato de España (autonomous federation → national, Swiss system)

    ✅ PL-F0418b ✅ PL-F0418b
  • F04.18.09 Shipped

    FIPJP - VM-kvalifikationer per nation (national → continental → world)

    ✅ PL-F0418b ✅ PL-F0418b
  • F04.18.10 Shipped

    CEP - EM-kvalifikationer per nation (national → European Championship)

    ✅ PL-F0418b ✅ PL-F0418b
  • F04.18.11 Shipped

    Per-tenant tävlingskategorier (åldersklass) — Norway + Spain age classes

    ✅ PL-F0418b ✅ PL-F0418b
  • F04.18.12 Shipped

    Per-tenant officiell tävlingskalender — Norway + Spain calendars

    ✅ PL-F0418b ✅ PL-F0418b

Mêlée och avancerade tävlingsformat

F04.19
Planned

Multi-round mêlée tournaments, score-based pairing, 1v1 mêlée, cup formats, round robin, Swiss ELO, single/double elimination, poules→knockout, and Concours A/B/C.

How it works
  • F04.19.01 Shipped

    Mêlée draw algorithm (slumpad lagdragning)

    ✅ PL-F0419a ✅ PL-F0419a
  • F04.19.02 Shipped

    Supermêlée med score-based pairing

    ✅ PL-F0419a ✅ PL-F0419a
  • F04.19.03 Shipped

    Tête-à-tête mêlée variation

    ✅ PL-F0419a ✅ PL-F0419a
  • F04.19.04 Shipped

    Coupe de France-format

    ✅ PL-F0419a ✅ PL-F0419a
  • F04.19.05 Shipped

    National Cup-format per nation

    ✅ PL-F0419a ✅ PL-F0419a
  • F04.19.06 Shipped

    Round robin (alla mot alla)

    ✅ PL-F0419a ✅ PL-F0419a
  • F04.19.07 Shipped

    Schweizer system med ELO-baserad pairing

    ✅ PL-F0419b ✅ PL-F0419b
  • F04.19.08 Shipped

    Single elimination bracket

    ✅ PL-F0419b ✅ PL-F0419b
  • F04.19.09 Shipped

    Double elimination bracket

    ✅ PL-F0419b ✅ PL-F0419b
  • F04.19.10 Shipped

    Pool play → knockout-format

    ✅ PL-F0419b ✅ PL-F0419b
  • F04.19.11 Shipped

    Concours A/B/C med trösteklass

    ✅ PL-F0419b ✅ PL-F0419b

Official Rankings per Nation

F04.20
Planned

Official ranking preset definitions and provisioning for 5 nations/bodies. Static preset configurations with one-click provisioning to RankingConfig documents. Per-tenant formula config, cross-tenant ELO, ranking trends, qualification snapshots, and dispute workflow.

How it works
  • F04.20.01 Shipped

    France — Classement national + ligues + comités (24 mo, linear decay)

    ✅ PL-F0420a ✅ PL-F0420a
  • F04.20.02 Shipped

    Sverige — SM-ranking (12 mo, no decay) + nationell ELO

    ✅ PL-F0420a ✅ PL-F0420a
  • F04.20.03 Shipped

    Deutschland — DPV-Rangliste (36 mo, weighted_years 3/2/1, A-D multipliers)

    ✅ PL-F0420a ✅ PL-F0420a
  • F04.20.04 Shipped

    FIPJP — World ranking (cross-tenant, world scope)

    ✅ PL-F0420a ✅ PL-F0420a
  • F04.20.05 Shipped

    CEP — Continental ranking (cross-tenant, continental scope)

    ✅ PL-F0420a ✅ PL-F0420a
  • F04.20.06 Shipped

    Per-tenant ranking formula (point model with bonus rules, caps, thresholds)

    ✅ PL-F0420b ✅ PL-F0420b
  • F04.20.07 Shipped

    Cross-tenant ELO for casual matches (global singleton config, margin modifier)

    ✅ PL-F0420b ✅ PL-F0420b
  • F04.20.08 Shipped

    Ranking history and trends (direction, moving average, velocity)

    ✅ PL-F0420b ✅ PL-F0420b
  • F04.20.09 Shipped

    Ranking snapshot at qualification deadline (locked freeze for team selection)

    ✅ PL-F0420b ✅ PL-F0420b
  • F04.20.10 Shipped

    Dispute ranking points (formal process with review/resolve workflow)

    ✅ PL-F0420b ✅ PL-F0420b

Live Scoring & Official Result Entry

F04.21
Planned

Real-time scoring infrastructure: mobile-first live entry with offline support, official scorekeeper role with digital signing, real-time leaderboard, push notifications, score corrections with audit, score protests, walkover handling, and round timing.

How it works
  • F04.21.01 Shipped

    Live score entry on mobile with offline support

    ✅ PL-F0421a ✅ PL-F0421a
  • F04.21.02 Shipped

    Official scorekeeper role with digital signing

    ✅ PL-F0421a ✅ PL-F0421a
  • F04.21.03 Shipped

    Real-time leaderboard updates (SSE)

    ✅ PL-F0421a ✅ PL-F0421a
  • F04.21.04 Shipped

    Push notifications for match events (subscriptions)

    ✅ PL-F0421a ✅ PL-F0421a
  • F04.21.05 Shipped

    Score correction flow with audit

    ✅ PL-F0421b ✅ PL-F0421b
  • F04.21.06 Shipped

    Score protest from team captain

    ✅ PL-F0421b ✅ PL-F0421b
  • F04.21.07 Shipped

    Walkover and WO handling

    ✅ PL-F0421b ✅ PL-F0421b
  • F04.21.08 Shipped

    Round timing per round (45 min default)

    ✅ PL-F0421b ✅ PL-F0421b
  • F04.21.20 Shipped

    VolunteerScoreEntry — parallel light-weight scoring surface optimised for volunteers, big-button UI, idempotent on (device_id, client_ts, end_number), soft-validation with stable warning codes (zero_score_end / both_teams_scored / score_above_13 / missing_end_<n>) — PL-T222

    ✅ PL-T222 ✅ PL-T222
  • F04.21.21 Shipped

    Volunteer offline cache — exponential-backoff retry-loop, server-idempotency on tuple guarantees no duplicates, sync-status badge (synced/pending/error) — PL-T222

    ✅ PL-T222 ✅ PL-T222
  • F04.21.22 Shipped

    Dispute flagging — measure / dead_end / timeout / rule_question / other, sets is_dispute=true + needs_review, dispatchar scoring.dispute_raised till court-marshal via F09.02 — PL-T222

    ✅ PL-T222 ✅ PL-T222
  • F04.21.23 Shipped

    BulkScoreUpload — fixed-column CSV (competition_match_ref,end_number,team_a_points,team_b_points,scorer_note), parse-job med per-row error/warning, atomic-per-match apply, status uploaded/parsing/validated/applied/partially_applied/failed — PL-T222

    ✅ PL-T222 ✅ PL-T222

External Event Proxying

F04.22
Planned

Cross-tenant event display: subscribe to GLOBAL-published competitions from other tenants, cache metadata locally, sync every 15 min, render in CMS upcoming-events widget with source badge and override support.

How it works
  • F04.22.01 Shipped

    ExternalEventProxy model with sync lifecycle (OK/STALE/FAILED/SOURCE_DELETED)

    ✅ PL-T008 ✅ PL-T008
  • F04.22.02 Shipped

    Admin subscribe/unsubscribe to global competitions

    ✅ PL-T008 ✅ PL-T008
  • F04.22.03 Shipped

    Local overrides (title, translation, note) per proxy

    ✅ PL-T008 ✅ PL-T008
  • F04.22.04 Shipped

    Background sync job (15 min, batch 50, exponential backoff)

    ✅ PL-T008 ✅ PL-T008
  • F04.22.05 Shipped

    Public upcoming-events endpoint (union of own + proxied)

    ✅ PL-T008 ✅ PL-T008
  • F04.22.06 Shipped

    CMS widget renders proxy events with source badge and link

    ✅ PL-T008 ✅ PL-T008
  • F04.22.07 Shipped

    Admin UI with status colors, search, subscribe, resync

    ✅ PL-T008 ✅ PL-T008
  • F04.22.08 Shipped

    Manual resync with rate limiting (1/min per proxy)

    ✅ PL-T008 ✅ PL-T008

Para-pétanque Classification & Adapted Competition

F04.23
Planned

FIPJP-aligned para-pétanque classification system: per-player

  • F04.23.01 Shipped

    ParaClassification model with FIPJP categories (W1/W2/W3/standing/visual/intellectual/open), status, validity window

    ✅ PL-T220 ✅ PL-T220
  • F04.23.02 Shipped

    ClassificationPanel with 3–5 members and required role coverage (medical+coach+admin)

    ✅ PL-T220 ✅ PL-T220
  • F04.23.03 Shipped

    ClassificationDecision with quorum, panel votes, reasoning, audit

    ✅ PL-T220 ✅ PL-T220
  • F04.23.04 Shipped

    Cross-tenant verify endpoint mirroring license-verify (FIPJP-recognised panels only)

    ✅ PL-T220 ✅ PL-T220
  • F04.23.05 Shipped

    Public adapted-competition discovery (/public/competitions?adapted=true) with category + accessibility filters

    ✅ PL-T220 ✅ PL-T220
  • F04.23.06 Shipped

    Daily expiry cron + 30/14/7-day renewal-reminder notifications

    ✅ PL-T220 ✅ PL-T220