Skip to content

Feature: Configurable scoring system #50

@adrunkhuman

Description

@adrunkhuman

Current State

Scoring is hardcoded in utils/scoring.py:

  • Exact score: 3 pts
  • Correct outcome: 1 pt
  • Wrong: 0 pts
  • Late: 100% penalty (0 pts)

These values are referenced in help text and standings calculations.

Problem

Different leagues/communities want different scoring:

  • Some want 5/2/0 instead of 3/1/0
  • Some want partial credit for late predictions
  • Some want bonus points for streaks or exact scores on important matches

Scope

Make scoring rules configurable per-league/season without code changes.

Key Areas

  1. Storage: New table scoring_rules with fixture_id/season reference
  2. Admin commands: /admin config scoring to set point values
  3. Calculation: Update calculate_points() to use rules from DB
  4. Display: Dynamic help text showing current rules
  5. Migration: Default rules = current hardcoded values

Open Questions

  • Per-fixture rules or global per-league?
  • How to handle historical data if rules change mid-season?
  • Should we support "special" rules (e.g., double points for final match)?

Priority

Low - current hardcoded system works for most use cases. This is future-proofing.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions