Powerwise

Site guide

Documentation

A walkthrough of every section on Powerwise — what each page shows, when to use it, and how the pieces connect from pipeline to board meeting.

What this site is for

Powerwise is a pre-season scheduling and ranking aid for the Missouri Girls D1 lacrosse board. It anchors on last year's finish, adjusts for graduation and returning talent, surfaces flags where data and eye test may disagree, and lets the board codify votes during meetings.

  • All numbers come from glax-pipeline (run_glax_analysis.py) and land in Postgres via import_data.py.
  • The home page shows top-10 projection, flag summary, and recent edits.
  • Default forecast year is 2027; change it with the year picker on home and strength.

Typical board workflow

A sensible order for a ranking prep session:

  • 1. Open 2027 strength — scan flags and rank deltas.
  • 2. Open 2027 board — log in, review overrides, capture votes.
  • 3. Drill into flagged teams via team profiles, players, and graduation.
  • 4. Check schedule-risk for blowout pairings before scheduling meetings.
  • 5. Cite backtest or validation when challenged on methodology.

Team profiles

Every team name on the strength or board table links to /team/{slug}. The profile combines projected power, player impact, graduation loss, and schedule context in one place. Coaches can edit roster metadata at /team/{slug}/profile.

  • Slug is derived from the team name (e.g. /team/eureka).
  • Use team pages to prepare talking points for a single program.

Coach ballot & board votes

Coaches submit preseason rankings via the Coach ballot button in the header. Board members can use /ranking/{year}/vote for drag-rank ballots. Admins publish coach aggregates from /admin/coach-votes when ready.

  • Coach login: /vote/login then /vote/2027.
  • Published coach ranks appear on the board view.

Edit mode, workspaces & audit

Log in with the site password to enter edit mode. Editors can override board ranks, add program notes, manage the glossary, and switch between draft workspaces and the canonical league board.

  • Changes are logged — see Recent edits on the home page.
  • Draft workspaces: create scenarios without affecting the league board until published.
  • Board notebook (editors): attach meeting notes to teams in a workspace.

Additional guides (not in main nav)

Some runbooks live as markdown docs with their own routes:

  • /schedule-guide — AD schedule-building cheat sheet (linked from schedule-risk).
  • /seasonal-refresh — end-of-season pipeline refresh runbook.

Data pipeline connection

The website reads from Neon Postgres, not from CSV files at runtime. After running the glax-pipeline, execute website/scripts/import_data.py to refresh tables, markdown docs, and the data explorer.

  • Smoke-test locally: uvicorn app.main:app then hit /healthz.
  • See website/README.md for full setup and import steps.

Navigation group

Dashboards

Pre-season views the board uses to compare teams, spot schedule problems, and prepare for ranking meetings. Start with strength and board, then drill into players and graduation when a flag needs context.

Main conversation table for the forecast season.

Shows every team ranked by projected power with prior finish, recommended rank, margin and RPI inputs, domain splits, turnover, and flag codes. This is the table you argue from before opening the board view.

  • Click a team name for the full profile (roster, schedule, graduation).
  • Column headers have glossary tooltips — hover or click any term.
  • Use the year picker or URL (/strength/2026) for backtest seasons.

Board votes, flags, and inline overrides.

Same underlying data as strength, oriented for the ranking meeting: board-voted rank, program notes, flag severity, and HTMX inline editing when logged in. Editors can override recommended ranks and attach notes that persist in the database.

  • Log in to edit ranks and notes; changes are audited on the home page.
  • Draft workspaces let you try scenarios without touching the league board.
  • Coach ballot ranks appear here when published.

Conference tiers and cluster views for realignment talks.

Groups teams by schedule-strength clusters and conference membership so you can see who plays whom at similar competitive levels. Useful when discussing conference moves or scheduling philosophy.

  • Filter by forecast year to match the strength board.

Pairwise expected margins and blowout flags.

Matrix of every team vs every opponent with projected goal differential. Highlights matchups where the model expects a ±10 goal margin (blowout risk). Filter by schedule cluster to focus on a scheduling tier.

  • See also the Schedule building cheat sheet (/schedule-guide).
  • Shift watchlist rows link teams whose schedules changed materially.

Per-player offensive share and impact scores.

Browse returning and graduating players by team and position. Impact scores summarize how much each player contributed to team offense; useful when validating graduation flags or roster turnover stories.

  • Filter by team or position to prep for a single-program conversation.

Departure shares and roster turnover by team.

Shows who is leaving, what share of offense they carried, and aggregate turnover metrics per team. Pairs with the strength board turnover columns.

  • Cross-check HIGH_TURNOVER and similar flags on the board.

Navigation group

Model & history

Evidence that the model behaves sensibly, plus archived seasons for context. Use these pages to sanity-check projections and cite historical precedent.

2024–25 holdout vs actual finish; MAE by tier.

Runs the pipeline forward one year and compares projected ranks to how teams actually finished. Breaks error down by tier so you can see where the model is sharp vs noisy.

  • Lower MAE in top tiers means the anchor + adjustment story is working.

Rolling strength snapshots through the season.

Season-end RPI table plus week-by-week rolling values from completed games. Shows how strength evolved during the prior season.

Week-by-week Powerwise during a live season.

Demo of in-season ranking progression using bundled CSV snapshots. Illustrates how the model would move teams as results arrive.

  • Requires synced progression data under website/data/season-progression.

Archived seasons: rankings, results, teams, and model outputs.

Index of past seasons with tabs for overview, final rankings, game results, team pages, player stats, and model artifacts. Also includes career leaders, player search, and a data-gap tracker.

  • /historical/leaders — career and season stat leaders.
  • /historical/player — search any player profile.
  • /historical/gaps — missing stats and coverage notes.

Navigation group

Docs & data

Methodology, audit trail, and raw pipeline outputs. Read these when you need to defend a number or trace it back to a CSV column.

Plain-English math with glossary tooltips.

Non-technical walkthrough of how prior finish, graduation, returning talent, and margins combine into a recommended rank. Every defined term links to the glossary.

Auditor's manual: formulas, knobs, and CSV columns.

Complete reference for reviewers: every formula, weight, flag rule, and output column. Includes the flag codes table at the bottom of the page.

  • Use this when someone asks 'where does this number come from?'

Every pipeline CSV, searchable and sortable.

Imports all glax-pipeline/output/*.csv files into Postgres so you can filter and sort without opening spreadsheets. Each table name matches the file stem (e.g. ranking_recommendations_2027).

Roadmap, scope, and how the site fits the pipeline.

High-level project goals, what's in scope for MO Girls D1, and how run_glax_analysis.py feeds this site via import_data.py.