Placement Audit (Current Surfaces)¶
Date: 2026-02-28
Framework: Feature Placement PR Checklist and League/Lab/Dimensions Brief
Scope¶
Audited: - Global IA + product framing - / (current topology home) - /team/[slug] - /lab - /arena (current simulation page)
Not audited in depth: - API reliability/performance - visual polish/accessibility - backend data quality
Hard-Gate + Score Matrix¶
Legend: - Gates G1..G7 map to checklist hard gates in order. - P = pass, F = fail. - Score is rubric score out of 14.
| Surface | Intended station | G1 | G2 | G3 | G4 | G5 | G6 | G7 | Score |
|---|---|---|---|---|---|---|---|---|---|
Global IA + branding (nav, header, metadata) | cross-cutting | F | F | F | F | F | F | F | 1/14 |
Home / (Signal Topology) | League | F | F | P | P | P | F | P | 10/14 |
Team /team/[slug] | League | F | P | P | P | P | F | P | 10/14 |
Lab /lab | Lab | P | F | P | F | P | F | P | 11/14 |
Arena /arena (future Dimensions) | Dimensions | F | F | P | F | P | F | P | 8/14 |
Findings (Ordered by Severity)¶
1) Taxonomy is still old; IA contract is not implemented¶
Severity: High
- Navigation still exposes
Topology / Lab / Arenainstead ofLeague / Lab / Dimensionsin navigation.ts. - Header brand and logic are still
NWSL Observatory+isTopologyin ObservatoryBar.tsx and ObservatoryBar.tsx. - Site metadata still uses old framing in layout.tsx.
- Page metadata still uses
Signal TopologyandSimulation Arenain page.tsx and arena/page.tsx.
Impact: - Fails G1 (primary station explicit) across most surfaces. - Users cannot reliably infer the new knowledge framework from navigation.
2) Dimensions is positioned as simulation, but the engine is still Monte Carlo heuristics (not transformer/state model)¶
Severity: High
- Engine declares itself as Monte Carlo in simEngine.ts.
- Core generation uses Poisson sampling with handcrafted factors in simEngine.ts and simEngine.ts.
Impact: - Mismatch with intended Dimensions positioning (alternate-state model / transformer-driven futures). - Risks user trust if narrative implies a more advanced generative engine than implemented.
3) Dimensions uncertainty contract is incomplete¶
Severity: High
- Controls expose parameters (
runs,tempo,volatility,signalInfluence) in SimulationSetup.tsx, but assumptions are not surfaced as a formal model card/caveat block. - Output shows distributions in SimulationPlayback.tsx, but only includes a seeded determinism note in SimulationPlayback.tsx.
Impact: - Fails G4 for Dimensions (probabilistic output is present, but calibration/assumptions are opaque).
4) Lab has uneven explainability between team and player contexts¶
Severity: Medium
- Team context gets confidence/caveat panels via interpretation in LeagueScatter.tsx.
- Player context switches to canvas mode in ScatterLab.tsx with no equivalent uncertainty/explanation layer in ScatterCanvas.tsx.
Impact: - Partial fail on G4 in Lab; confidence semantics depend on tab, not model behavior.
5) League overlay contains placeholder semantics¶
Severity: Medium
- Legend labels are placeholders (
Something,Possibly,Anything) in TopologyOverlay.tsx.
Impact: - Increases L_league ambiguity term. - Weakens trust on the canonical “state” page.
6) Team page CTAs use old station names¶
Severity: Medium
- CTA labels still say
Simulate in ArenaandBack to Topologyin TeamProfile.tsx.
Impact: - Cross-station transitions exist, but language is inconsistent with target framework.
7) Sitemap route contract is stale and mismatched to actual app routes¶
Severity: Medium
- Sitemap lists
/standings,/teams,/matches,/signals,/analyticsand/teams/{slug}in sitemap.ts, while the app currently routes to/,/lab,/arena,/team/[slug].
Impact: - Discovery/SEO dead links. - Adds product confusion and monitoring noise.
Strengths to Keep¶
- Lab already has strong control surfaces and reproducible state via
useLabUrlSyncin ScatterLab.tsx. - League page interaction is appropriately read/compare oriented in SignalTerrain.tsx.
- Arena already presents probabilistic distributions (not single-point outcomes) in SimulationPlayback.tsx.
Recommended Fix Sequence¶
- IA rename + route normalization
- Implement
League / Lab / Dimensions. - Add
/dimensionsroute and redirect/arena. -
Update metadata, CTAs, and header copy.
-
Station contracts in UI
- Add concise station explainer blocks at top of each page.
-
Add formal uncertainty/model card for
LabandDimensions. -
Dimensions engine honesty
- Short term: clearly label current engine as Monte Carlo scenario model.
-
Medium term: introduce transformer/state-transition model and versioned model disclosure.
-
League clarity cleanup
-
Replace placeholder legend semantics and tie labels to actual pattern ontology.
-
Routing/discovery cleanup
- Align sitemap to real routes and canonical URL structure.