pog-mcp 0.9.4 → 0.9.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pog-mcp",
3
- "version": "0.9.4",
3
+ "version": "0.9.5",
4
4
  "type": "module",
5
5
  "description": "MCP server that lets an AI agent play Proof of Goal — wallet, sign-in, squad building, and matches as typed tools.",
6
6
  "license": "MIT",
@@ -2544,14 +2544,68 @@ that was an artefact of an unattainable +4 buff and is withdrawn.
2544
2544
  the short side drops by the same Δ. A real fatigued squad is uneven.
2545
2545
 
2546
2546
 
2547
- ## What load does a player actually accrue? (`engagement-load.mts` + `c2-team-load.ts`)
2547
+ ## What growth-neutral load would a player accrue? (`engagement-load.mts` + `c2-team-load.ts`)
2548
2548
 
2549
2549
  **This section does NOT close C-2.** An earlier version said it did; that was wrong. `τ` was
2550
2550
  never measured — the probe's 24h default was simply used — and the neutral point was left
2551
2551
  unchosen between its two branches. An F-1 implementer following that decision would have made
2552
2552
  a probe default the production recovery rate. And `τ` cannot be measured from this data: F-1
2553
2553
  does not exist, so production has no fatigue and there is no observed recovery curve to fit.
2554
- What measurement CAN do is price the choice, which is what the τ sweep does.
2554
+ What measurement CAN do is price the choices, which is what the τ sweep does. A third product
2555
+ choice sits beside τ and the neutral point: F-1 has not selected predicate C versus D. The
2556
+ published values are conditional on C; switching to D moves τ=24h median/p95 `L` by
2557
+ −5.3%/−10.4%. That measures the price of the choice, not which workload meaning the product wants.
2558
+
2559
+ ### Growth-leak gate: use a zero-growth shadow, not the real action trace
2560
+
2561
+ The old workload source was unsafe. Growth raises the hidden effective `Player.total`; an early
2562
+ decision then changes the engine branch and RNG-consumption order, so even an unsigned action
2563
+ count becomes a channel for `potentialBp`. On the production window, the effective-total trace
2564
+ and a zero-growth replay differed in **668/1,201 matches and 8,195 predicate-C player cells**.
2565
+ Before making that attribution, the probe rejects any snapshot slot whose `total − Σattrs` is
2566
+ not an integer in the growth model's supported 0..5 range, so it cannot silently erase an
2567
+ unsupported total-only modifier. The range does not identify provenance by itself: the current
2568
+ producer's code contract—that this validated innate input receives only the growth buff—supplies
2569
+ that fact, and the guard fails closed when the encoded input contradicts it.
2570
+ A plausible slot-wise 0..5 total-only variation inside the same public squad-hash boundary changed
2571
+ **787/1,201 matches and 9,485 cells**. That is a counterexample to option (b), not a claim that
2572
+ production used that synthetic vector.
2573
+
2574
+ The adopted source is option (a): copy the committed match snapshot, rebuild only each player's
2575
+ `total` as `pass + dribble + shoot + defense`, preserve condition, position, takers, fair-play
2576
+ tendency, name and slot order, and run a **separate deterministic engine instance** with the same
2577
+ stored seed and `gameFlg`. F-1 consumes unsigned engagement counters only from that shadow.
2578
+ The real result still uses the growth-buffed input; the shadow cannot change its score, events,
2579
+ ratings or growth. It is therefore a **zero-growth counterfactual workload**, never the action
2580
+ record of the match that happened. Runtime cost is one extra pure simulation per competitive match;
2581
+ F-1 still has to persist its counters atomically with completion. The workload timestamp must be
2582
+ growth-invariant too: fix every due match's first-condition-snapshot (claim-start) time before ANY
2583
+ real or shadow engine in that scheduler batch runs, then use that match's one stored value for both.
2584
+ A sequential loop that timestamps match B only after simulating match A would carry A's
2585
+ growth-dependent control-flow time into B's condition and is forbidden; F-1 therefore needs a
2586
+ claim-first/run-second phase. The batch epoch itself must not be a wall-clock read taken only after
2587
+ an earlier real engine finishes: it must be a persisted epoch independent of that earlier runtime,
2588
+ such as an externally scheduled tick, or else a public growth-independent time such as scheduled
2589
+ kickoff. Claim-first fixes ordering inside one batch; it does not make the delayed wall clock of a
2590
+ later batch invariant by itself. A post-simulation `completed_at` can react to
2591
+ the realized control-flow length; it is only this historical audit's proxy because the old rows do
2592
+ not carry the first-snapshot timestamp, not the production F-1 clock contract.
2593
+
2594
+ The boundary is an induction conditional on the growth-independent inputs committed before the
2595
+ match (participants, XI, seed, mode and the first-condition-snapshot time fixed in that pre-run
2596
+ batch). Any two inputs
2597
+ that differ only in hidden growth project to identical teams, so a deterministic engine and tally
2598
+ produce identical counters. A fixed initial load plus a growth-invariant EWMA increment and decay
2599
+ timestamp keeps the
2600
+ next load — and the condition derived from it — invariant too. Growth can change public results and
2601
+ therefore which later matches exist, but those results and appearances are already public; the
2602
+ condition observation adds no hidden-growth channel given that ledger. The audit applied the
2603
+ projection to the synthetic variations above and got byte-identical candidate-F-1 counters for
2604
+ **1,201/1,201 matches and all 2,402 sides**. Unit tests pin erasure, preservation, non-mutation and
2605
+ idempotence; `match-growth.test.ts` pins that the real `applyMatchGrowth` producer projects exactly
2606
+ back to its innate team, and the existing squad-hash test independently pins that `total` is outside
2607
+ the hash. This closes only the §3-5 prerequisite, not F-1/F-3/G-1/F-4's own implementation and
2608
+ exposure contracts.
2555
2609
 
2556
2610
  **The gate is not a per-mode ceiling — it is defined on the exposure-weighted mix.**
