Disciplinary System
En bref
The Disciplinary System is the federation's end-to-end judicial pipeline for misconduct, cheating, doping, violence, and abuse cases. It runs incident reporting through classification, investigation, hearing, decision, sanction enforcement, and multi-tier appeal, with a full immutable audit trail, configurable alternative dispute resolution paths, and cross-federation sanction sharing so that suspended individuals cannot circumvent active bans by competing elsewhere.
Comment ça fonctionne
Any authorised actor (umpire, official, player, or registered observer) may file an incident report directly from the competition app or web console. The report is classified at intake into one of the established categories: misconduct, cheating, doping, violence, or abuse. Classification routes the case to the correct commission and triggers the appropriate procedural template (deadlines, required evidence, mandatory hearing, anonymisation rules).
A disciplinary case progresses through clearly defined states: open, under investigation, hearing scheduled, decided, closed. During investigation, the assigned commission attaches evidence (photographs, video clips, witness statements, umpire reports) and may request additional submissions from involved parties. Hearings are scheduled with all relevant parties summoned through the platform; the hearing record captures attendees, the questions raised, and the testimony heard. The commission issues a sanction drawn from the catalogue: warning, fine, suspension for a defined period, ban, or competition-points deduction. Some federations support an alternative dispute resolution path, for instance Spain's arbitraje de equidad with a three-arbiter panel, and the configurable escalation rules determine when ADR replaces full proceedings.
Once a sanction is recorded, enforcement is automatic. Active suspensions block the individual from being entered into any competition during the suspension period; the entry pipeline rejects them and notifies the organiser. Notification fans out to all relevant parties: the sanctioned individual, their club, the home federation, and (for cross-tenant cases) any federations where the person is licensed. The sanction register is searchable by federation level, with expiry dates triggering automatic rehabilitation when the suspension lapses.
Appeals escalate to higher federation levels following the configured chain. Every action, document, and state transition is captured in an immutable audit trail so that the case file is forensically complete should it eventually reach the Court of Arbitration for Sport.
Capacités clés
- Multi-channel incident reporting from umpires, officials, players, and observers with classification-driven routing
- Full case lifecycle (open, investigate, hearing, decide, close) with hearing scheduling, summons, and testimony capture
- Sanction catalogue covering warnings, fines, suspensions, bans, and point deductions
- Automatic enforcement of active suspensions across the entry pipeline
- Cross-federation sanction sharing preventing forum shopping during a ban
- Configurable alternative dispute resolution paths (ADR/arbitration)
- Immutable audit trail across all disciplinary actions and appeal escalation
En pratique
An umpire files a violence-classified incident report at a regional event. The case auto-routes to the regional disciplinary commission, which gathers two witness statements and a video clip from the official broadcast. A hearing is convened within the procedural deadline; the player attends, the commission deliberates, and a six-month suspension is issued from the sanction catalogue.
The notification fans out to the player, club, and federation. Two weeks later the player attempts to enter a competition in a neighbouring federation; the cross-tenant sanction registry blocks the entry and notifies the receiving organiser. The player files an appeal, which escalates one tier under the configured chain.
Fonctionnalités de ce sous-système
32| ID | Status | Fonctionnalités |
|---|---|---|
| F05.05.01 | Livré | Incident reporting (by umpire, official, player, or observer) ✅ PL-F0505a |
| F05.05.02 | Livré | Incident classification (misconduct, cheating, doping, violence, abuse) ✅ PL-F0505a |
| F05.05.03 | Livré | Disciplinary case management (open > investigate > hearing > decision) ✅ PL-F0505a |
| F05.05.04 | Livré | Hearing scheduling and management ✅ PL-F0505a |
| F05.05.05 | Livré | Evidence attachment (photos, videos, witness statements) ✅ PL-F0505a |
| F05.05.06 | Livré | Sanction types (warning, fine, suspension, ban, point deduction) ✅ PL-F0505b |
| F05.05.07 | Livré | Sanction enforcement (automatic competition ban during suspension) ✅ PL-F0505b |
| F05.05.08 | Livré | Appeal process (to higher federation level) ✅ PL-F0505b |
| F05.05.09 | Livré | Sanction notification to all relevant parties ✅ PL-F0505b |
| F05.05.10 | Livré | Sanction register (searchable by federation level) ✅ PL-F0505b |
| F05.05.11 | Livré | Sanction expiry and rehabilitation tracking ✅ PL-F0505c |
| F05.05.12 | Livré | Cross-federation sanction sharing (suspended player cannot play elsewhere) ✅ PL-F0505c |
| F05.05.13 | Livré | Full audit trail on all disciplinary actions ✅ PL-F0505c |
| F05.05.14 | Livré | Alternative dispute resolution — configurable per tenant: formal arbitration/mediation as alternative to disciplinary proceedings (Spain: arbitraje de equidad with 3 arbiters). Configurable escalation path. ✅ PL-F0505c |
| F05.05.15 | Livré | Discipline case-spine — full state-machine: draft → submitted → triage → evidence_collection → hearing_scheduled → hearing_in_progress → deliberation → decision_issued → appeal_window_open → appeal_window_closed/under_appeal → appeal_decision_issued → archived (+ withdrawn/dismissed/escalated side-paths). ✅ PL-T213 |
| F05.05.16 | Livré | Role-template-based intake — five role-driven intake forms (club_referee, court_marshal, event_marshal, jury_president, public) with required-field validation per role. ✅ PL-T213 |
| F05.05.17 | Livré | Severity auto-classification — derives severity_hint from offence-code → severity rank table at submit time; manual override requires rationale. ✅ PL-T213 |
| F05.05.18 | Livré | Tenant offence vocabulary — per-tenant offence taxonomy (codes, names, severity defaults) layered on canonical FIPJP offences; configurable per federation. ✅ PL-T213 |
| F05.05.19 | Livré | Tamper-evident evidence locker — SHA-256 hash chain per case (chain_hash = sha256(prev | content_hash || iso(submitted_at) || submitted_by)); periodic verifier flags integrity_alert. | ✅ PL-T213 |
| F05.05.20 | Livré | WORM evidence blob storage — Azure Blob immutability policy via EvidenceBlobStore protocol; locked retention (default 10 years), MIME-type allow-list, EXIF stripping for photos. ✅ PL-T213 |
| F05.05.21 | Livré | Evidence supersede / withdraw / redact — versioned evidence with chain-preserving supersede, withdrawal marker, and GDPR-redaction overlay (original blob untouched). ✅ PL-T213 |
| F05.05.22 | Livré | Sanction catalog with recommended-range engine — propose-sanction validates against precedent-derived [min,max] window; deviation requires rationale. ✅ PL-T213 |
| F05.05.23 | Livré | Panel decision with optimistic locking — confirm_panel_decision requires expected_deliberation_version; majority-vote enforced; auto-advances case to appeal_window_open. ✅ PL-T213 |
| F05.05.24 | Livré | Sanction lifecycle ticks — appeal_window_close_tick (5 min), sanction_expiry_tick (15 min), automatic pending_appeal_window → active → expired. ✅ PL-T213 |
| F05.05.25 | Livré | Formal appeals workflow — file → admissibility → hearing → decided (overturned/modified/upheld/dismissed); cascades sanction status; opens next-tier escalation window if upheld/modified. ✅ PL-T213 |
| F05.05.26 | Livré | Cross-tenant suspension registry — published to FIPJP tenant, signed payload (HMAC-SHA512 stub → ES512 in prod), replicated to subscriber LocalSuspensionCache for O(1) license checks. ✅ PL-T213 |
| F05.05.27 | Livré | Cross-tenant fan-out reconciler — every 4 h: retries pending fan-outs (max 8 attempts), expires entries past effective_until, ack tracking per tenant. ✅ PL-T213 |
| F05.05.28 | Livré | Precedent materializer — every 1 h: snapshots terminal cases into SanctionPrecedent registry (anonymised case-id hash) so search & recommended-range stay warm. ✅ PL-T213 |
| F05.05.29 | Livré | Public protocol publication — anonymised, locked Markdown ProtocolDocument; refuses safeguarding cases and minor subjects; corrections appended as immutable diffs (original markdown preserved). ✅ PL-T213 |
| F05.05.30 | Livré | GDPR legal-hold + retention sweep — cases default legal_hold=True; case_retention_sweep (24 h) flags expired non-held archived cases for purge. ✅ PL-T213 |
| F05.05.31 | Livré | Discipline audit dual-write — every action writes both DisciplinaryAuditEntry (domain-specific) and platform AuditLog. ✅ PL-T213 |
| F05.05.32 | Livré | Self-service player view — /me/discipline/cases lists own cases & sanctions; /me/discipline/sanctions/{id}/appeal files appeal within window. ✅ PL-T213 |
Parties prenantes qui ont besoin de ce sous-système
Apparaît dans 3 analyses de parties prenantes