Problem
Players have rich per-night stats on the pegboard (games played/won, wait time) but no aggregated view over time.
⚠️ Domain constraint — read before scoping
League matches are atomic ties with no per-player lineup or rubber-level data (CONTEXT.md: "Rubber-level scoring is out of scope"; a Team Squad is a roster, not a per-match lineup). So per-player league stats are not derivable from current data. Two very different interpretations:
- (a) Pegboard aggregate — sum a player's club-night stats across sessions over a date range. Derivable today from
pegboard_game_players / attendances. Note: the pegboard is league/season-agnostic (CONTEXT.md Club Night), so "season" framing doesn't quite fit — this would be per-club / per-period.
- (b) True per-player league stats — requires first adding per-match lineups and/or rubber-level scoring. That's a large, separate initiative that changes the Match model.
Recommendation
Scope (a) first (a real, shippable win); treat (b) as its own epic if league-level per-player data is genuinely wanted.
Open questions
- Which interpretation — (a), (b), or both phased?
- For (a): time window and where it surfaces (club Players tab / a player profile page)?
Problem
Players have rich per-night stats on the pegboard (games played/won, wait time) but no aggregated view over time.
League matches are atomic ties with no per-player lineup or rubber-level data (
CONTEXT.md: "Rubber-level scoring is out of scope"; a Team Squad is a roster, not a per-match lineup). So per-player league stats are not derivable from current data. Two very different interpretations:pegboard_game_players/ attendances. Note: the pegboard is league/season-agnostic (CONTEXT.mdClub Night), so "season" framing doesn't quite fit — this would be per-club / per-period.Recommendation
Scope (a) first (a real, shippable win); treat (b) as its own epic if league-level per-player data is genuinely wanted.
Open questions