2557
2611
  `band-worstcase.mts` holds the canonical statement (`01-engine-expansion.md:319-329` puts
@@ -2564,8 +2618,8 @@ Three things are established:
2564
2618
 
2565
2619
  - **Carrying E's ceiling across exceeds NOTHING at τ=24h.** Each team state is turned into a
2566
2620
  fresh and a tired variant and both are played against the SAME REAL OPPONENTS on the same
2567
- seed, with the modes mixed by exposure: at τ=24h, 66 cells give **0 over, 3 established
2568
- below, 63 undecided**. The short τ exceed badly — **32 of 52** at 6h, **12 of 63** at 12h.
2621
+ seed, with the modes mixed by exposure: at τ=24h, 57 cells give **0 over, 3 established
2622
+ below, 54 undecided**. The short τ exceed badly — **33 of 57** at 6h, **12 of 55** at 12h.
2569
2623
  Only three established below is the price of the guarantee, not a smaller effect: the cell is
2570
2624
  now (team × curve × STATE RULE) with six opponents inside it, so the family is **1,836**. **"none over" and "all established below" are different claims**: the first says
2571
2625
  exceeding cannot be shown, the second says clearing can. τ=24h is the first; getting the
@@ -2574,10 +2628,10 @@ Three things are established:
2574
2628
  diverge** — knockout point estimates run about **1.5×**
2575
2629
  ladder's, which is why holding each mode to 5pp separately showed 38 of 78 over. That is
2576
2630
  what the earlier "almost every team, in knockout" conclusion was: **the wrong bar**.
2577
- - **So what this section delivers is a safe amplitude**: re-evaluating ALL 66 cells at each
2631
+ - **So what this section delivers is a safe amplitude**: re-evaluating all 57 realized cells at each
2578
2632
  candidate under a simultaneous correction and then validating the choice on INDEPENDENT
2579
- seeds gives **`b` ∈ 0.1988–0.2014** at τ=24h, worst cell 3.86pp. **All four τ values have
2580
- such an amplitude** (0.16–0.21), so fairness closes on the AMPLITUDE, not on the choice of τ.
2633
+ seeds gives **`b` ∈ 0.1911–0.1936** at τ=24h, worst cell 3.43pp. **All four τ values have
2634
+ such an amplitude** (0.15–0.20), so fairness closes on the AMPLITUDE, not on the choice of τ.
2581
2635
  That is **0.07×** the value derived by putting E's 0.2 on the median player. Testing one cell with a pointwise
2582
2636
  interval leaves winner's-curse bias: on a small sample a search that passed at 4.11pp
2583
2637
  validated at 10.48pp.
@@ -2585,10 +2639,10 @@ Three things are established:
2585
2639
  0.59pp [0.25, 0.93] and the paired difference is −0.43pp [−0.76, −0.10]: the prize does exceed
2586
2640
  the cost there. But **that is not where the decision lives.** A rested player can only recover
2587
2641
  the deficit the shipped amplitude creates, and the **safe amplitude produces a deficit of
2588
- 0.135** (τ=24h, the largest across all validated cells — taking it from the cell with the
2642
+ 0.133** (τ=24h, the largest across all validated cells — taking it from the cell with the
2589
2643
  largest BOUND instead understates what can be recovered). At that deficit the prize is
2590
- **0.16pp [−0.08, 0.41]** against a cheapest cost of **0.16pp [−0.36, 0.67]**, paired difference
2591
- **−0.00pp [−0.47, 0.46] — undecided**, and the same at all four τ (the eight repricing calls
2644
+ **0.16pp [−0.09, 0.40]** against a cheapest cost of **0.16pp [−0.36, 0.67]**, paired difference
2645
+ **0.00pp [−0.47, 0.47] — undecided**, and the same at all four τ (the eight repricing calls
2592
2646
  publish a prize interval and a paired-difference interval apiece, so all **16 intervals** split
2593
2647
  one 5% budget). The cost of a one-point-weaker slot runs 0.16 to
2594
2648
  2.21pp depending on WHICH point moves, with selection and publication on SEPARATE seed columns
@@ -2607,26 +2661,31 @@ TIMELINE gives the numbers above. The first two are withdrawn.
2607
2661
 
2608
2662
  ### λ_team × multiplier cannot produce L
2609
2663
 
2610
- That product multiplies two upper quantiles, so it puts `L_top` at 63 — while integrating
2611
- the real timeline puts the peak `L` at **p95 21.3** (observed max 50.5). The two quantiles do
2664
+ That product multiplies two upper quantiles, so it puts `L_top` at 67.2 — while integrating
2665
+ the zero-growth shadow on the committed fixture ledger ordered by the verified claim clock puts
2666
+ the at-appearance `L` at **p95 25.31**
2667
+ (observed max 57.45). The two quantiles do
2612
2668
  not arrive on the same player-day. And bucketing by day discards the SPACING, which is
2613
2669
  everything to an EWMA: cup fixtures cluster into a few hours after opening, so eight closely
2614
2670
  spaced calls do not equilibrate like eight spread over a day.
2615
2671
 
2616
2672
  So the layer is gone. `matches.input_snapshot` (#694) freezes the exact two teams handed to
2617
- the engine, so the last 30 days' **1,201 real kickoff matchups** are replayed in time order
2618
- and the decay is integrated over them:
2673
+ the engine, so the last 30 days' **1,201 real kickoff matchups** are projected to zero growth,
2674
+ replayed in time order on their stored RNG columns, and the decay is integrated over them:
2619
2675
 
2620
- L ← L·exp(−Δt/τ) + (that match's engagements)
2676
+ L ← L·exp(−Δt/τ) + (that match's zero-growth shadow engagements)
2621
2677
 
2622
2678
  Neither `λ` nor a multiplier appears. Each snapshot carries its own `gameFlg`, so the mode
2623
2679
  mix is right by construction — removing an estimate beats getting it right.
2624
2680
 
2625
2681
  Three further corrections: only **credited** appearances accumulate (a human ladder away side
2626
- and an AI cup entrant carry zero F-1 load, and an earlier version pooled them into the human
2627
- multiplier); each matchup is replayed **five times and averaged**, because a single replay's
2628
- integer counts read within-match noise as between-player heterogeneity; and the synthetic
2629
- grid is kept as a control only.
2682
+ carries zero F-1 load; cup sides, including AI entrants, are credited, while bots are excluded
2683
+ only from the human calibration cohort); the predicate-rate table replays each matchup's shadow
2684
+ **five times and averages only those rates**, because a single replay's integer counts read
2685
+ within-match noise as between-player heterogeneity; and the synthetic grid is kept as a control
2686
+ only. The same five fixed-fixture draws are kept as five integer observations for the one-match
2687
+ increment distribution. The EWMA timeline is different: it uses the one canonical integer shadow
2688
+ for each stored seed, never a five-replay average or a chain of derived-seed draws.
2630
2689
 
2631
2690
  **τ is therefore not a free parameter.** An earlier version used the equilibrium form and
2632
2691
  concluded τ cancels. On the timeline τ sets the load itself: every table below is τ=24h and
@@ -2681,22 +2740,23 @@ rather than assumed.
2681
2740
 
2682
2741
  ### F-1's predicate: counting actors only drops half, and concentrates the rest
2683
2742
 
2684
- Production replay, 1,201 matchups over 5 replays, 8,283 credited human player-matches:
2743
+ Production-matchup zero-growth shadow, 1,201 matchups over 5 replays,
2744
+ 8,283 credited human player-matches:
2685
2745
 
2686
2746
  | predicate | team total | p95 | median | p95/median | zero-load share |
2687
2747
  | --- | --- | --- | --- | --- | --- |
2688
- | **A.** hyoka credit sites, unsigned | 6.60 | 1.60 | 0.40 | **4.00** | 13% |
2689
- | **B.** actor only | 8.97 | 2.00 | 0.80 | **2.50** | 14% |
2690
- | **C.** actor + responder | **17.88** | 3.20 | 1.60 | **2.00** | **4%** |
2691
- | **D.** C without the ZP fallback | 16.61 | 2.80 | 1.40 | 2.00 | 4% |
2748
+ | **A.** hyoka credit sites, unsigned | 6.62 | 1.60 | 0.40 | **4.00** | 12% |
2749
+ | **B.** actor only | 8.91 | 2.00 | 0.80 | **2.50** | 14% |
2750
+ | **C.** actor + responder | **17.91** | 3.20 | 1.60 | **2.00** | **4%** |
2751
+ | **D.** C without the ZP fallback | 16.65 | 2.80 | 1.40 | 2.00 | 4% |
2692
2752
 
2693
2753
  The pool is credited HUMAN team-sides only — λ is a human-cohort figure, so the pool has to
2694
2754
  be as well. **This table alone uses expected RATES** (the 5-replay mean per player-match).
2695
- Counting realized integers instead would put a player whose rate is 0.4 into "no load" on
2755
+ Counting individual shadow draws instead would put a player whose rate is 0.4 into "no load" on
2696
2756
  every draw that came up 0, and that player does accrue load across matches; the question here
2697
2757
  is whether a player is STRUCTURALLY load-free, not how often they were picked in one draw.
2698
2758
  The timeline integration asks the opposite question and uses integers.
2699
- Counting actors only drops 49.8% of the engagement — (17.88−8.97)/17.88 — and what
2759
+ Counting actors only drops 50.3% of the engagement — (17.91−8.91)/17.91 — and what
2700
2760
  remains is MORE concentrated: p95/median 2.50 against 2.00 (4.00 at the hyoka sites), with a
2701
2761
  zero-load share three and a half times higher. Establishing §3-10's premise across the whole eleven needs responders counted.
2702
2762
 
@@ -2711,8 +2771,9 @@ Predicate D now subtracts fallbacks on BOTH sides of the contest: zone press pic
2711
2771
  through the fallback too, and an earlier version recorded only the responder's, so "C without
2712
2772
  the ZP fallback" was removing half of what it claimed.
2713
2773
 
2714
- **A and C rose again in this pass** A from 5.72 to **6.60**, C from 16.54 to **17.88** —
2715
- because two sites were not being counted at all:
2774
+ **The instrumentation correction remains valid.** In that effective-total run A moved from
2775
+ 5.72 to **6.60** and C from 16.54 to **17.88** because two sites were not being counted at all.
2776
+ The canonical values from the current single zero-growth-shadow run are **6.62 and 17.91**:
2716
2777
 
2717
2778
  - **The goal-scorer's credit does not go through `applyHyoka`.** `scoreGoal`
2718
2779
  (`engine.ts:1581`) writes `atk.hyoka[i] += 25 + rand(50)` DIRECTLY. Defining A as "the
@@ -2723,8 +2784,9 @@ because two sites were not being counted at all:
2723
2784
  In the production distribution: **2,894 selections, 13.2% of all defensive selections,
2724
2785
  7.1% of C**. If C means "defensive selections", this is one.
2725
2786
 
2726
- **B did not move by a single digit** (8.97 → 8.97), which is the control that says both fixes
2727
- touched only what they were meant to.
2787
+ **B did not move by a single digit in that correction** (8.97 → 8.97), which is the control
2788
+ that says both fixes touched only what they were meant to. It is **8.91** in the current shadow
2789
+ run; values from different workload sources are not combined into one control.
2728
2790
 
2729
2791
  ### The parameters
2730
2792
 
@@ -2734,11 +2796,11 @@ E capped the ATTAINABLE spread at 0.2, so the derivation fixes that and solves f
2734
2796
  143 human players over an **11-day window with 100% snapshot coverage** (2026-08-21 onward,
2735
2797
  1,201 matches), τ=24h.
2736
2798
 
2737
- **"the match that happened" is verified per match, not inferred from a date.** Calling a
2738
- stored-seed replay that only holds if the engine replaying it is the engine that ran it, and
2739
- when that breaks fixture consistency breaks with it a different knockout winner leaves a
2740
- team that cannot exist in that timeline still accruing load, exactly why the derived-seed
2741
- timelines were dropped.
2799
+ **The match-that-happened check is separate from the workload shadow.** First the effective-total
2800
+ snapshot and stored seed must reproduce the actual score, path and ratings, proving per match
2801
+ that today's instrumented engine matches the one that ran then. Only passing snapshots are
2802
+ projected to zero growth. The shadow uses the same RNG column but is never called the match that
2803
+ happened; the actual replay is evidence for engine-version and instrumentation compatibility.
2742
2804
 
2743
2805
  That boundary was once taken from `git log`'s COMMIT date. A commit date is not a deployment:
2744
2806
  it can ship after the following midnight, be rolled back, or roll out gradually. So the
@@ -2748,7 +2810,8 @@ it and the match happens the same way under today's engine, otherwise drop it. T
2748
2810
  golden-goal control flow, `b587f5d4` scene tags) did not change these matches' outcomes. The
2749
2811
  209 matches cut by date were fine.
2750
2812
 
2751
- **The comparison runs on three axes, each closer than the last to what this probe counts:**
2813
+ **The comparison runs on three axes, each closer than the last to the probe's instrumentation
2814
+ sites:**
2752
2815
 
2753
2816
  | axis | what it covers | this window |
2754
2817
  | --- | --- | --- |
@@ -2796,18 +2859,20 @@ AVERAGED the counts, and fed those fractional expectations into the EWMA. That i
2796
2859
  every published quantity — per-player peak, p95, the gate deficits — is a NONLINEAR
2797
2860
  functional, so `E[f(X)] ≠ f(E[X])`, and averaging erases within-match selection streaks and
2798
2861
  narrows the load vector. A narrower vector passes the gate more easily, so the error runs in
2799
- exactly the direction that says "safe". What runs now is **one realized timeline**, replaying
2800
- each match's stored `matches.rng_seed` (**1,201 of 1,201**) — that pass is not a different draw
2801
- of the same matchup but the match that happened.
2802
-
2803
- A middle version ran five timelines, four of them on derived seeds, and that was wrong too:
2804
- the fixture list comes from production and is fixed, so a derived seed that changes a knockout
2805
- winner leaves a team that **could not exist** in that timeline still accruing load in the next
2806
- round. Those four were inconsistent histories, and they were feeding the published medians and
2807
- the worst-state search. The cost of dropping them is that the across-draw spread is no longer
2808
- measurable here it needs bracket progression regenerated, which this probe does not do.
2809
-
2810
- Fixing the averaging moved the vectors up: max deficits rose 5–14% per cell and the per-match
2862
+ exactly the direction that says "safe". What runs now is **one committed fixture ledger ordered
2863
+ on the verified claim clock** with
2864
+ one zero-growth shadow per match, keyed by the stored `matches.rng_seed` (**1,201 of 1,201**).
2865
+ It uses the match's committed RNG column, but it is not the action trace that happened.
2866
+
2867
+ A middle version mixed in four derived-seed timelines. Those are not values F-1 would persist:
2868
+ the canonical workload is the deterministic shadow of each committed match seed. A shadow result
2869
+ does not decide the real result or bracket, so this is explicitly conditional on the public fixture
2870
+ ledger rather than a counterfactual tournament history. The cost of using only the canonical draw
2871
+ is that across-draw workload sensitivity is not measured here; that would be a separate resampling
2872
+ analysis and must not be mixed into the production workload value.
2873
+
2874
+ In the then-effective-total source, fixing the averaging moved the vectors up: max deficits rose
2875
+ 5–14% per cell and the per-match
2811
2876
  increment rose **31–33%**. The safe amplitude moved about 2% (measured then against the
2812
2877
  per-mode gate, so the absolute values differ from today's) — the conclusion was insensitive to
2813
2878
  the error, but that is only knowable after re-measuring.
@@ -2816,9 +2881,9 @@ the error, but that is only knowable after re-measuring.
2816
2881
 
2817
2882
  | instant | median | p95 | observed max |
2818
2883
  | --- | --- | --- | --- |
2819
- | **at appearance** (what cond reads, 7,139 reads) | **8.46** | **26.21** | 55.27 |
2820
- | at the window end (an arbitrary clock time) | 7.03 | 16.24 | — |
2821
- | path maximum (after its own match's engagements) | 19.35 | 38.17 | — |
2884
+ | **at appearance** (what cond reads, 7,139 reads) | **8.53** | **25.31** | 57.45 |
2885
+ | at the window end (an arbitrary clock time) | 7.25 | 15.39 | — |
2886
+ | path maximum (after its own match's engagements) | 19.93 | 36.23 | — |
2822
2887
 
2823
2888
  **The load event is not placed at kickoff.** F-1 pins the decay reference to the time the
2824
2889
  match's condition is FIRST SNAPSHOTTED, which is when the scheduler picks the match up —
@@ -2832,23 +2897,23 @@ So it is measured rather than argued. The published `claim` axis uses **1,144**
2832
2897
  `live` first, then that latter column records the completion transition. A per-row
2833
2898
  `claimSource` proves which hand supplied it; if either the completion time or its source is
2834
2899
  missing, the probe refuses the whole window instead of falling back to kickoff [Codex P2,
2835
- 2026-09-04]. Integrating on the explicit `kickoff` alternative instead gives median 8.66 and
2836
- p95 26.35 — **2.3%** and **0.5%** away.
2900
+ 2026-09-04]. Integrating on the explicit `kickoff` alternative instead gives median 8.71 and
2901
+ p95 25.35 — **2.2%** and **0.1%** away.
2837
2902
 
2838
2903
  **That comparison holds the warm-up boundary fixed.** Left to itself each variant recomputes
2839
2904
  `collectFrom` from its own first event — and switching the time base, or dropping the
2840
2905
  long-lag matches, is exactly what moves that first event. The printed difference would then be
2841
2906
  a clock effect PLUS a changed sample rather than the substitution alone. The published run's
2842
- boundary is passed in so every variant collects from the same absolute instant. Here the
2843
- correction moved the median by 0.01 (8.65 8.66): small, but measured rather than assumed.
2907
+ boundary is passed in so every variant collects from the same absolute instant; only that corrected
2908
+ alternative is reported, so values from different samples are not mixed.
2844
2909
 
2845
2910
  **Neither completion timestamp is the first claim.** The daemon PRESERVES a failed attempt's
2846
2911
  snapshot, resets the match to `scheduled`, and picks it up later, while cup `completed_at`
2847
2912
  records the attempt that finally succeeded. Playoff `finalized_at` is coarser still: it closes
2848
2913
  the live window roughly two to three minutes after the result was computed. The store has no
2849
2914
  first-snapshot column, so it cannot be recovered; excluding the **104** matches with more than
2850
- 60 minutes of lag gives median 8.66 and p95 27.26, **+2.4%** and **+4.0%**. The uncertainty on
2851
- this axis is 2–4%, and F-1 persisting the first snapshot time
2915
+ 60 minutes of lag gives median 8.72 and p95 26.15, **+2.2%** and **+3.3%**. The uncertainty on
2916
+ this axis is 2–3%, and F-1 persisting the first snapshot time
2852
2917
  removes it.
2853
2918
 
2854
2919
  **That this axis is a real claim clock is now proved by the ledger, not by lag** [Codex P2,
@@ -2879,7 +2944,7 @@ engine boundary) leaves players carrying load they arrived with, while the integ
2879
2944
  them at `L=0` — treating the boundary as a league-wide fatigue reset. An earlier version merely
2880
2945
  listed this as unmeasured; measured, it is real: discarding the first **2τ** as warm-up raised
2881
2946
  the at-appearance median from 7.32 to 7.76 (+6%) — **that run's numbers**; the current run
2882
- prints only the warmed value, and with the predicate corrected it is **8.46**. The cold start was biasing load DOWN,
2947
+ prints only the warmed value, currently **8.53**. The cold start was biasing load DOWN,
2883
2948
  which makes the gate easier. The collection window is 8.8 days and the residual bias is
2884
2949
  `exp(−2) ≈ 0.135` — recorded, not claimed gone.
2885
2950
 
@@ -2892,23 +2957,23 @@ window end (right for "now", wrong for "on entry").
2892
2957
 
2893
2958
  | `L₀/L_top` | `b` | `a` (neutral) | team spread | one-player deficit | prize* | x per match | in pp |
2894
2959
  | --- | --- | --- | --- | --- | --- | --- | --- |
2895
- | 1× | 0.820 | 0.200 | 0.200 | 0.410 | 0.602pp | 0.029 | 0.043pp |
2896
- | 2× | 1.439 | 0.200 | 0.200 | 0.480 | 0.705pp | 0.046 | 0.068pp |
2897
- | 4× | 2.679 | 0.200 | 0.200 | 0.536 | 0.788pp | 0.063 | 0.093pp |
2960
+ | 1× | 0.794 | 0.200 | 0.200 | 0.397 | 0.583pp | 0.029 | 0.043pp |
2961
+ | 2× | 1.387 | 0.200 | 0.200 | 0.462 | 0.680pp | 0.046 | 0.068pp |
2962
+ | 4× | 2.574 | 0.200 | 0.200 | 0.515 | 0.757pp | 0.063 | 0.093pp |
2898
2963
 
2899
2964
  \* deficit × slope (1.47 pp/cond); those deficits sit above the largest directly measured one
2900
2965
  (0.40) and the response is concave, so they are biased high. The measured figure is 0.59pp,
2901
- and at the safe amplitude the whole-vector team-level figure is 3.86pp.
2966
+ and at the safe amplitude the whole-vector team-level figure is 3.43pp.
2902
2967
 
2903
2968
  Repricing at each safe amplitude uses the largest deficit across all independently validated
2904
2969
  cells, not the deficit of the cell with the largest confidence bound:
2905
2970
 
2906
2971
  | τ | safe `b` | deficit | prize there | cheapest cost | paired cost − prize | verdict |
2907
2972
  | --- | --- | --- | --- | --- | --- | --- |
2908
- | 6h | 0.1633 | 0.112 | 0.13pp [−0.10, 0.37] | 0.16pp | 0.02pp [−0.44, 0.49] | undecided |
2909
- | 12h | 0.1639 | 0.110 | 0.13pp [−0.10, 0.37] | 0.16pp | 0.03pp [−0.44, 0.50] | undecided |
2910
- | **24h** | **0.1988** | **0.135** | **0.16pp [−0.08, 0.41]** | **0.16pp** | **−0.00pp [−0.47, 0.46]** | **undecided** |
2911
- | 48h | 0.2061 | 0.137 | 0.16pp [−0.08, 0.41] | 0.16pp | 0.00pp [−0.47, 0.46] | undecided |
2973
+ | 6h | 0.1497 | 0.107 | 0.13pp [−0.10, 0.36] | 0.16pp | 0.03pp [−0.44, 0.50] | undecided |
2974
+ | 12h | 0.1610 | 0.111 | 0.13pp [−0.10, 0.37] | 0.16pp | 0.03pp [−0.44, 0.50] | undecided |
2975
+ | **24h** | **0.1911** | **0.133** | **0.16pp [−0.09, 0.40]** | **0.16pp** | **0.00pp [−0.47, 0.47]** | **undecided** |
2976
+ | 48h | 0.1922 | 0.132 | 0.16pp [−0.09, 0.40] | 0.16pp | 0.00pp [−0.46, 0.47] | undecided |
2912
2977
 
2913
2978
  The eight repricing calls publish a prize interval and a paired-difference interval apiece.
2914
2979
  All 16 intervals split one 5% family budget; each two-sided interval splits its share again
@@ -2916,10 +2981,11 @@ between its two tails [Codex P2, 2026-09-02; 2026-09-04].
2916
2981
 
2917
2982
  `x`, the number §3-1 asked to be stated: one more match costs a top-load player **0.029–0.063
2918
2983
  condition points (0.043–0.093pp)**. No "N matches per day" qualifier is needed — τ and the
2919
- real spacing are already inside `L`. The increment is the p95 of the **realized integer**
2920
- distribution (4 engagements; median 1) — one match is one draw, so the p95 of the expected
2921
- RATE ("a busy player's average match") answers a different question. That distinction alone
2922
- raised these two columns 31–33%.
2984
+ real spacing are already inside `L`. The increment is the p95 of the **fixed-fixture shadow integer**
2985
+ pool (five draws per fixture, 4 engagements; median 1) — one match is one draw, so the p95 of the
2986
+ expected RATE ("a busy player's average match") answers a different question. Those extra draws
2987
+ estimate the one-draw distribution; they are never linked into the canonical EWMA. That distinction
2988
+ alone raised these two columns 31–33%.
2923
2989
 
2924
2990
  **The pp column is a CONVERSION, not a measurement.** The 1.47 slope is a SECANT taken at
2925
2991
  `g = 0.4` (that one slot's loss divided by 0.4), and win probability is nonlinear in condition
@@ -2928,8 +2994,8 @@ the same slot and the same published seed column:
2928
2994
 
2929
2995
  | τ | per-match increment (cond) | **measured directly** | secant conversion | ratio |
2930
2996
  | --- | --- | --- | --- | --- |
2931
- | 6h | 0.189 | **0.21pp** [−0.05, 0.47] | 0.278pp | 1.3× |
2932
- | 12h | 0.124 | **0.14pp** [−0.10, 0.38] | 0.182pp | 1.3× |
2997
+ | 6h | 0.185 | **0.20pp** [−0.06, 0.47] | 0.272pp | 1.4× |
2998
+ | 12h | 0.122 | **0.14pp** [−0.10, 0.38] | 0.179pp | 1.3× |
2933
2999
  | **24h** | **0.063** | **0.07pp** [−0.15, 0.28] | **0.093pp** | **1.3×** |
2934
3000
  | 48h | 0.031 | **0.06pp** [−0.14, 0.26] | 0.046pp | 0.8× |
2935
3001
 
@@ -2949,14 +3015,14 @@ amplitude (one run, one snapshot).
2949
3015
 
2950
3016
  | τ(h) | `L` med | `L` p95 | published `b` (4×) | per match (pp) | over gate | **safe `b`** | worst at its low end | `b` proven over |
2951
3017
  | --- | --- | --- | --- | --- | --- | --- | --- | --- |
2952
- | 6 | 2.68 | 11.80 | 3.716 | 0.278 | **32/52** | 0.1633–0.1669 | 3.64pp | 1.8581 |
2953
- | 12 | 4.19 | 16.18 | 3.291 | 0.182 | **12/63** | 0.1639–0.1671 | 3.42pp | 1.6455 |
2954
- | **24** | **8.46** | **26.21** | **2.679** | **0.093** | **0/66** | **0.1988–0.2014** | **3.86pp** | — |
2955
- | 48 | 17.55 | 45.94 | 2.294 | 0.046 | **0/61** | 0.2061–0.2084 | 3.56pp | — |
3018
+ | 6 | 2.74 | 11.51 | 3.565 | 0.272 | **33/57** | 0.1497–0.1532 | 3.56pp | 1.7827 |
3019
+ | 12 | 4.28 | 15.56 | 3.111 | 0.179 | **12/55** | 0.1610–0.1641 | 3.34pp | 1.5557 |
3020
+ | **24** | **8.53** | **25.31** | **2.574** | **0.093** | **0/57** | **0.1911–0.1936** | **3.43pp** | — |
3021
+ | 48 | 17.58 | 43.67 | 2.187 | 0.046 | **0/51** | 0.1922–0.1943 | 3.50pp | — |
2956
3022
 
2957
- Three readings. **`L` is near-linear in τ** (2.68 → 17.55), so §3-6's `L* = λτ` holds on the
3023
+ Three readings. **`L` is near-linear in τ** (2.74 → 17.58), so §3-6's `L* = λτ` holds on the
2958
3024
  timeline too and changing τ means rebuilding the whole table. **Longer τ makes a match cheaper
2959
- and the field fairer** — marginal cost 0.278 → 0.046pp, cells over **32 → 0** — because a
3025
+ and the field fairer** — marginal cost 0.272 → 0.046pp, cells over **33 → 0** — because a
2960
3026
  longer memory dilutes both the single match and the heterogeneity between players; a short τ
2961
3027
  buys "one match hurts" at the price of unfairness, and here that price is steep. **All four
2962
3028
  have a safe amplitude**, so fairness is closed by the AMPLITUDE, not by τ; τ is the "how much
@@ -2965,11 +3031,11 @@ does one match hurt" dial.
2965
3031
  **And the bisection errs in one direction under noise.** One unlucky evaluation above 5 near
2966
3032
  the threshold means everything above it is never revisited, while an unlucky PASS is caught by
2967
3033
  the independent-seed validation — the asymmetry is structural. This run's τ=24h trace shows the
2968
- scale (4.97pp at b=0.1988, 5.14pp at b=0.2014, 1.3% higher). The published amplitude is
3034
+ scale (4.92pp at b=0.1911, 5.04pp at b=0.1936, 1.3% higher). The published amplitude is
2969
3035
  therefore a LOWER bound on the threshold, and the error runs toward the safe side. And the
2970
3036
  right-hand endpoint is NOT a confidence limit: "not established below" is not "over" — that
2971
3037
  would need a LOWER bound above 5. Across this sweep two candidates cleared that bar and survived an independent-seed confirmation
2972
- (τ=6h at b=1.8581 and τ=12h at b=1.6455), and only those thresholds acquire an upper bound.
3038
+ (τ=6h at b=1.7827 and τ=12h at b=1.5557), and only those thresholds acquire an upper bound.
2973
3039
 
2974
3040
  **Whether the weight decides the verdict is measured too.** Re-counting the same cells at
2975
3041
  knockout weights of 5%, 8.1% (canonical), 10% and 15%: at τ=24h cells over run **0·0·0·0** —
@@ -2979,28 +3045,29 @@ dependence grows is recorded rather than assumed away.
2979
3045
  The safe `b` is a **bracket**, not a point: the largest candidate that passed and the smallest
2980
3046
  that failed. And that bracket is SEARCH GRANULARITY, not a confidence interval — each
2981
3047
  candidate's bound is itself estimated from 6,000 seeds PER OPPONENT. This run's lower endpoints
2982
- increase (0.163 · 0.164 · 0.199 · 0.206), but the procedure does not test ordering across τ, so
3048
+ increase (0.150 · 0.161 · 0.191 · 0.192), but the procedure does not test ordering across τ, so
2983
3049
  that shape must not be read as structural. The
2984
3050
  bisection errs in ONE DIRECTION under noise: a single unlucky evaluation above 5 near the
2985
3051
  threshold means everything above it is never revisited, while an unlucky pass is caught by the
2986
- independent-seed validation. τ=24h's trace shows the scale — 4.97pp at b=0.1988 against 5.14pp
2987
- at b=0.2014, 1.3% higher. So the published value is a LOWER BOUND on the threshold, and the
3052
+ independent-seed validation. τ=24h's trace shows the scale — 4.92pp at b=0.1911 against 5.04pp
3053
+ at b=0.1936, 1.3% higher. So the published value is a LOWER BOUND on the threshold, and the
2988
3054
  direction it errs in is the safe one. **The right endpoint is not an upper bound either** —
2989
3055
  "not established below" is not "over". What is established is that every τ in this range has an
2990
- amplitude in the reported safe range that puts all cells under the gate, and that cells over fall 32 → 0
3056
+ amplitude in the reported safe range that puts all cells under the gate, and that cells over fall 33 → 0
2991
3057
  with τ.
2992
3058
 
2993
3059
  **The sweep caught two defects in the gate** that a single τ could never have shown. First,
2994
3060
  capping a degenerate sample's bound at infinity made cells where the amplitude is small enough
2995
3061
  that the two variants coincide fail the search outright — τ=6, 12 and 48 all reported "no safe
2996
3062
  amplitude" for that reason, and τ=24 only appeared to succeed because it happened to land
2997
- ABOVE that point. The earlier τ=24 result was luck, not structure. A rule-of-three bound
2998
- (`c + (−ln α / n)·(max c)`) fixes it and all four then resolve. Second, five bisection steps
3063
+ ABOVE that point. The earlier τ=24 result was luck, not structure. The empirical-Bernstein bound
3064
+ used now retains a bounded-support range term even when SD is zero, and the probe prints that
3065
+ finite **degenerate upper-bound floor** before searching; all four then resolve. Second, five bisection steps
2999
3066
  were too coarse: τ=6 stalled at 5.35pp on b=0.122 and that was printed as "none exists", which
3000
3067
  is search depth, not a finding. Ten steps now, with an early exit on the first failing cell to
3001
3068
  pay for them.
3002
3069
 
3003
- ### Testing the vector against the gate instead of borrowing a ceiling
3070
+ ### Testing the shadow-load vector against the gate instead of borrowing a ceiling
3004
3071
 
3005
3072
  E applies the same Δ to all eleven; fatigue makes a vector. An earlier version averaged
3006
3073
  engagement by ARRAY INDEX across every formation and applied that to a synthetic 4-3-3 — but
@@ -3009,7 +3076,8 @@ vector. Worse, it described the result as "played against its fresh copy" while
3009
3076
  each variant against a rotating synthetic field and subtracted field-relative win rates.
3010
3077
  Match outcomes are nonlinear and opponent-dependent; that difference is not a head-to-head.
3011
3078
 
3012
- Corrected: each team state is turned into a fresh and a tired variant, and BOTH are played
3079
+ Corrected: each committed XI plus its synchronized zero-growth shadow-load state is turned into
3080
+ a fresh and a tired variant, and BOTH are played
3013
3081
  against EACH OF THE SIX FIXED REAL-OPPONENT BASKET MEMBERS as its own cell — never averaged or
3014
3082
  screened away — on the same seed,
3015
3083
  then differenced. **Each seed runs BOTH home and away; those two
@@ -3023,6 +3091,10 @@ in the window, folded on a hash of the fielded eleven rather than on `teamId`
3023
3091
  neutral offset `a` is applied to both sides, since the equation is `5 + a − bL/(L+L₀)` and
3024
3092
  omitting `a` overstates the gap by exactly that.
3025
3093
 
3094
+ Form was not deployed in this window, so the load vector did not historically exist. “Real” here
3095
+ means the committed XI, kickoff/claim chronology and opponent are historical; `L` is the
3096
+ zero-growth counterfactual integrated on that public chronology.
3097
+
3026
3098
  **The opponent is a CELL AXIS — neither averaged nor screened.** The canonical gate
3027
3099
  (`band-worstcase.mts:161`) loops `for (A) for (B) for (growth) for (mode)`, so both the count of
3028
3100
  cells over and the choice of worst live on that grid. This got it wrong twice:
@@ -3032,8 +3104,8 @@ cells over and the choice of worst live on that grid. This got it wrong twice:
3032
3104
  the worst, so the error ran toward "safe".
3033
3105
  2. **Then screened.** Testing all 62 and confirming only the winner leaves the discarded 61 with
3034
3106
  NO guarantee and a family that never counts the opponent axis. Worse, that screen was NOISE.
3035
- This run measures one term's SD at a median of **24.0pp** (a win/draw/loss difference), so at
3036
- 120 screen seeds an opponent mean has SE 2.19pp and the max−min of 62 draws is **≈9.4pp from
3107
+ This run measures one term's SD at a median of **24.4pp** (a win/draw/loss difference), so at
3108
+ 120 screen seeds an opponent mean has SE 2.22pp and the max−min of 62 draws is **≈9.6pp from
3037
3109
  noise alone**. The 10.85pp range the previous round read as "the opponent axis matters" was
3038
3110
  SMALLER than what noise produces.
3039
3111
 
@@ -3046,7 +3118,7 @@ widens that floor by the same factor; dividing it produced "no safe amplitude" a
3046
3118
  which is arithmetic rather than a finding.
3047
3119
 
3048
3120
  **Bounding all 62 under 5pp is not affordable** — at that SD a 1.5pp half-width per opponent
3049
- needs ≈4,092 seeds each, tens of times the cell budget across 62. So the basket is a SAMPLE of
3121
+ needs ≈4,222 seeds each, tens of times the cell budget across 62. So the basket is a SAMPLE of
3050
3122
  the 62, the same kind of limit the canonical gate accepts by using a designed grid. The question
3051
3123
  it leaves open — does an opponent outside the basket exceed? — is asked separately below.
3052
3124
 
@@ -3063,85 +3135,83 @@ things were wrong at once. Teams were ranked by *peak single load* while states
3063
3135
  With the currency fixed, the cut turned out not to exist:
3064
3136
 
3065
3137
  ```
3066
- 70363723 5.93 · 30178fc1 4.62 · 6097e735 4.45 · 704b8e45 4.34 · 6aec8bd8 4.31
3067
- 118f1f13 4.20 · 6a37ed0a 4.20 · 2aa911db 4.12 · 2b865779 4.01 · 23baeba2 3.74
3068
- 930b4313 3.58 · 796efbfe 3.34 · e8dc63e1 0.15 (summed deficit, max over curves)
3138
+ 70363723 5.79 · 6097e735 4.74 · 704b8e45 4.58 · 30178fc1 4.54 · 118f1f13 4.45
3139
+ 2aa911db 4.42 · 6a37ed0a 4.38 · 2b865779 4.34 · 6aec8bd8 4.30 · 930b4313 3.58
3140
+ 23baeba2 3.58 · 796efbfe 3.43 · e8dc63e1 0.19 (summed deficit, max over curves)
3069
3141
  ```
3070
3142
 
3071
- Second (4.62) through twelfth (3.34) sit close together, so "the worst team" would
3143
+ Second (4.74) through twelfth (3.43) sit close together, so "the worst team" would
3072
3144
  have been decided by which three I picked. Nothing is cut now, and the simultaneous correction
3073
3145
  widened accordingly. (τ=24h below; other τ in the sweep above.)
3074
3146
 
3147
+ The columns are folded deliberately. `ladder` and `knockout` are the mode point estimates for
3148
+ the opponent with the largest upper endpoint; `weighted` is the maximum exposure-weighted point
3149
+ estimate across opponents; `lo` and `hi` are the maxima of the corresponding simultaneous
3150
+ endpoints. Those maxima can come from different opponents: together they bound the max functional,
3151
+ not one imaginary opponent's point estimate and interval. `state (UTC)` is the verified claim-clock
3152
+ proxy used by this integration, not the scheduled kickoff.
3153
+
3075
3154
  | team | `L₀` | state (UTC) | max deficit | ladder | knockout | **weighted** | lo | hi | 5pp |
3076
3155
  | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
3077
- | `70363723` | 1× | 2026-08-25 12:58 | 0.524 | 5.00 | 7.86 | **5.24** | 2.59 | 7.88 | undecided |
3078
- | `70363723` | 1× | 2026-08-27 09:57 | 0.556 | 5.10 | 7.33 | **5.28** | 2.60 | 7.95 | undecided |
3079
- | `70363723` | 2× | 2026-08-25 11:55 | 0.684 | 6.30 | 9.09 | **6.52** | 3.72 | 9.33 | undecided |
3080
- | `70363723` | 2× | 2026-08-27 09:57 | 0.739 | 6.32 | 8.86 | **6.53** | 3.76 | 9.29 | undecided |
3081
- | `70363723` | 4× | 2026-08-25 11:55 | 0.834 | 6.78 | 10.16 | **7.05** | 4.16 | 9.94 | undecided |
3082
- | `70363723` | 4× | 2026-08-27 09:57 | 0.925 | 6.71 | 10.45 | **7.02** | 4.14 | 9.89 | undecided |
3083
- | `30178fc1` | 1× | 2026-08-31 12:56 | 0.404 | 4.55 | 7.14 | **4.76** | 2.16 | 7.35 | undecided |
3084
- | `30178fc1` | 1× | 2026-08-27 07:26 | 0.434 | 5.47 | 7.74 | **5.65** | 3.00 | 8.31 | undecided |
3085
- | `30178fc1` | 2× | 2026-08-31 12:56 | 0.471 | 5.24 | 8.66 | **5.52** | 2.84 | 8.19 | undecided |
3086
- | `30178fc1` | 2× | 2026-08-27 07:26 | 0.518 | 5.34 | 7.91 | **5.55** | 2.84 | 8.26 | undecided |
3087
- | `30178fc1` | 4× | 2026-08-31 12:56 | 0.524 | 6.25 | 8.27 | **6.41** | 3.67 | 9.16 | undecided |
3088
- | `30178fc1` | 4× | 2026-08-27 07:26 | 0.588 | 5.93 | 8.35 | **6.13** | 3.36 | 8.89 | undecided |
3089
- | `6097e735` | 1× | 2026-08-28 07:24 | 0.415 | 5.31 | 6.83 | **5.44** | 2.75 | 8.12 | undecided |
3090
- | `6097e735` | 1× | 2026-08-31 12:56 | 0.441 | 4.22 | 5.88 | **4.36** | 1.75 | 6.96 | undecided |
3091
- | `6097e735` | 2× | 2026-08-28 07:24 | 0.487 | 5.42 | 7.34 | **5.57** | 2.83 | 8.31 | undecided |
3092
- | `6097e735` | 2× | 2026-08-31 12:56 | 0.530 | 4.61 | 6.84 | **4.79** | 2.11 | 7.47 | undecided |
3093
- | `6097e735` | 4× | 2026-08-28 07:24 | 0.546 | 5.46 | 7.89 | **5.66** | 2.84 | 8.47 | undecided |
3094
- | `6097e735` | 4× | 2026-08-31 12:56 | 0.605 | 5.04 | 7.67 | **5.26** | 2.54 | 7.97 | undecided |
3095
- | `704b8e45` | 1× | 2026-08-28 07:26 | 0.470 | 4.47 | 6.35 | **4.62** | 2.05 | 7.19 | undecided |
3096
- | `704b8e45` | 2× | 2026-08-28 07:26 | 0.578 | 5.14 | 6.71 | **5.27** | 2.61 | 7.93 | undecided |
3097
- | `704b8e45` | 4× | 2026-08-28 07:26 | 0.673 | 5.19 | 7.49 | **5.38** | 2.65 | 8.10 | undecided |
3098
- | `6aec8bd8` | 1× | 2026-08-23 07:26 | 0.438 | 5.52 | 6.53 | **5.60** | 2.90 | 8.29 | undecided |
3099
- | `6aec8bd8` | 1× | 2026-08-26 07:26 | 0.466 | 5.02 | 6.25 | **5.12** | 2.44 | 7.80 | undecided |
3100
- | `6aec8bd8` | 2× | 2026-08-23 07:26 | 0.524 | 5.95 | 7.61 | **6.08** | 3.30 | 8.87 | undecided |
3101
- | `6aec8bd8` | 2× | 2026-08-26 07:26 | 0.571 | 5.70 | 7.40 | **5.84** | 3.10 | 8.58 | undecided |
3102
- | `6aec8bd8` | 4× | 2026-08-23 07:26 | 0.596 | 6.19 | 7.85 | **6.32** | 3.50 | 9.14 | undecided |
3103
- | `6aec8bd8` | 4× | 2026-08-26 07:26 | 0.663 | 5.94 | 7.38 | **6.06** | 3.28 | 8.83 | undecided |
3104
- | `118f1f13` | 1× | 2026-08-30 07:24 | 0.468 | 3.78 | 6.70 | **4.02** | 1.54 | 6.50 | undecided |
3105
- | `118f1f13` | 2× | 2026-08-30 07:24 | 0.576 | 4.42 | 7.42 | **4.66** | 2.09 | 7.24 | undecided |
3106
- | `118f1f13` | 4× | 2026-08-30 07:24 | 0.669 | 5.18 | 7.98 | **5.41** | 2.78 | 8.04 | undecided |
3107
- | `6a37ed0a` | 1× | 2026-08-25 07:26 | 0.441 | 4.17 | 6.13 | **4.33** | 1.76 | 6.89 | undecided |
3108
- | `6a37ed0a` | 1× | 2026-08-28 07:26 | 0.459 | 4.04 | 5.30 | **4.14** | 1.59 | 6.70 | undecided |
3109
- | `6a37ed0a` | 2× | 2026-08-25 07:26 | 0.530 | 4.94 | 7.10 | **5.12** | 2.46 | 7.77 | undecided |
3110
- | `6a37ed0a` | 2× | 2026-08-28 07:26 | 0.560 | 4.42 | 6.39 | **4.58** | 1.94 | 7.22 | undecided |
3111
- | `6a37ed0a` | 4× | 2026-08-25 07:26 | 0.605 | 5.50 | 7.58 | **5.67** | 2.99 | 8.36 | undecided |
3112
- | `6a37ed0a` | 4× | 2026-08-28 07:26 | 0.647 | 4.75 | 7.67 | **4.99** | 2.35 | 7.62 | undecided |
3113
- | `2aa911db` | 1× | 2026-08-29 07:26 | 0.404 | 4.04 | 5.57 | **4.17** | 1.61 | 6.72 | undecided |
3114
- | `2aa911db` | 1× | 2026-08-30 07:26 | 0.452 | 3.92 | 5.66 | **4.07** | 1.52 | 6.61 | undecided |
3115
- | `2aa911db` | 2× | 2026-08-29 07:26 | 0.471 | 4.24 | 6.51 | **4.43** | 1.86 | 6.99 | undecided |
3116
- | `2aa911db` | 2× | 2026-08-30 07:26 | 0.548 | 4.63 | 6.02 | **4.74** | 2.15 | 7.32 | undecided |
3117
- | `2aa911db` | 4× | 2026-08-29 07:26 | 0.524 | 4.93 | 6.97 | **5.10** | 2.45 | 7.74 | undecided |
3118
- | `2aa911db` | 4× | 2026-08-30 07:26 | 0.630 | 5.06 | 6.86 | **5.20** | 2.55 | 7.86 | undecided |
3119
- | `2b865779` | 1× | 2026-08-26 07:26 | 0.453 | 4.33 | 6.60 | **4.51** | 1.92 | 7.11 | undecided |
3120
- | `2b865779` | 2× | 2026-08-26 07:26 | 0.549 | 5.02 | 7.92 | **5.26** | 2.58 | 7.94 | undecided |
3121
- | `2b865779` | 4× | 2026-08-26 07:26 | 0.632 | 4.90 | 8.32 | **5.18** | 2.49 | 7.88 | undecided |
3122
- | `23baeba2` | 1× | 2026-08-31 12:56 | 0.405 | 4.06 | 5.37 | **4.17** | 1.16 | 7.18 | undecided |
3123
- | `23baeba2` | 1× | 2026-08-29 07:06 | 0.409 | 3.61 | 5.93 | **3.80** | 1.25 | 6.34 | undecided |
3124
- | `23baeba2` | 2× | 2026-08-31 12:56 | 0.472 | 4.85 | 6.32 | **4.97** | 1.85 | 8.08 | undecided |
3125
- | `23baeba2` | 2× | 2026-08-29 07:06 | 0.478 | 4.30 | 5.85 | **4.43** | 1.81 | 7.05 | undecided |
3126
- | `23baeba2` | 4× | 2026-08-31 12:56 | 0.525 | 4.75 | 6.79 | **4.91** | 1.73 | 8.10 | undecided |
3127
- | `23baeba2` | 4× | 2026-08-29 07:06 | 0.534 | 5.04 | 5.46 | **5.08** | 2.42 | 7.73 | undecided |
3128
- | `930b4313` | 1× | 2026-08-23 07:01 | 0.383 | 3.77 | 5.64 | **3.92** | 1.38 | 6.46 | undecided |
3129
- | `930b4313` | 1× | 2026-08-24 07:14 | 0.429 | 3.62 | 6.07 | **3.82** | 1.29 | 6.35 | undecided |
3130
- | `930b4313` | 2× | 2026-08-23 07:01 | 0.439 | 4.14 | 6.92 | **4.37** | 1.78 | 6.95 | undecided |
3131
- | `930b4313` | 2× | 2026-08-24 07:14 | 0.510 | 4.19 | 5.71 | **4.32** | 1.76 | 6.87 | undecided |
3132
- | `930b4313` | 4× | 2026-08-23 07:01 | 0.482 | 4.85 | 6.92 | **5.02** | 2.41 | 7.62 | undecided |
3133
- | `930b4313` | 4× | 2026-08-24 07:14 | 0.577 | 4.35 | 6.38 | **4.51** | 1.94 | 7.09 | undecided |
3134
- | `796efbfe` | 1× | 2026-08-25 07:06 | 0.351 | 3.59 | 6.89 | **3.86** | 1.44 | 6.28 | undecided |
3135
- | `796efbfe` | | 2026-08-28 06:58 | 0.367 | 2.98 | 4.89 | **3.13** | 0.80 | 5.46 | undecided |
3136
- | `796efbfe` | 2× | 2026-08-25 07:06 | 0.392 | 3.65 | 8.03 | **4.01** | 1.53 | 6.48 | undecided |
3137
- | `796efbfe` | 2× | 2026-08-28 06:58 | 0.415 | 3.06 | 4.94 | **3.21** | 0.83 | 5.60 | undecided |
3138
- | `796efbfe` | 4× | 2026-08-25 07:06 | 0.422 | 4.03 | 7.65 | **4.32** | 1.80 | 6.84 | undecided |
3139
- | `796efbfe` | 4× | 2026-08-28 06:58 | 0.451 | 3.21 | 5.15 | **3.37** | 0.99 | 5.75 | undecided |
3140
- | `e8dc63e1` | 1× | 2026-08-24 02:05 | 0.017 | 0.20 | 0.25 | **0.20** | -1.39 | 1.79 | **below** |
3141
- | `e8dc63e1` | 2× | 2026-08-24 02:05 | 0.015 | 0.15 | 0.25 | **0.17** | -1.35 | 1.72 | **below** |
3142
- | `e8dc63e1` | 4× | 2026-08-24 02:05 | 0.015 | 0.15 | 0.03 | **0.17** | -1.34 | 1.69 | **below** |
3143
-
3144
- **None of the 66 cells is over**; 3 are established below and 63 undecided. So many undecided is
3156
+ | `70363723` | 1× | 2026-08-26 13:57 | 0.531 | 5.09 | 7.49 | **5.28** | 2.63 | 7.94 | undecided |
3157
+ | `70363723` | 1× | 2026-08-27 09:57 | 0.551 | 4.51 | 6.53 | **4.67** | 2.04 | 7.30 | undecided |
3158
+ | `70363723` | 2× | 2026-08-26 13:57 | 0.698 | 6.21 | 8.38 | **6.39** | 3.63 | 9.15 | undecided |
3159
+ | `70363723` | 2× | 2026-08-27 09:57 | 0.737 | 5.82 | 8.48 | **6.04** | 3.30 | 8.78 | undecided |
3160
+ | `70363723` | 4× | 2026-08-26 13:57 | 0.865 | 7.04 | 8.99 | **7.20** | 4.33 | 10.06 | undecided |
3161
+ | `70363723` | 4× | 2026-08-27 09:57 | 0.932 | 6.75 | 10.07 | **7.02** | 4.16 | 9.88 | undecided |
3162
+ | `6097e735` | 1× | 2026-08-28 07:24 | 0.447 | 5.47 | 6.63 | **5.57** | 2.88 | 8.26 | undecided |
3163
+ | `6097e735` | 2× | 2026-08-28 07:24 | 0.543 | 4.90 | 7.98 | **5.15** | 2.44 | 7.87 | undecided |
3164
+ | `6097e735` | 4× | 2026-08-28 07:24 | 0.627 | 5.80 | 9.08 | **6.06** | 3.24 | 8.89 | undecided |
3165
+ | `704b8e45` | 1× | 2026-08-28 07:26 | 0.480 | 4.53 | 6.38 | **4.68** | 2.07 | 7.28 | undecided |
3166
+ | `704b8e45` | 2× | 2026-08-28 07:26 | 0.602 | 5.17 | 7.59 | **5.37** | 2.66 | 8.07 | undecided |
3167
+ | `704b8e45` | 4× | 2026-08-28 07:26 | 0.713 | 5.15 | 6.96 | **5.29** | 2.52 | 8.06 | undecided |
3168
+ | `30178fc1` | 1× | 2026-08-31 12:56 | 0.390 | 4.90 | 6.75 | **5.05** | 2.44 | 7.67 | undecided |
3169
+ | `30178fc1` | 1× | 2026-08-27 07:26 | 0.413 | 4.78 | 6.76 | **4.94** | 2.31 | 7.57 | undecided |
3170
+ | `30178fc1` | 2× | 2026-08-31 12:56 | 0.452 | 5.52 | 8.13 | **5.73** | 3.05 | 8.42 | undecided |
3171
+ | `30178fc1` | 2× | 2026-08-27 07:26 | 0.487 | 5.71 | 8.00 | **5.90** | 3.23 | 8.57 | undecided |
3172
+ | `30178fc1` | 4× | 2026-08-31 12:56 | 0.500 | 5.77 | 8.46 | **5.99** | 3.26 | 8.72 | undecided |
3173
+ | `30178fc1` | 4× | 2026-08-27 07:26 | 0.548 | 5.59 | 8.86 | **5.85** | 3.10 | 8.60 | undecided |
3174
+ | `118f1f13` | 1× | 2026-08-30 07:24 | 0.452 | 4.21 | 6.38 | **4.39** | 1.86 | 6.91 | undecided |
3175
+ | `118f1f13` | 2× | 2026-08-30 07:24 | 0.552 | 4.30 | 7.71 | **4.58** | 2.00 | 7.16 | undecided |
3176
+ | `118f1f13` | 4× | 2026-08-30 07:24 | 0.639 | 5.08 | 8.50 | **5.35** | 2.72 | 7.99 | undecided |
3177
+ | `2aa911db` | 1× | 2026-08-29 07:26 | 0.392 | 4.00 | 6.04 | **4.17** | 1.62 | 6.72 | undecided |
3178
+ | `2aa911db` | 1× | 2026-08-30 07:26 | 0.451 | 3.91 | 6.33 | **4.11** | 1.57 | 6.65 | undecided |
3179
+ | `2aa911db` | 2× | 2026-08-29 07:26 | 0.455 | 4.99 | 7.36 | **5.18** | 2.56 | 7.81 | undecided |
3180
+ | `2aa911db` | 2× | 2026-08-30 07:26 | 0.551 | 4.46 | 6.76 | **4.65** | 2.03 | 7.27 | undecided |
3181
+ | `2aa911db` | 4× | 2026-08-29 07:26 | 0.505 | 4.67 | 6.22 | **4.80** | 2.16 | 7.44 | undecided |
3182
+ | `2aa911db` | 4× | 2026-08-30 07:26 | 0.637 | 5.19 | 6.53 | **5.30** | 2.63 | 7.97 | undecided |
3183
+ | `6a37ed0a` | 1× | 2026-08-25 07:26 | 0.464 | 4.50 | 6.74 | **4.69** | 2.11 | 7.27 | undecided |
3184
+ | `6a37ed0a` | 2× | 2026-08-25 07:26 | 0.573 | 4.54 | 7.83 | **4.81** | 2.16 | 7.45 | undecided |
3185
+ | `6a37ed0a` | 4× | 2026-08-25 07:26 | 0.671 | 5.08 | 7.70 | **5.29** | 2.60 | 7.98 | undecided |
3186
+ | `2b865779` | 1× | 2026-08-24 07:24 | 0.407 | 4.33 | 6.71 | **4.52** | 1.91 | 7.14 | undecided |
3187
+ | `2b865779` | 1× | 2026-08-26 07:26 | 0.476 | 4.15 | 6.59 | **4.35** | 1.76 | 6.94 | undecided |
3188
+ | `2b865779` | 2× | 2026-08-24 07:24 | 0.479 | 4.98 | 8.32 | **5.25** | 2.55 | 7.96 | undecided |
3189
+ | `2b865779` | 2× | 2026-08-26 07:26 | 0.594 | 5.05 | 7.41 | **5.25** | 2.57 | 7.92 | undecided |
3190
+ | `2b865779` | 4× | 2026-08-24 07:24 | 0.537 | 5.90 | 7.50 | **6.03** | 3.27 | 8.79 | undecided |
3191
+ | `2b865779` | 4× | 2026-08-26 07:26 | 0.702 | 5.03 | 7.99 | **5.27** | 2.58 | 7.96 | undecided |
3192
+ | `6aec8bd8` | 1× | 2026-08-23 07:26 | 0.464 | 5.22 | 6.33 | **5.31** | 2.62 | 8.00 | undecided |
3193
+ | `6aec8bd8` | 2× | 2026-08-23 07:26 | 0.574 | 5.94 | 7.42 | **6.06** | 3.29 | 8.83 | undecided |
3194
+ | `6aec8bd8` | 4× | 2026-08-23 07:26 | 0.671 | 6.56 | 7.88 | **6.67** | 3.83 | 9.51 | undecided |
3195
+ | `930b4313` | 1× | 2026-08-23 07:01 | 0.388 | 3.91 | 5.80 | **4.06** | 1.56 | 6.56 | undecided |
3196
+ | `930b4313` | 1× | 2026-08-24 07:14 | 0.406 | 3.96 | 5.01 | **4.04** | 1.52 | 6.57 | undecided |
3197
+ | `930b4313` | 2× | 2026-08-23 07:01 | 0.448 | 4.33 | 5.73 | **4.44** | 1.88 | 7.00 | undecided |
3198
+ | `930b4313` | 2× | 2026-08-24 07:14 | 0.477 | 3.81 | 5.81 | **3.98** | 1.45 | 6.50 | undecided |
3199
+ | `930b4313` | 4× | 2026-08-26 07:16 | 0.461 | 4.58 | 6.69 | **4.76** | 2.19 | 7.32 | undecided |
3200
+ | `930b4313` | 4× | 2026-08-24 07:14 | 0.535 | 3.99 | 5.76 | **4.14** | 1.56 | 6.71 | undecided |
3201
+ | `23baeba2` | 1× | 2026-08-31 12:56 | 0.371 | 4.15 | 4.83 | **4.21** | 1.27 | 7.14 | undecided |
3202
+ | `23baeba2` | 1× | 2026-08-28 07:14 | 0.411 | 3.85 | 5.47 | **3.98** | 1.42 | 6.54 | undecided |
3203
+ | `23baeba2` | 2× | 2026-08-31 12:56 | 0.422 | 4.55 | 6.22 | **4.69** | 1.63 | 7.74 | undecided |
3204
+ | `23baeba2` | 2× | 2026-08-28 07:14 | 0.485 | 4.33 | 5.77 | **4.44** | 1.84 | 7.04 | undecided |
3205
+ | `23baeba2` | 4× | 2026-08-31 12:56 | 0.462 | 4.82 | 5.66 | **4.89** | 1.74 | 8.03 | undecided |
3206
+ | `23baeba2` | 4× | 2026-08-28 07:14 | 0.545 | 4.67 | 6.30 | **4.81** | 2.19 | 7.43 | undecided |
3207
+ | `796efbfe` | 1× | 2026-08-25 07:06 | 0.351 | 4.03 | 7.20 | **4.28** | 1.81 | 6.75 | undecided |
3208
+ | `796efbfe` | 2× | 2026-08-25 07:06 | 0.394 | 3.84 | 7.49 | **4.14** | 1.64 | 6.63 | undecided |
3209
+ | `796efbfe` | 4× | 2026-08-25 07:06 | 0.426 | 3.92 | 8.01 | **4.26** | 1.76 | 6.76 | undecided |
3210
+ | `e8dc63e1` | 1× | 2026-08-24 02:05 | 0.026 | 0.27 | 0.35 | **0.27** | -1.35 | 1.91 | **below** |
3211
+ | `e8dc63e1` | 2× | 2026-08-24 02:05 | 0.024 | 0.25 | 0.33 | **0.26** | -1.35 | 1.88 | **below** |
3212
+ | `e8dc63e1` | 4× | 2026-08-24 02:05 | 0.022 | 0.12 | 0.28 | **0.16** | -1.37 | 1.72 | **below** |
3213
+
3214
+ **None of the 57 cells is over**; 3 are established below and 54 undecided. So many undecided is
3145
3215
  what the guarantee cost — the family is **1,836** = (78+78+78+72) × 6 opponents.
3146
3216
 
3147
3217
  **The state axis had the same defect.** The previous round chose each team's worst state by a
@@ -3149,13 +3219,13 @@ low-seed screen — exactly what had just been thrown out on the opponent axis:
3149
3219
  carry no guarantee, the family never counts that axis, and the screen itself is noise. The state
3150
3220
  is now chosen by two DETERMINISTIC rules — largest summed deficit (how tired the team is overall)
3151
3221
  and largest single-slot deficit (a vector concentrated on one place) — and BOTH are measured. At
3152
- τ=24h the two rules pointed at different states in **27 of 39** (team, L₀) pairs.
3222
+ τ=24h the two rules pointed at different states in **18 of 39** (team, L₀) pairs.
3153
3223
 
3154
3224
  **The previous round's "1 over" is withdrawn.** It came from screening 62 opponents, then
3155
3225
  correcting the winner against a family of 153 — the search over 62 was never counted. Corrected
3156
3226
  for it (α = 0.05/18972), nothing at τ=24h is established over. **"none over" and "all established
3157
3227
  below" remain different claims** — the first says exceedance cannot be established, the second
3158
- says non-exceedance can — and the 63 undecided are neither.
3228
+ says non-exceedance can — and the 54 undecided are neither.
3159
3229
 
3160
3230
  **At the short τ, however, an exceeding matchup does exist.** Since the basket is a sample of the
3161
3231
  62, "does an opponent outside it exceed?" is a separate question, asked separately: screen all 62
@@ -3164,45 +3234,30 @@ count (12,000), and correct for having searched 62.
3164
3234
 
3165
3235
  | τ | (cell, opponent) established over | worst |
3166
3236
  | --- | --- | --- |
3167
- | 6h | **23** | `30178fc1` 4× — weighted 13.32pp, lower bound 9.59pp |
3168
- | 12h | **5** | `6aec8bd8` 4× — weighted 9.81pp, lower bound 6.36pp |
3237
+ | 6h | **29** | `30178fc1` 4× — weighted 13.82pp, lower bound 10.10pp |
3238
+ | 12h | **10** | `30178fc1` 4× — weighted 9.92pp, lower bound 6.48pp |
3169
3239
  | 24h · 48h | 0 | — |
3170
3240
 
3171
- Inside the basket, the point estimates for one state spread by **1.98pp** median (4.14pp max) —
3172
- the real measure of how much the opponent moves the verdict, and next to the ≈9.4pp noise range
3241
+ Inside the basket, the point estimates for one state spread by **2.05pp** median (4.03pp max) —
3242
+ the real measure of how much the opponent moves the verdict, and next to the ≈9.6pp noise range
3173
3243
  above it shows why a screen cannot rank them.
3174
3244
 
3175
3245
  This does NOT replace the verdict above: screening is drawn to noise, so it does not establish
3176
3246
  "we found the worst". What it establishes is an EXISTENCE claim — at τ=6h and 12h the published
3177
- amplitude fails against a real matchup from this window. At τ=24h and 48h not even that stands. A cell is (team 13 × curve 3), and the simultaneous family
3247
+ amplitude fails against a real matchup from this window. At τ=24h and 48h not even that stands. A displayed cell is (team × curve × deterministic state rule), and the simultaneous family
3178
3248
  is the SUM of each τ's cell bounds times the opponent basket, **(78+78+78+72) × 6 = 1,836**
3179
3249
  (τ=48h loses one team to the longer warm-up) — the document's claim spans every τ, and the counts differ per τ. A
3180
- cell is (team × curve) and the two modes are mixed **inside** it by exposure, because that is
3250
+ cell keeps six opponent-specific bounds, the family counts all six and the verdict takes their worst;
3251
+ the two modes are mixed **inside each opponent bound** by exposure, because that is
3181
3252
  how the gate is defined. The per-mode figures sit beside it because they show WHERE the effect
3182
3253
  lives: knockout point estimates run about 1.5× ladder's. Holding each mode to 5pp separately
3183
3254
  made 38 of 78 look over, and that was the earlier "almost every team, in knockout" conclusion.
3184
3255
  **It is withdrawn — it was measured against the wrong bar.**
3185
3256
 
3186
- **Choosing the state by summed deficit was also wrong.** The sum ignores WHICH slot is tired,
3187
- and influence differs by slot (§3-16's ZP fallback slot is the example) and by mode. Every one
3188
- of a team's states is now measured on 200 seeds with COMMON RANDOM NUMBERS across states, and
3189
- the worst weighted edge wins. That choice differed from the summed-deficit pick in **29 of 39**
3190
- cells.
3191
-
3192
- **But "we found the worst" is not claimable — that was measured too.** The gap between first
3193
- and second place is **0.16pp** median (min 0.00), while the gap between first and last is
3194
- **4.41pp** median (min 0.00). The range is some 27 times the margin, so the screen carries
3195
- real signal and **only the top is tied** — the difference between what was chosen and the true
3196
- worst is about the margin, ≈0.2pp, which cannot move a 5pp gate. It also reframes the
3197
- disagreement with the summed-deficit pick: not "the proxy was badly wrong" but "the top states
3198
- are tied, so any rule picks one of several equals".
3199
-
3200
- The selection comes from an outcome, so winner's-curse bias remains. That is why the states are
3201
- **re-screened at the chosen amplitude** before validation, then measured on independent seeds:
3202
- freezing the selection at the published amplitude would leave validation unable to see a state
3203
- that is worse at a much smaller `b`, because the response is nonlinear. The bisection itself
3204
- runs on the frozen selection as a SEARCH HEURISTIC; only the published verdict is exact at its
3205
- own amplitude, and if validation fails the amplitude halves and the whole step repeats.
3257
+ Those two rules never inspect an outcome, so the state's winner-selection bias is gone. The
3258
+ guarantee still attaches only to the one or two states they choose: the remaining post-warm-up
3259
+ states and everything outside this window have no bound. This is a sampled state basket, not a
3260
+ structural upper bound, just as the six opponents are a sample of the 62.
3206
3261
 
3207
3262
  **Those repeats spend a divided alpha budget.** Up to five independently seeded confirmations
3208
3263
  that accept the FIRST to pass, each spending the full `0.05/1836`, would inflate the chance of
@@ -3230,11 +3285,12 @@ unchanged).
3230
3285
 
3231
3286
  **The "last lineup" machinery disappeared as a side effect.** The lineup now comes from the
3232
3287
  same state as the loads, so loads can never be applied to a player who has since left — the
3233
- mismatch that machinery existed to prevent is now unrepresentable. Each state is the worst
3234
- OBSERVED one per team and `L₀` (**649** post-warm-up candidates = that team's appearances),
3235
- chosen on summed deficit, before a single match is played. `b` is a common factor of the
3236
- deficits so it cannot reorder them the bisection tests the same state throughout. `L₀` can
3237
- and does reorder them: `70363723`'s worst kickoff differs at 1×, and 4×.
3288
+ mismatch that machinery existed to prevent is now unrepresentable. For each team and `L₀`, one
3289
+ or two states are selected from **649** post-warm-up public-fixture/shadow-load candidates by
3290
+ the two deterministic rules (largest summed deficit and largest single-slot deficit), before a
3291
+ single match is played. `b` is a common factor of the deficits so it cannot reorder them — the
3292
+ bisection tests the same state throughout. `L₀` can reorder candidates, so the state basket is
3293
+ computed separately for every curve; repeated timestamps in this τ=24h table are not a general rule.
3238
3294
 
3239
3295
  Two things had been hiding that. The gate rebuilt the
3240
3296
  curve per team, which pins each team's MEDIAN deficit to 0.20 — the median column read
@@ -3248,23 +3304,28 @@ Exceeding the gate does not mean the mechanism fails; it means the amplitude is
3248
3304
  Bisect for the largest `b` whose worst cell stays under, measuring EVERY cell at each step
3249
3305
  rather than assuming linearity — a single proportional guess landed at 5.15, still grazing it.
3250
3306
 
3251
- | `b` | cell hit / worst | upper | lower | max deficit | verdict |
3307
+ The named cell is the **witness for the maximum upper bound**. The lower column is maximized
3308
+ separately over the same scan and can have a different witness; the two endpoints are not one
3309
+ cell's paired interval. Passing rows and independent validation scan every cell. A failing row
3310
+ stops at the first upper-bound failure, so its extrema cover only that scanned prefix—which is
3311
+ already sufficient to reject the candidate.
3312
+
3313
+ | `b` | max-upper witness | upper | max lower | max deficit | verdict |
3252
3314
  | --- | --- | --- | --- | --- | --- |
3253
- | 1.3394 | `70363723` 1× | 13.38 | 3.51 | 0.856 | not established |
3254
- | 0.6697 | `70363723` 1× | 8.66 | -0.12 | 0.428 | not established |
3255
- | 0.3349 | `70363723` 1× | 5.70 | -1.67 | 0.214 | not established |
3256
- | 0.1674 | `23baeba2` 1× | 4.84 | -2.28 | 0.083 | **below** |
3257
- | 0.2511 | `70363723` 1× | 5.28 | -2.09 | 0.160 | not established |
3258
- | 0.2093 | `30178fc1` 1× | 5.03 | -2.12 | 0.111 | not established |
3259
- | 0.1884 | `6aec8bd8` 1× | 4.91 | -2.19 | 0.101 | **below** |
3260
- | 0.1988 | `30178fc1` 1× | 4.97 | -2.12 | 0.098 | **below** |
3261
- | 0.2041 | `30178fc1` 1× | 5.06 | -2.06 | 0.101 | not established |
3262
- | 0.2014 | `30178fc1` 1× | 5.14 | -2.02 | 0.107 | not established |
3263
- | **0.1988** (validated on independent seeds) | `6aec8bd8` 1× | **3.86** | — | 0.106 | **all cells below** |
3264
-
3265
- **`b` ∈ 0.1988–0.2014**, with all 66 cells established below the gate on independent seeds at
3266
- the lower end — after re-screening the states at that amplitude — and the upper end being the
3267
- smallest candidate that failed.
3315
+ | 1.2872 | `70363723` 1× | 13.26 | 3.39 | 0.862 | not established |
3316
+ | 0.6436 | `70363723` 1× | 7.58 | -0.81 | 0.431 | not established |
3317
+ | 0.3218 | `70363723` 1× | 6.21 | -1.54 | 0.215 | not established |
3318
+ | 0.1609 | `704b8e45` 1× | 4.71 | -2.22 | 0.097 | **below** |
3319
+ | 0.2414 | `70363723` 1× | 5.29 | -2.10 | 0.162 | not established |
3320
+ | 0.2011 | `6097e735` 1× | 5.01 | -2.22 | 0.113 | not established |
3321
+ | 0.1810 | `23baeba2` 1× | 4.98 | -2.17 | 0.085 | **below** |
3322
+ | 0.1911 | `6aec8bd8` 1× | 4.92 | -2.18 | 0.112 | **below** |
3323
+ | 0.1961 | `6097e735` 1× | 5.15 | -2.13 | 0.110 | not established |
3324
+ | 0.1936 | `70363723` 1× | 5.04 | -2.13 | 0.134 | not established |
3325
+ | **0.1911** (validated on independent seeds) | `30178fc1` 1× | **3.43** | — | 0.094 | **all cells below** |
3326
+
3327
+ **`b` ∈ 0.1911–0.1936**, with all 57 deterministic shadow cells established below the gate on
3328
+ independent seeds at the lower end and the upper end being the smallest candidate that failed.
3268
3329
 
3269
3330
  **Do not read that bracket as precision.** The fail rows are not monotone even though the
3270
3331
  deficit falls with `b`, and the cell that trips changes between them: each bound is estimated
@@ -3275,13 +3336,14 @@ separate seed column. Note
3275
3336
  that the worst cell moves: at the published amplitude it is `L₀`=4×, but at low `b` it is
3276
3337
  **1×**, because a smaller `L₀` saturates sooner and so produces a larger deficit for the same
3277
3338
  `b`. Testing only the cell that was worst at the starting amplitude would have missed that. E's 0.2 was measured with a uniform Δ across all eleven, and
3278
- putting it on the MEDIAN player is what let the top of a real vector (max deficit 0.02–0.88)
3339
+ putting it on the MEDIAN player is what let the top of a shadow vector (max deficit 0.02–0.93)
3279
3340
  run past the gate. That value is the worst over all 13 teams that played, but NOT over every appearance: the
3280
3341
  state comes from two deterministic rules (largest summed deficit, largest single-slot deficit)
3281
3342
  applied to the 649 post-warm-up candidates, and only those one or two states per (team, curve)
3282
3343
  carry a bound. The remaining appearances are unmeasured — the same kind of limit the opponent
3283
3344
  basket carries. What is gone is selection on an OUTCOME; what is not gone is that this is a
3284
- sample of the observed states, and everything outside this window is unseen entirely.
3345
+ sample of shadow states on the observed public fixture chronology, and everything outside this
3346
+ window is unseen entirely.
3285
3347
 
3286
3348
  **The bound's support constant was wrong, too.** One `ser` term averages the home and away
3287
3349
  versions of `(win(fresh) − win(tired))`, then multiplies by `100 · 2`. Each difference lies in
@@ -3309,7 +3371,7 @@ almost every observation is 0:
3309
3371
 
3310
3372
  The price is width. At this family, a half-width of 2.9pp needs **12,000 seeds per opponent**;
3311
3373
  at 6,000 it is 4.9pp, which would leave the 5pp gate no room at all. So the seed budget per
3312
- opponent went up 4×, the safe amplitude fell from 0.15 to 0.13, and only 3 of 66 cells are
3374
+ opponent went up 4×, the safe amplitude fell from 0.15 to 0.13, and only 3 of 57 cells are
3313
3375
  established below at the published amplitude. Every one of those is the cost of not borrowing
3314
3376
  normality.
3315
3377
 
@@ -3332,7 +3394,7 @@ calls `applyResult` for both; `selectOpponentByStrength` draws from the five str
3332
3394
  in-division; the cooldown is initiator-only. Observed at-appearance `L` reaches 55 for an
3333
3395
  honest player while a team taking the same match count as the away side accumulates zero. That
3334
3396
  is exemption, not a ratio — bounded only by what bounds the feature, since the prize is 0.59pp at g=0.4 (0.16pp at the τ=24h safe amplitude)
3335
- and the team-level gap is 3.86pp at the safe amplitude, under the gate.
3397
+ and the team-level gap is 3.43pp at the safe amplitude, under the gate.
3336
3398
 
3337
3399
  ### What this does not settle
3338
3400
 
@@ -3367,8 +3429,9 @@ gate either, so such teams are excluded outright and the output says how many. N
3367
3429
  this window.
3368
3430
 
3369
3431
  The prize-versus-cost ordering AT THE AMPLITUDE THAT WOULD SHIP — it splits at `g=0.4`
3370
- (−0.43pp [−0.76, −0.10]) but not at the safe amplitude's own deficit (prize 0.16pp, cheapest
3371
- cost 0.16pp, paired difference 0.00pp [−0.47, 0.46]), and that second one is the decision. The neutral-point fork. Maximum LEGAL role concentration (the
3432
+ (−0.43pp [−0.76, −0.10]) but not at the safe amplitude's own deficit (0.133; prize 0.16pp
3433
+ [−0.09, 0.40], cheapest cost 0.16pp, paired difference 0.00pp [−0.47, 0.47]), and that second
3434
+ one is the decision. The neutral-point fork. Maximum LEGAL role concentration (the
3372
3435
  replay is what happened, not what the rules permit). Player identity is the snapshot's `actorIds` playerId, keyed GLOBALLY rather than per team —
3373
3436
  a minted player sold mid-window would otherwise get two chains starting from zero, understating
3374
3437
  the buyer's vector. A missing actor map or even one player that fails to join is rejected by the
@@ -3379,7 +3442,7 @@ condition is read on entry whether or not load is charged, and ownership moves o
3379
3442
  appearance. Both are right by construction, which is not the same as having been seen to
3380
3443
  run. All four τ values `{6, 12, 24, 48}h` are integrated separately, with the gate and safe-amplitude
3381
3444
  search rerun on that τ's own cells rather than converted from 24h. At τ=24h the published run has
3382
- 66 exposure-mixed cells: 0 established above the gate, 3 established below it, and 63 undecided.
3445
+ 57 exposure-mixed cells: 0 established above the gate, 3 established below it, and 54 undecided.
3383
3446
  Snapshot coverage turned out to be a step function — 0% before 2026-08-21 and 100% after — so
3384
3447
  the window is 11 fully covered days rather than a 37% sample, and the script finds that step
3385
3448
  itself. The cost is that nothing with a period longer than 11 days is visible.
@@ -3401,9 +3464,12 @@ MATCHES=3000 SNAPSHOTS=/tmp/prod-tl.json REPLAYS=5 TAU_SWEEP=6,12,24,48 \
3401
3464
  still "the last completed UTC day", so an unqualified re-export extends it by a day — but
3402
3465
  `WINDOW_END` makes that date the window's (exclusive) end. The numbers in this section come
3403
3466
  from **08-21 through 08-31, 1,201 matches**, and re-exporting with `WINDOW_END=2026-09-01`
3404
- reproduces that `matches` array **byte for byte** (verified) which came for free from
3405
- collapsing a window boundary that had been spelled out in eighteen separate places into one
3406
- definition. The window's length remains a limitation.
3467
+ reproduces that `matches` array **byte for byte** (verified three times). The complete 0600 JSON
3468
+ used by this run has SHA-256
3469
+ `1c7335ba9fa11388363de57628207ecc4820dc9bb02285066bda849adf571b6f`; that is the anchor that
3470
+ prevents scalars from being mixed across exports. This reproducibility came from collapsing a
3471
+ window boundary that had been spelled out in eighteen separate places into one definition. The
3472
+ window's length remains a limitation.
3407
3473
 
3408
3474
  **"Fully covered" cannot be counted from completed rows alone.** A day with rows still
3409
3475
  unfinished, or whose cup bracket has not completed, is not fully covered — knockout rows are
@@ -3477,8 +3543,9 @@ has to carry which predicate it is conditional on.
3477
3543
  Without `TAU_SWEEP` only `TAU_H` runs. **Calling a single-τ run a "decision" makes a probe
3478
3544
  default the production recovery rate** — that is why the sweep exists.
3479
3545
 
3480
- `REPLAYS` now applies only to the predicate table, where each fixture is replayed
3481
- independently. The timeline is integrated once, from each match's stored `rng_seed`.
3546
+ `REPLAYS` now applies only to fixed-fixture summaries: predicate rates average the draws,
3547
+ while the one-match increment distribution keeps each integer draw as an observation. The
3548
+ timeline is integrated once, from each match's stored `rng_seed`, and is independent of it.
3482
3549
 
3483
3550
  **"`tsc` does not see these probes" is wrong, and it was checked.** #719 added
3484
3551
  `skill/reference/probes/**/*.mts` to `packages/mcp/tsconfig.typecheck.json`, and