---
title: Verify the stats page loss and finish shading after deploy
type: task
status: planned
description: >-
  Browser-verify the inverted percentile shading on the league stats page after the next deploy;
  confirm the loss and finish columns paint the right direction and Points Against stays untouched.
base_uri: user:task/league/verify-stats-page-shading-post-deploy.md
created_at: '2026-09-25T19:26:27.443Z'
entity_id: 3be34083-212c-408e-9fa0-81bd5265a838
owner_identity_uri: █████████████████████████
priority: Medium
public_read: true
tags:
  - user:tag/league-xo-football.md
updated_at: '2026-09-25T19:26:27.443Z'
visibility_analyzed_at: '2026-11-05T23:50:36.576Z'
---

## Plan

- [ ] Confirm the league bundle is deployed (`yarn deploy:all` in the league repo) — operator-gated, a session may not auto-deploy — then open `https://xo.football/leagues/1/stats`
- [ ] For each inverted column below, read two opposite cells (a 1-2 finish vs a 9-12 finish; a low loss count vs a high one) and confirm they paint opposite tiers
- [ ] Confirm `Points -> Against` is still shaded the old (higher-is-better) way and call that out as intentional
- [ ] Record a `[completion]` observation on this task and close it on success

## Context

The stats page had backwards percentile shading for columns whose high value is a bad outcome: the worst finish and the most losses glowed green because they shared the higher-is-better ladder. Commits `d7acd3a7a` and `fa313fdb3` on league `master` (2026-09-25) set `invert_order: true` on `PercentileMetric` for those fields so the ladder runs the way the column reads.

Columns now inverted:
- Career (All-Time) table: Regular Season `Best Finish`, `Worst Finish`; Overall Finish `Best`, `Worst`; Record `Losses`; All Play `Losses`
- League Stats (season) table: All Play `Losses`

The functional wiring is verified (the connected-component contract gate is green; the tier function was pair-tested with a control). The rendered page was NOT browser-verified before the wrapping session ended — that is this task.

## Steps

1. If the bundle is not yet deployed, run `yarn deploy:all` in `/Users/trashman/user-base/repository/active/league` (deploys are human-gated; ask the operator if unsure).
2. Browse to `https://xo.football/leagues/1/stats`; a `yarn dev:live` source build in the league repo is an acceptable pre-deploy alternative — say which surface you verified in the closing observation.
3. Read a best cell and a worst cell in each inverted column and compare the two tiers.

## Interpretation

- Every inverted column paints best-as-good and worst-as-bad: complete this task with a `[completion]` observation.
- One inverted column still paints best-as-bad (a 1st-place finish reddish, a 12th-place one green): the `invert_order: true` flag is missing on that field in `careerlog_group_fields` (or, for the season table, `season_fields`) in `app/views/pages/stats/stats.js`; re-open with the column named.
- `Points -> Against` shading is intentionally unchanged (operator ruling 2026-09-25); if it reads "wrong" that is expected, not a defect.

## Key locations

- `/Users/trashman/user-base/repository/active/league/app/views/pages/stats/stats.js` — `careerlog_group_fields` and `season_fields` carry the `invert_order` flags
- `/Users/trashman/user-base/repository/active/league/app/views/components/percentile-metric/percentile-tiers.js` — the ladder and `invert_order` semantics
- Commits: `d7acd3a7a`, `fa313fdb3` (league master)
