# SPEC — ORDER B: edge_pct DISPLAY RETIREMENT (shipped) + PROMOTION GATE (**NOT PASSED**) 2026-07-31. The champion grade was **NOT flipped**. Projection, p_win, and the CLV instrument untouched. Push scoring untouched. --- ## PART 1 — THE PROMOTION GATE: **THREE OF FOUR PREREQUISITES FAIL. NO FLIP.** The order states Review Zero is a gate ("all must pass before flip") and that 0.2 failing means **STOP**. Checked honestly, against code, not memory: | gate | result | |---|---| | **0.1** scores measured or estimated? | **ESTIMATED priors, transcribed from the founding spec.** And the premise's cited values **are not in the code**: the module holds `nfl:passing_yards .85 · nba:points .80 · mlb:strikeouts .60 · mlb:total_bases .55 · nba:role_player .55`. There is **no NBA 0.72 and no WNBA 0.68** — no WNBA score exists at all. | | **0.2** version-boundary tag landed? | ❌ **NO.** `config/modelEras.js` contains **zero** references to shading. It was deliberately not applied (twice), because nothing had been promoted, and that was reported both times. **The order's own rule: STOP.** | | **0.3** rollback flag exists? | ❌ **NO.** Zero occurrences of `SHADING_ENABLED` / `EDGE_SHADING` / `shadingEnabled` anywhere in `src/`. There is no flag to revert with. | | **0.4** takeable tags landed? | ✅ **YES** — migration 034, 1,246 of 1,254 rows tagged, floor recorded per row. | ### The approved delta does not match the measured delta The premise approves "re-letters **43.6%** of grades in the correct direction (efficient markets tighten, soft hold)." Measured on all 1,250 live ledger rows: | measure | approved | **actual** | |---|---|---| | grades changed | 43.6% | **97.4% (1,217 of 1,250)** | | direction | efficient tighten / soft hold | **79.8% move UP**, 17.6% down | | resulting A-family | — | **79.0% A** (MLB **93.4%**) vs champion 0.2% | | **rows actually shaded by efficiency** | — | **0 of 1,250** | **The entire re-letter comes from switching to edge-vs-fixed-bar grading — not from efficiency shading, which touches zero live rows** (96.5% of markets are unscored → f=1, and the one scored market present, `mlb:total_bases`, is the anchor where f=1.0 by construction). So the mechanism being promoted is **inert**, while the thing that would actually change the board is an unapproved grading-basis switch riding along — which the order's own "no new scaling changes riding along" guardrail forbids. ### Why this is a refusal to flip, not a delay Promoting would re-letter **97.4%** of an append-only public record, moving **79.8% of grades UP** and minting A's on **79%** of the board — on a letter whose measured correlation with outcomes is **r ≈ 0.005**. That is the precise scenario CLAUDE.md's permanent founder ruling forbids: *"Minting A's without new information is a relabelled B sold as an A and it corrupts an append-only ledger."* No new information is present here — 0 rows are shaded. **To unblock:** land the version-boundary tag, add a rollback flag, replace the input (`p_win` vs `fair_prob` — a real price-aware edge) so the fixed bar is meaningful, and fit scores for markets we actually grade. Then re-measure and re-approve against the true delta. --- ## PART 2 — ORDER B: edge_pct DISPLAY RETIRED (**SHIPPED**) Independent of the promotion, and a live falsehood, so it shipped in full. **Retired (display only):** - `GradeResultCard` confidence strip — the `+X% edge` figure. - `GradeResultCard` stat row — `EDGE` is now honest-absent `—`. - `GradeResultCard` alt-ladder rung — the same price-free number; the rung's **line and grade (real model output) still render**. - `SoccerGradeResult` — the `· +X.X% edge` clause. **Deliberately KEPT:** `DeskShowcase` (already honest — nulls anything past the sane cap). **Computation and sort survive, by design.** Backend `edgePctFor`, web `computeEdge`, and the board's **signed-edge sort fallback** (`descNullsLast(a.edge, b.edge)`) are all intact — deleting them would re-break the grade-board sort fixed on 2026-07-29. A test asserts all three survive and that the sort still orders `agrees → disagrees → absent`. **Two build-breakers found and fixed:** retiring the display orphaned the `edgeColor` import in `GradeResultCard` and the `edge_pct` destructure in `SoccerGradeResult`. `edge_pct` stays on the props **contract** (callers still pass it, the backend still computes it) — only the destructure for display was dropped. **Two pre-existing tests were SUPERSEDED, not deleted** (`ds4Billboards`, `colorContract`): they asserted the edge figure is coloured by sign, which was correct while a figure was shown. They now assert the stronger property — **no edge percentage renders at all**. `edgeColor` itself is untouched and still enforced for its other consumers (`MarketBreadth`). --- ## VERIFY Champion grade path **byte-identical** (diff empty across `intelligence/`, `gradeSlateService`, `snapshotService`) — **no flip performed**. Projection, `p_win`, CLV instrument untouched. **314 suites / 3,908 tests green** (9 new), **web build exit 0**. ## TAGS VERIFIED: gates 0.1–0.4; the 97.4%/79.8%-up/0-shaded delta; the display retirement + surviving computation/sort. CANNOT DETERMINE: none. **BLOCKED: the promotion — 0.2 (version tag) and 0.3 (rollback flag) are unmet, and the measured delta does not match the approved one.**