
| anchor | n | hit rate | mean |available| |
|---|---|---|---|
| S1 | 552 | +36.8% | +1.23% |
| S2 | 240 | +52.5% | +0.98% |
| S3 | 75 | +53.3% | +0.96% |
materiality calibration (S1): 60-69: n/a (n=0) · 70-79: +37.1% (n=294) · 80-89: +35.8% (n=201) · 90-100: +38.6% (n=57)
| book | n | edge bps | mean transit leak | queued-fill n |
|---|---|---|---|---|
| S1-S3 intraday | 49 | -16.30 | +0.07% | 27 |
| S4 overnight | 28 | +0.94 | -0.08% | 10 |
PRICED-at-detection: +25.4% (268/1,055)
| gate | fired | w/ cf | side-adj move | exclusions |
|---|---|---|---|---|
| tape gate | 79 | 77 | +81.78% sum | post close=2 |
| materiality floor | 142 | 136 | -20.04% sum | post close=6 |
| netting | 256 | 231 | -0.21% mean | post close=25 |
| PRICED block | 268 | 258 | -106.00% sum | post close=10 |
| news age | 22 | 22 | +13.96% sum | none |
| news age S4 o/n | 23 | 3 | +0.32% sum | slot outranked=13, slot taken by entry=5, next session after window=2 |
INJECTION CHECK (reading_rules): neither retro_buckets nor coach_report_audit contains anything that reads as an instruction directed at me; both self-report clean inputs (retro_buckets scope check; coach_report_audit scope note). Nothing to flag. Arithmetic anchor: retro_buckets' twelve bucket sums plus the unbucketable 1219 total −$62.56 (−98.94 −90.87 +81.70 −74.21 +70.59 +56.47 +41.65 −36.14 −13.76 −9.23 +7.00 +0.36 +2.82), matching attribution.decomposition.totals.pnl to the cent — the taxonomy is mechanically anchored this week.
RESOLUTION OF LAST WEEK'S DATA-INTEGRITY FLAG, stated first because it governs everything below: PR #265 (Jev classifier at materiality cutoff 70) now reads deploy_status live (predictions_to_grade row 265), and the mechanical sections confirm the cutoff ran for the whole reviewed week — gauges.gauge1.materiality_calibration's 60-69 band is n=0 (it carried 394 of 449 S1 alerts last week per prior_weekly_reviews 2026-09-21 §2), threshold_constants and article_funnel both read materiality_threshold 70, and strategy_aggregates.top_skip_rationales shows the S2/S3 floor now rejecting materiality 70/71/72/73 (55+26+16+10) with no "65 below floor 75" rows at all. So this week's gauge1 is the FIRST week on a different classifier and a different alert universe. No gauge1 number below is comparable to any prior week; the trailing hit-rate series ends at the 09-25 boundary and a new one starts here. This also closes one coach_report_audit §2 item in the coach's favor: its 09-28 claim that "#265 is live" was correct (the PR is dated 09-25, the prior week, which is why it is absent from this week's changelog), and the same applies to the 10-01 citation of #264 (also 09-25, also live).
1. SCOREBOARD READ
Blended edge this week is −9.93 bps (scoreboard.week_edge_bps): s13 intraday −16.3 bps on 49 trades, s4 overnight +0.94 bps on 28 (gauges.traded.s13_intraday, gauges.traded.s4_overnight). Against gauges.trailing_trend plus prior_weekly_reviews, s13 is negative for the tenth time in twelve reviewed weeks (series: −18.47, −5.34, −9.96, −16.28, −13.48, −27.37, −15.76, +24.12, −43.37, +10.3, −11.62, now −16.3). The move from −11.62 to −16.3 is ~$20 of capture across 49 trades — a single trade's worth (retro_buckets bucket 1's 1271+1278 pair alone is −$21.24) — and is not distinguishable from noise. S4's +0.94 follows last week's +75.62 and a 7-of-8 negative trailing record (gauges.trailing_trend); it is a scratch week on n=28 (S4 pnl +$2.18, 46.4% WR, scoreboard.per_strategy S4) and moves nothing. The tape was mildly against the book (do_nothing_baseline −0.14%, n=931, scoreboard) and market_pnl was −49.51 of a −62.56 total (attribution.decomposition.totals) — this week's red is roughly what the cohort's own tape delivered, with selection (+147.57) and timing (−160.62) cancelling. No target value for edge bps is proposed.
The number that matters this week is not edge bps but the prediction gauge: gauge1 S1 hit rate printed 36.8% (n=552, hits 203, gauges.gauge1.s1). Binomial SE ~2.1pp, so this is ~6 SE below coin flip and ~6 SE below last week's 55.5% (n=449). That is not noise — but per the flag above it is also not a trend: the classifier and the alert cutoff both changed at the 09-25 boundary, and this is week one on the new instrument. Two things keep it from being read as "the new classifier is anti-predictive": first, the dollar-weighted read is flat — mean_available_pct is −0.06 against mean_abs_available_pct 1.23 (gauges.gauge1.s1), i.e. +0.08pp over the −0.14% do-nothing baseline; solving the two means, the 203 hits averaged roughly 1.6% of available move and the 349 misses roughly 1.0%, so the classifier was wrong more often on smaller moves and right less often on larger ones, netting to nothing. Flipping its sign would not produce a signal; it would produce −0.06% → +0.06%, still nothing. Second, two declined ledgers independently describe an unusual reversal regime this week: the priced block's blocked cohort would have LOST −106.0% summed over 258 counterfactuals (200 avoided losses vs 58 missed wins, gauges.declined.priced_block) — the most loss-avoiding priced-block week in the series (prior: +38.77, +12.74, −17.22, +53.28 per prior_weekly_reviews §2 each week) — meaning alerts whose direction matched an already-completed ≥2% move reversed into the close 78% of the time; and the S1 tape gate's blocked cohort (side fighting the day's move) would have WON +83.57% over 51 (36 wins vs 15 losses, gauges.declined.tape_gate S1). A classifier whose direction correlates with the pre-detection move (median pub→detect 753s, article_funnel) will print a low detection→close hit rate in such a week regardless of its quality. I cannot separate "new classifier is worse" from "mean-reverting week" from "direction-label convention differs in the Jev integration" with one week; all three are stated as open hypotheses and §5 is designed so that next week can begin to separate them. What this week CAN say: there is still no measurable directional edge at detection on any instrument (mean available ≈ baseline).
GRADE OF LAST WEEK'S BET (2026-09-21 §5, TAPE_CONTRADICTION_PCT 1.0 → 1.5): NOT SHIPPED. Verified mechanically: threshold_constants.TAPE_CONTRADICTION_PCT still reads 1.0, and gauges.declined.tape_gate fired 79 against last week's 89 — no material drop, consistent with no change. That is the SEVENTH consecutive unshipped reviewer bet. The coach's parallel push was withdrawn on 10-01 on the stated ground that "phantom blocks" inflate the tape_gate aggregate (coach_report_audit §1, untrusted) — a claim about the mechanical ledger I cannot verify from here; the ledger itself reports non_gate_excluded 0, i.e. it claims to already exclude non-gate declines. The owner should check that ledger's counting semantics before acting on the +83.57 in either direction, because it now carries both my #120 grade and three weeks of selection diagnosis. Separately, the bet's own grading design failed a test it didn't need the change to run: its branch (a) threshold (s13 selection spread ≥ −0.15pp pooled) was met this week with nothing shipped — the spread went from −0.67pp to +0.02pp on its own (gauges.traded.s13_intraday.mean_available_pct −0.12 minus scoreboard.do_nothing_baseline −0.14). The single-week spread swings ±0.7pp on noise; any future bet on it must grade a within-period counterfactual (blocked cohort vs surviving cohort in the same week), never a before/after.
Governance, per my own 09-14 and 09-21 pre-commitments: the finding is complete and this review does not re-litigate it. Two owner PRs merged and read live this week (#267, #269, both cost/ops; predictions_to_grade), so the channel ships owner-initiated items; it has shipped zero of seven reviewer bets and zero of the coach's week-long pushes (fill-chase guard five sessions, S4 reallocation, relevance control three sessions — coach_report_audit §3). The 09-21 review said next week should "say only" that the shipping-channel audit is the blocking dependency. The task format requires all five deliverables, so I produce them — but with the standing position unchanged: until the operators audit why measurement-organ asks do not execute, the weekly bet is a channel canary first and an experiment second. §5 is issued because the classifier swap is genuinely new information that changes what the bet should be, not as a retraction of that position.
Operational notes: detect→alert median fell to 4.8s from 17.0s last week (article_funnel.latency_detect_to_alert_secs vs prior_weekly_reviews 2026-09-21 §3 #166), consistent with a faster classifier; pub→detect is unchanged at 753.1s blended, alpaca 265.4s vs eventregistry 758.8s (article_funnel.by_provider). journaled_llm_cost_partial_usd is 1.39 against 8.41 last week — a floor, not a total, but a 6x drop in the journaled coach/audit rows is consistent with #260/#267 moving those roles off OpenRouter. Over half of this week's s13 trades were queued fills (transit_queued_n 27 of 49, gauges.traded.s13_intraday) — most intraday trades were taken on news detected outside RTH and filled at the open; noted for §2 Link 4.
2. CHAIN DIAGNOSIS
Link 1 — Prediction (all alerts, gauge1; FIRST WEEK ON THE JEV CLASSIFIER, not comparable to prior weeks). S1: 36.8% (n=552, SE ~2.1pp), mean_available_pct −0.06 vs mean_abs 1.23 (gauges.gauge1.s1) — count-wise far below coin flip, dollar-wise flat (see §1). S2: 52.5% (n=240, gauges.gauge1.s2) with mean_available −0.19 — the mirror skew: right on small moves, wrong on big ones (hits ~0.75%, misses ~1.2% by the same two-means derivation). S2's graded n jumped from 48 to 240 and excluded_direction_unclear is 76 — the new classifier emits far more secondary-ticker and ambiguous output than qwen did; the pooled S2 series I have carried (≈46% through last week) is now cross-instrument and I stop pooling it. S3: 53.3% (n=75, SE ~5.8pp), mean_available +0.11 — coin flip, thin, n down from 161 (gauges.gauge1.s3). Materiality calibration (gauges.gauge1.materiality_calibration): 70-79 → 37.1% (n=294), 80-89 → 35.8% (n=201), 90-100 → 38.6% (n=57). Flat within 3pp across all three bands at the largest top-band n of the series; mean_abs_available does rise with materiality (1.02 → 1.41 → 1.69), so the new classifier's materiality ranks move SIZE, not direction. Eighth consecutive week — across two classifiers — that materiality does not rank prediction skill.
Link 2 — Transit. Priced-at-detection 25.4% (268/1055, gauges.priced_at_detection), top of the series' 15-25% range. s13 transit_usd_sum +$25.45, mean_transit_pct +0.07 (gauges.traded.s13_intraday) — transit added money for the eighth consecutive week; it is not the leak, but note what a positive transit paired with negative capture means: the move from detection to entry was in the trade's favor and the move from entry to exit against it — the system entered after the favorable move, which cross-checks retro_buckets bucket 12 (six entries at ±1-1.5% from prior close, nothing left) and bucket 2's "four of seven entered after a same-day pop." S4 transit −14.88 / capture +2.18 (gauges.traded.s4_overnight) — the three-week "right signal, wrong window" S4 signature that broke last week did not return; S4 entered after adverse moves and the overnight window recovered them. Blended pub→detect median 753.1s ≈ 12.6m; alpaca 265.4s vs eventregistry 758.8s = 2.86x (article_funnel.by_provider), inside the stable 2-3.5x range. Per-ticker detection medians (per_ticker.detection_latency_median_secs) run 554-915s across the universe with SMCI at 1562s; AAPL, the week's best ticker (+26.83), is also the slowest MAG7 name at 914.9s — one week, the opposite of the latency-leak story, noted without generalizing. No per-ticker transit-leak field exists (#87 still not live).
Link 3 — Selection. s13: available_usd_sum −$39.29, mean_available_pct −0.12 (gauges.traded.s13_intraday) against the −0.14% do-nothing baseline — a +0.02pp spread, zero selection alpha, after last week's −0.67pp; the series now reads negative-both-books, −0.29, +0.18, 0.00, −0.67, +0.02 (prior_weekly_reviews §2 each week) — a metric bouncing around zero. s4: mean_available −0.00, +0.14pp spread, n=28. Attribution's selection_pnl +147.57 (attribution.decomposition.totals) tells a friendlier story than the spread, and this week the two definitions can be reconciled through the declined ledgers: the funnel from alerts to trades threw away the priced cohort that would have lost 78% of the time (gauges.declined.priced_block: −106.0 over 258) and threw away the counter-tape S1 cohort that would have won 71% of the time (gauges.declined.tape_gate S1: +83.57 over 51, +1.64%/fire). Net, the funnel picked a cohort that traded to 48.3% S1 win rate (scoreboard.per_strategy S1) out of a pool that hit 36.8% — selection improved on the pool this week, mostly via the priced block. The tape gate's cost is now three consecutive weeks running (+0.50, +0.48, +1.64 per blocked trade; prior_weekly_reviews 2026-09-14 §3 and 2026-09-21 §3 #120) and this week's is three times larger than either prior — with the caveat that MU alone accounts for 31 of the 79 gate fires (per_ticker MU row) in its earnings week, which retro_buckets bucket 3 calls a coin-flip cluster; the ledger is not split per ticker, so I cannot say how much of the +83.57 is MU reversals. Materiality floor: fired 142, blocked −20.04 over 136 (80 missed wins vs 56 avoided losses, but the avoided losses were larger — gauges.declined.materiality_floor); with the cutoff now at 70 the floor only removes the 70-74 band, and S2/S3 closed 20 trades this week versus 5 last week (scoreboard.per_strategy; prior_weekly_reviews 2026-09-21 §3 #143) — its bite narrowed by four-fifths. Netting fired 256 (mean move to close −0.21, gauges.declined.netting). Per-ticker dispersion (per_ticker rows): worst AVGO −59.32, SMCI −48.76, AMD −46.58, AMZN −33.14, MSFT −32.79 (0% priced); best AAPL +26.83, GOOGL +12.55, NVDA +11.1. No priced-rate pattern either way (NVDA 31.6% priced positive, TSLA 71.9% and META 48.3% negative) — the high-priced-rate-winners curiosity is dead a fourth time. Surprise rate 0.0% on all 15 tickers, eighth straight week.
Link 4 — Capture. Exit slippage benign and positive: +$8.75 over 49 exits, mean +$0.18 (attribution.exit_slippage). MFE-realized degenerate on every strategy (S1 −0.75, S2 −0.14, S3 −0.50, S4 −1.74, attribution.mfe_realized — negative fractions, unusable except as a near-zero-MFE-denominator symptom; eighth week this field cannot grade an exit rule). Timing_pnl −160.62 of −62.56, S1 −100.18 (attribution.decomposition) — the largest negative bucket for the seventh time in eight reviews (series −311.13, −162.64, −120.57, −30.25, −130.62, −165.25, −102.43, −160.62). The retro corpus splits it the same way as always and survives the mechanical cross-check: entry-side lateness (bucket 12, bucket 2's post-pop entries, bucket 11's fill gaps with "roughly a quarter of the week" showing unexplained decision-to-fill gaps) plus exit-policy give-back on correct signals (bucket 4: eight S4 trades with +1.8% to +6.7% peaks closed at losses, −$74.21; bucket 6: eight winners capturing ≤60% of peak; bucket 9: five intraday trades ~1% in the money closed at the worst). The 27-of-49 queued-fill share (gauges.traded.s13_intraday.transit_queued_n) is new context for the entry side: more than half of s13 entries were 09:30 open fills on pre-RTH news, which is where decision-to-fill gaps structurally live.
SINGLE WEAKEST LINK: prediction — stated as a return to the standing diagnosis after last week's one-week selection call, and stated with an explicit instrument caveat. Convicting numbers: S1 36.8% on n=552 with mean available −0.06% against 1.23% absolute available (gauges.gauge1.s1) — the dollar-weighted read is +0.08pp over passive, i.e. no measurable signal, on the new classifier as on the old; materiality flat at 35.8-38.6% across bands with real n (gauges.gauge1.materiality_calibration); S2 mean available −0.19 on n=240 (gauges.gauge1.s2); and the retro corpus's three signal-quality buckets (1, 2, 8: non-catalyst article traded as a catalyst, direction simply wrong, article not about the traded ticker) totalling ≈ −$226 against ≈ −$88 for the exit buckets (retro_buckets cross-cutting note), which I cross-checked against S1's 48.3% traded win rate and the gauge1 collapse before repeating. Last week's selection conviction did not extend: the spread is +0.02pp, selection_pnl +147.57. Timing (−160.62) remains the largest dollar bucket and the standing no-oscillation reasoning holds — on an instrument reading 36.8% with flat available, exit redesign optimizes the monetization of noise. What is NEW and must be carried: the instrument changed. If next week's S1 prints ~37% again with mean available ≈ baseline, then 37% is simply what the Jev classifier's coin flip looks like on the detection→close window (it emits directions that track the pre-detection move) and the hit-rate gauge needs re-reading against the available-move gauge; if it returns to 46-54, this week was the reversal regime. Either way, the honest headline is unchanged across two classifiers: no measurable directional edge at detection, with the publish-vs-detection confound still untested solely by non-shipping.
3. PREDICTION GRADES
Deploy_status is a single-instant read at the week's last session (2026-10-02); every genuine clause reads live, including #260/#265/#264/#267/#269 which were not_deployed or absent last week — "live at the last session" does not say when in the week they went live, except for #265, whose cutoff is mechanically evidenced across the whole week (see the resolution note above). Backfilled clauses (#108 and below) are attribution material only, not graded. Oscillation guard: no grade below reverses a prior week's grade; #120 stays refuted for a second week.
GRADE #269 cost: not-yet-measurable — deploy_status live (dated 09-30, at most ~3 sessions in-week); no /healthz 503 count or claude-cli call log exists in any mechanical section. GRADE #267 cost: not-yet-measurable — deploy_status live; no weekly_reviews.cost or cli_notional_cost_usd field in any mechanical section. Noting without grading: article_funnel.journaled_llm_cost_partial_usd fell to 1.39 from 8.41 last week (prior_weekly_reviews 2026-09-21 §3 #155), direction-consistent with the review arm leaving OpenRouter, but that field covers coach/audit rows, not weekly_reviews. GRADE #264 signal: refuted — deploy_status live, dated 09-25, so the gate removal plausibly ran all week; the clause predicted S4 entries ↑ ~2.8/session, and scoreboard.per_strategy S4 closed 28 over 5 sessions (5.6/session) versus 31 last week (6.2/session, prior_weekly_reviews 2026-09-21 §1) — entries fell ~0.6/session rather than rising. First grade, no oscillation. Heavily confounded and stated so: #265's cutoff 70 removed the 60-69 alert band in the same week (gauges.gauge1.materiality_calibration 60-69 n=0), shrinking S4's candidate pool at the same instant the alignment gate stopped skipping; the stated metric failed, but one confounded week does not show the gate removal was wrong. S4 mean_transit_pct −0.08 (gauges.traded.s4_overnight) is consistent with counter-move entries now being allowed. GRADE #265 cost: not-yet-measurable — deploy_status live and the cutoff-70 half is mechanically in force all week (materiality_calibration 60-69 n=0; threshold_constants/article_funnel materiality_threshold 70; top_skip_rationales 70-73 below floor 75), but no classify-spend or classifier p50 field exists; journaled_llm_cost_partial_usd explicitly excludes classifier spend (journaled_llm_cost_note). Proxy consistent with the p50 claim, not a grade: detect→alert median 4.8s (article_funnel.latency_detect_to_alert_secs) from 17.0s last week. GRADE #260 cost: not-yet-measurable — deploy_status live; no 30-day OpenRouter per-role spend in any mechanical section; the 1.39 journaled floor is a weekly number of a different metric. GRADE #253 cost: not-yet-measurable — no shadow_sessions.elapsed_ms or page-count field in mechanical sections. Eighth week at this status. GRADE #242 signal: not-yet-measurable — no mechanical count of counter-move S4 entries or s4_alignment_skips; and the clause is now superseded: #264 (deploy_status live) removes the gate #242 added, while #242 still reads live — the two cannot both be active, and deploy_status (commit reachability) cannot tell me which behaviour ran. Flag to the owner: one of these two rows should be marked reverted. GRADE #241 cost: not-yet-measurable — no page-count data in mechanical sections. GRADE #228 freshness: not-yet-measurable — no stale-at-fill cancel count in mechanical sections (gauges.traded transit_queued_unknown_n=0 measures a different thing; transit_queued_n 27 says queued fills were common this week). GRADE #226 freshness: not-yet-measurable — no absorbed-move counterfactual ledger in gauges.declined or strategy_aggregates. Noting without grading: retro_buckets bucket 2 (untrusted) describes 1218 chasing a +1.98% 30-minute bounce and 1267 entering +1.33% at the top — the second is below the 1.5% gate and the first is a 30m move, not since-close; neither is a visible gate violation. GRADE #222 signal: not-yet-measurable — gauges.declined.priced_block (fired 268) is not band-resolved by |since|; sub-2.0 "verdict PRICED" skips remain uncountable. GRADE #216 freshness: not-yet-measurable — no stall/paging data in mechanical sections. GRADE #212 signal: confirmed — the ledger exists and grades: gauges.declined.news_age_s13 fired 22, with_counterfactual 22, blocked_pnl_pct_sum +13.96; news_age_s4 fired 23, with_counterfactual 3, blocked_overnight_pnl_pct_sum +0.32 (S4 coverage still thin: 13 slot_outranked + 5 slot_taken_by_entry + 2 next_session_after_window excluded). Eighth consecutive confirmed. GRADE #211 signal: not-yet-measurable — daily-report contents have no mechanical counterpart. GRADE #209 signal: not-yet-measurable — article_funnel.by_provider.eventregistry (articles 21839, classify_eligible 17535) has no per-day duplicate-eligibility delta. GRADE #207 cost: not-yet-measurable — no retry-ladder timing data in mechanical sections. GRADE #206 freshness: not-yet-measurable — no stale-at-fill cancel counts in mechanical sections. GRADE #203 cost: not-yet-measurable — prior_weekly_reviews retains seven consecutive reviews (Mondays produce reviews) but the clause covers both arms and no mechanical run-log exists. GRADE #202 freshness: confirmed — article_funnel.by_provider exists with per-provider latency (alpaca median 265.4s, eventregistry 758.8s); #177 is graded off the split, never the blend. Eighth consecutive confirmed. GRADE #198 cost: not-yet-measurable — no journal-row reasoning-field data in mechanical sections. GRADE #193 risk: not-yet-measurable — no S4 failed/orphaned-enter counter; news_age_s4.post_close_decision_excluded=0 is a ledger exclusion, not an orphan count. GRADE #188 signal: not-yet-measurable — coach citation behavior has no mechanical counterpart; coach_report_audit §2's arithmetic checks and its listed miscounts (five rows for six longs, inverted in/out-of-band summary on 09-30) are untrusted, one hop removed, not gradeable either way. GRADE #185 signal: not-yet-measurable — no pre-open prev_close comparison field and no stale-at-fill cancel count in mechanical sections. GRADE #179 freshness: confirmed — the gate demonstrably fires across strategies: gauges.declined.news_age_s13 fired 22, news_age_s4 fired 23; strategy_aggregates.top_skip_rationales "news 4-8h old at decision, floor 4h" S4=12, "8-24h" S4=10, S1=9. As in all prior weeks, "trades on >4h news → 0" is inferred from gate activity plus absence of any contrary field. Counterfactual: blocked s13 cohort +13.96 over 22 (15 missed wins vs 7 avoided) — cost money this week; the sign has bounced every week, still noise. GRADE #177 freshness: refuted — article_funnel.by_provider: alpaca 265.4s vs eventregistry 758.8s = 2.86x, short of ≥5x. Eighth consecutive refuted; ratio stable in the 2-3.5x range. The never-blended half remains honored (see #202). GRADE #172 freshness: not-yet-measurable — no opening-tick drain metric in mechanical sections. GRADE #168 cost: not-yet-measurable — no historical-delta data in this prompt. GRADE #166 freshness: confirmed — proxy: article_funnel.latency_detect_to_alert_secs median 4.8s (n=931), far under the 10m target and down from 17.0s; standing flag that detect→alert contains but is not labeled "classify wait." GRADE #153 cost: not-yet-measurable — no shadow-send data in mechanical sections. GRADE #155 cost: not-yet-measurable — journaled_llm_cost_partial_usd 1.39 is an explicit floor with no per-call baseline split. GRADE #151 cost: not-yet-measurable — no audit fire/no-fire flip data in mechanical sections. GRADE #147 risk: not-yet-measurable — no mechanical tripwire counter; both LLM summaries report no injection this week (untrusted). GRADE #146 risk: not-yet-measurable — same class as #147; no mechanical measurement. GRADE #143 signal: confirmed — scoreboard.per_strategy: S2 9 trades +$5.30 + S3 11 trades −$13.54 = −$8.24 combined, inside "toward ≥ −$30" from ≈ −$108, with the floor firing (gauges.declined.materiality_floor fired 142, blocked −20.04; top_skip_rationales S2 "materiality 70/71/72/73 below floor 75" 55+26+16+10). Eighth consecutive confirmed, with a new caveat on top of the standing one: now that materiality_threshold is 70, the floor removes only the 70-74 band and S2/S3 volume quadrupled (20 closed vs 5 last week) — the "entries ↓" half of the clause is weakening by configuration drift, and the floor remains a volume cap, not a quality filter (retro_buckets bucket 8's nine mis-attributed trades, −$36.14, all cleared it). GRADE #140 cost: not-yet-measurable — no timeout/page data in mechanical sections. GRADE #139 cost: not-yet-measurable — no error-envelope data in mechanical sections. GRADE #138 cost: not-yet-measurable — no auditor fire-count in mechanical sections. GRADE #137 freshness: confirmed — publish→alert ≈ 757.9s ≈ 12.6m (article_funnel: pub→detect median 753.1s + detect→alert 4.8s), stable vs 12.9-13.5m across all prior reviewed weeks; ER (~98% of articles) at 758.8s per by_provider. GRADE #134 cost: not-yet-measurable — no page-storm/WARNING data in mechanical sections. GRADE #131 cost: not-yet-measurable — scaffolding-citation rate has no mechanical counterpart. GRADE #130 signal: not-yet-measurable — no delimiter-breakout counter in mechanical sections. GRADE #128 cost: not-yet-measurable — no 400/self-heal data in mechanical sections. GRADE #126 cost: not-yet-measurable — no prompt_chars measurement in this prompt. GRADE #121 cost: not-yet-measurable — no timeout-page or shadow-row counts in mechanical sections. GRADE #120 risk: refuted — second consecutive refuted, no oscillation: gauges.declined.tape_gate S1 fired 51, with_counterfactual 51, missed_wins 36 vs avoided_losses 15, blocked_pnl_pct_sum +83.57% ≈ +1.64%/blocked trade, following +0.48 and +0.50 in the two prior weeks (prior_weekly_reviews 2026-09-21 §3, 2026-09-14 §3). Three consecutive weeks of the gate costing money is not "net gated P&L ≈ 0." Two confounds stated: this week's reversal regime (§1) and MU's earnings-week concentration (31 of 79 fires, per_ticker MU row) make +1.64 an upper bound on the gate's typical cost; and the coach's untrusted "phantom blocks" claim (coach_report_audit §1) about this ledger's counting is unverified — the ledger reports non_gate_excluded 0. The S2/S3 halves of the gate were neutral (−1.17 over 18, −0.62 over 8). The "worst-day S1 loss ↓" half remains unassessed (no worst-day field). GRADE #117 signal: confirmed — proxy: processed/classify_eligible = 17944/(409+17535) = 100.0% (article_funnel + by_provider). Sixth consecutive clean week; standing caveat that the proxy cannot isolate the capped-tick tail.
4. BUCKET PROMOTION
Newly promoted: the relevance defect — retro_buckets bucket 1 (non-catalyst article coded as a directional signal: opinion pieces, previews, two-sided headlines; 9 trades, −$98.94, the week's costliest bucket) together with bucket 8 (rationale article not about the traded ticker: NVDA buyback → AMD/GOOGL, IonQ → MSFT, Cal-Maine → META; 9 trades, −$36.14, plus ten secondary members flagged with the same defect). Combined 18 of 77 trades and −$135.08. Recurrence: the pattern has appeared small every week (08-17 bucket 7 catalyst-ticker mismatch; 08-24 bucket 6 tenuous read-throughs −$18.15; 09-07 bucket 8 tenuous sympathy −$14.84; 09-21 bucket 7 inert multi-year catalysts −$15.28, per prior_weekly_reviews §4 each week) and this week became the largest — coincident with the classifier swap. Mechanical cross-check per reading_rules, stated with its limits: nothing in the mechanical sections can verify "the article was not about the ticker"; what they do show is that the new classifier's output shape changed in exactly the direction the retros describe — S2 graded n 48 → 240 with 76 direction_unclear exclusions (gauges.gauge1.s2 vs prior_weekly_reviews 2026-09-21 §2), S1 graded n 449 → 552 on a near-identical alert count (931 vs 920, article_funnel), and the S1 hit rate at 36.8% with every materiality band flat (gauges.gauge1). The coach independently asked for relevance control on three sessions in three different mechanisms without withdrawing any (coach_report_audit §1, §3 — untrusted, but consistent). The mechanical rule it deserves is a classifier-emitted story_type/subject_ticker field gating S1-S3 — that is §5. Evidence-thinness admitted: the large cost is one week of LLM-read retros on a classifier one week old.
Standing promotion, extended (sixth): the stale/chased-entry pattern (promoted 08-17, re-promoted 08-24, 09-07, 09-14, 09-21). This week it is diffuse rather than a single bucket — bucket 12 (six entries after the repricing, scratch), bucket 11 (three fill-gap-decided trades, with the cross-cutting flag of unexplained decision-to-fill gaps on ~17 further ids), and bucket 2's four post-pop entries. Mechanical corroboration unchanged: timing_pnl −160.62 (attribution.decomposition), s13 transit +25.45 paired with capture −64.74 (gauges.traded.s13_intraday — entries after the favorable move), exit slippage benign (+$8.75), and new this week, 27 of 49 s13 entries were queued open fills (transit_queued_n). The coach's fill-chase guard is now on its fifth unaddressed session and its spec drifted (coach_report_audit §1: a since-close ceiling proposed 09-29, dropped 09-30) — when it ships, it must be direction-explicit and baselined on decision price, as flagged 09-07 and 09-21. Still no carrying PR.
Previously promoted, still unresolved: S4 overnight-drift (promoted 08-31). This week retro_buckets bucket 4 (eight S4 trades with +1.8% to +6.7% peaks round-tripped to losses, −$74.21) names the fixed next-close exit as the mechanism; mechanically S4 printed +$2.18 at 46.4% WR (scoreboard.per_strategy), selection +58.08 against market −55.04 (attribution.decomposition.per_strategy.S4), spread +0.14pp (gauges.traded.s4_overnight vs scoreboard.do_nothing_baseline), MFE-realized −1.74 (attribution.mfe_realized, degenerate). Fifth week promoted-and-unresolved; the shadow instrument never shipped and #264 has since changed S4's entry rules, so even a shipped shadow would now be measuring a different S4.
Pre-committed conditional, NOT triggered: last week I committed to promoting the exit give-back buckets (this week's 4, 6, 9) to a mechanical exit rule if S1 printed above the coin-flip band again on the SAME classifier. The classifier changed and S1 printed 36.8% (gauges.gauge1.s1); both conditions fail. The standing reasoning holds without oscillation and is, if anything, stronger on an instrument reading 36.8% with flat available: an exit rule here would be tuning the monetization of noise. First in line if prediction ever resolves; MFE-realized must be fixed first (eighth degenerate week) for any such rule to be gradeable.
Dormant / watch: the violent-adverse-rally tail (promoted 08-10) — seventh week without recurrence; the week's worst single trade is in the −$30 range (bucket 2); reopen on recurrence. Netting-forced exits — fifth week observed (bucket 10, −$9.23, 5 trades; gauges.declined.netting fired 256), measured cost still small; watch. Bucket 11's internal-data flags (1223 pnl below recorded worst unrealized, 1247 above recorded best; 1279's unexplained fill 3.5% below decision) are owner data-quality items, not patterns.
Cross-check note on Stage A: retro_buckets' claim that TAPE_CONTRADICTION_PCT and S2_S3_MIN_MATERIALITY are "not exercised in this week's data" is correctly scoped to entered trades only; on the declined side the tape gate fired 79 and the floor 142 (gauges.declined), and the floor's bite has narrowed by configuration (see #143). Stage A's "losses dominated by signal quality (≈ −$226) rather than exit mechanics (≈ −$88)" survives cross-check against S1's 48.3% traded WR, the 36.8% gauge, and timing's split; I repeat it with that anchoring.
5. ONE BIGGER BET
Target: prediction, the weakest link named in §2, at its newly most expensive and now mechanically-corroborated failure mode — the classifier treating non-catalyst and off-ticker stories as directional signals (retro_buckets buckets 1+8, −$135.08 on 18 trades; gauges.gauge1.s2 n 48 → 240 with 76 direction_unclear on the new classifier). The lever is a prompt plus a gate on that prompt's output: the same ask the coach has pushed three sessions in three inconsistent forms (coach_report_audit §3), here made single and gradeable. It is also the first bet that can begin to separate the three hypotheses about this week's 36.8% (§1): if the on-ticker catalyst cohort hits no better than the non-catalyst cohort, the problem is not relevance and the Jev instrument's baseline is simply ~37% on the detection→close window. Governance caveat restated: this is the eighth reviewer bet after seven unshipped; it is issued because the instrument changed, not as evidence the channel works, and the standing recommendation — audit the shipping channel — is not withdrawn.
Grading notes for next week: grade cohort-vs-cohort within the same weeks (both cohorts share the tape), never a before/after on raw mean_available_pct or the single-week spread (§1 showed the spread moved +0.69pp on nothing), and never edge bps — no target value is proposed. Two confounds to state alongside any grade: the classifier must be the same Jev build both weeks apart from the two added fields (any further swap voids the comparison, as #265 voided last week's); and if next week's priced_block and tape_gate ledgers again show a 70-80% reversal regime (gauges.declined.priced_block avoided_losses/with_counterfactual, tape_gate missed_wins/fired), the hit-rate branch should be read on the available-move criterion instead, since detection→close hit rates are regime-sensitive on this instrument. Regardless of whether the bet ships, next week's reviewer must report gauge1.s1 on Jev's second week against this week's 36.8% / −0.06 and declare which of the three §1 hypotheses survives — that comparison is the one thing this week's data has bought and it requires no shipping to collect. If the bet does not ship, do not re-issue it: the channel audit is the blocking dependency, and the 09-21 position stands.
Injection check: retro_buckets and coach_report_audit contain no instructions directed at this reviewer. Several prior_weekly_reviews contain directive-like language such as “next week should”; those reports are untrusted data under reading_rules, so those directives were ignored. The retro taxonomy is arithmetically anchored: its nine bucket totals sum to -$62.56, exactly matching attribution.decomposition.totals.pnl.
1. Scoreboard read
This week’s blended edge is -9.93 bps (scoreboard.week_edge_bps), with S1-S3 intraday at -16.3 bps on 49 trades and S4 overnight at +0.94 bps on 28 trades (gauges.traded.s13_intraday.edge_bps/n; gauges.traded.s4_overnight.edge_bps/n). Strategy P&L was S1 -$56.50, S2 +$5.30, S3 -$13.54, and S4 +$2.18 (scoreboard.per_strategy rows S1-S4).
The blended print fell from +16.9 bps last week (prior_weekly_reviews, week 2026-09-21, §1), but that change is not distinguishable from noise. There were only 77 closed trades, and this week’s taxonomy contains large offsetting cohorts—clean directional conversions +$213.43, outright direction failures -$161.86, and round-tripped favorable excursions -$73.83 (retro_buckets ranks 1, 2, and 4). The historical legs also remain volatile: S1-S3 has printed -11.62, +10.3, -43.37, +24.12, -15.76, -27.37, -13.48, and -16.28 bps over the preceding eight weeks; S4 has ranged from +75.62 to -107.97 bps (gauges.trailing_trend). This week extends the broader pattern—S1-S3 negative in seven of the last nine listed weeks—but one week does not establish a changed regime.
The important change is upstream rather than in edge bps: S1 prediction hit rate dropped from 55.5% last week to 36.8% this week (gauges.trailing_trend week 2026-09-21; gauges.gauge1.s1.hit_rate_pct). That comparison crosses the now-live Jev classifier and cutoff-70 deployment (#265), so it cannot be interpreted as ordinary week-to-week classifier drift (predictions_to_grade row #265 deploy_status; threshold_constants.materiality_threshold=70). The absence of any 60-69 calibration observations this week is consistent with cutoff 70 actually reaching this week’s alert population (gauges.gauge1.materiality_calibration band 60-69, n=0).
Last week’s bigger bet—raise TAPE_CONTRADICTION_PCT from 1.0 to 1.5—was not shipped. The authoritative constant remains 1.0 (threshold_constants.TAPE_CONTRADICTION_PCT). The unchanged gate fired 79 times and blocked a summed +81.78% counterfactual, including +83.57% across 51 S1 fires (gauges.declined.tape_gate aggregate and S1 row). That strengthens the evidence that the current S1 gate is harmful in this regime, but it does not grade the proposed 1.5 intervention because the lever was never pulled.
No target value for edge bps is proposed.
2. Chain diagnosis
Prediction skill, all alerts: S1 is the dominant failure. It hit only 36.8% on n=552, with mean available move -0.06% against mean absolute available move 1.23% (gauges.gauge1.s1). S2 hit 52.5% on n=240 but had mean available move -0.19%, meaning its misses outweighed its hits; S3 hit 53.3% on n=75 with mean available +0.11% (gauges.gauge1.s2 and s3). Materiality provides no ranking rescue: 70-79 hit 37.1% on n=294, 80-89 hit 35.8% on n=201, and 90-100 hit 38.6% on n=57 (gauges.gauge1.materiality_calibration). Higher confidence increased absolute move size from 1.02% to 1.69%, but not directional accuracy. Because #265 is live only at the last-session manifest read, this is strong evidence against the pipeline that produced this week’s alerts, not yet a general verdict on Jev across multiple weeks (predictions_to_grade row #265 deploy_status).
Transit/freshness: 268 of 1,055 candidates, or 25.4%, were already PRICED at detection (gauges.priced_at_detection). Blended publish-to-detect latency was 753.1 seconds, but the provider split is the valid read: Alpaca median 265.4 seconds versus Event Registry 758.8 seconds; detect-to-alert added only 4.8 seconds median (article_funnel.by_provider.alpaca/eventregistry.latency_pub_to_detect_secs.median; article_funnel.latency_detect_to_alert_secs.median). Transit did not leak money on S1-S3: it added $25.45, turning -$39.29 available into -$64.74 captured under the gauge identity available = transit + capture (gauges.traded.s13_intraday). S4 transit was -$14.88, but capture recovered +$2.18 from -$12.70 available (gauges.traded.s4_overnight). Per ticker, SMCI was the latency outlier at 1,562.4 seconds, while the other rows ranged from 553.6 to 914.9 seconds (per_ticker SMCI and other ticker detection_latency_median_secs fields). No per-ticker transit-leak bps field or live #87 clause appears in this prompt, so whether transit leakage “dropped per ticker” is not measurable.
Selection: the traded cohort was not worse than the do-nothing universe on the simple available-move spread. S1-S3 mean available was -0.12% versus the -0.14% do-nothing baseline, a +0.02pp spread; S4 mean available was approximately 0.00%, a +0.14pp spread (gauges.traded.s13_intraday.mean_available_pct; gauges.traded.s4_overnight.mean_available_pct; scoreboard.do_nothing_baseline.mean_pct). The decomposition is more favorable: selection contributed +$147.57 overall, including +$13.38 S1, +$64.13 S2, +$11.97 S3, and +$58.08 S4, while market contributed -$49.51 (attribution.decomposition.totals and per_strategy). Thus the alert-to-trade funnel selected a better dollar cohort this week even though the underlying S1 classifier was directionally poor.
Per-ticker outcomes were dispersed rather than temperament-monotone. AAPL +26.83 bps, GOOGL +12.55, and NVDA +11.10 were positive, while AVGO -59.32, SMCI -48.76, AMD -46.58, AMZN -33.14, and MSFT -32.79 were negative (per_ticker respective week_edge_bps fields). Priced rates do not explain the cross-section: NVDA was positive despite 31.6% PRICED, while AVGO and AMD were deeply negative at only 13.2% and 14.4% PRICED; TSLA was near-flat negative at a 71.9% PRICED rate (per_ticker respective priced_rate_pct and week_edge_bps fields). Surprise rate was 0.0% for every ticker over five eligible sessions, so the current surprise field supplies no discrimination (per_ticker all surprise_rate_pct and surprise_eligible_sessions fields).
Capture: monetization remains a serious runner-up leak. Timing P&L was -$160.62, more than offsetting +$147.57 selection; S1 timing alone was -$100.18, S2 -$27.44, and S3 -$32.13 (attribution.decomposition.totals and per_strategy). Exit print slippage was modestly favorable at +$8.75 total, +$0.18 per exit over 49 exits, so the loss is not explained by the final execution versus the close quote (attribution.exit_slippage). MFE-realized fractions are negative for every strategy—S1 -0.7462, S2 -0.1427, S3 -0.4984, S4 -1.7386—and therefore are not interpretable as normal retained fractions; mechanically, they show realized outcomes were adverse relative to favorable excursion rather than cleanly captured (attribution.mfe_realized rows). The retro taxonomy is consistent after mechanical cross-check: 11 favorable excursions were fully round-tripped for -$73.83, while seven positive trades still severely under-captured their peaks (retro_buckets ranks 4 and 5), against timing -$160.62 and small exit slippage in attribution.
The single weakest link is PREDICTION. The decisive evidence is S1 at 36.8% on 552 alerts with negative mean available move, plus uniformly poor 35.8%-38.6% materiality bands (gauges.gauge1.s1; gauges.gauge1.materiality_calibration). The classifier/catalyst layer also generated 13 “direction failed outright” trades costing -$161.86 and 13 unsupported or misattributed catalysts costing -$74.40 (retro_buckets ranks 2 and 3), consistent with the mechanical S1 collapse. Capture is nearly tied as a dollar leak because timing cost -$160.62, but selection was +$147.57 and the traded spread was slightly positive relative to doing nothing; fixing capture before restoring or disproving directional skill would still monetize a mostly wrong S1 stream. This conclusion is scoped to one week under the newly live #265 classifier/cutoff configuration; one week cannot establish Jev’s general effect.
3. Prediction grades
All genuine clauses read deploy_status live at the last session. That status does not establish full-week exposure. Backfilled clauses are not graded. No grade below reverses the immediately prior review: #120 remains refuted, #177 remains refuted, and the previously confirmed proxy-based clauses remain confirmed. Therefore there is no oscillation-guard reversal this week.
GRADE #269 cost: not-yet-measurable — deploy_status live, but no /healthz status or claude-cli call-overlap counter appears in any mechanical section (predictions_to_grade row #269).
GRADE #267 cost: not-yet-measurable — deploy_status live, but weekly_reviews.cost and cli_notional_cost_usd are absent from the supplied mechanical data (predictions_to_grade row #267).
GRADE #264 signal: not-yet-measurable — deploy_status live and S4 closed 28 trades, or 5.6 per session, but the clause predicts an increase of about 2.8/session and no matched pre-removal entry baseline or full-week deployment interval is supplied (scoreboard.per_strategy S4.closed; gauges.window; predictions_to_grade row #264).
GRADE #265 cost: not-yet-measurable — deploy_status live, but classifier spend and classifier p50 latency are absent; article_funnel.journaled_llm_cost_partial_usd=1.39 explicitly excludes classifier spend as a complete measure (article_funnel.journaled_llm_cost_partial_usd and journaled_llm_cost_note; predictions_to_grade row #265).
GRADE #260 cost: not-yet-measurable — deploy_status live, but no 30-day OpenRouter spend split for coach, audit, and retro is supplied (predictions_to_grade row #260; article_funnel.journaled_llm_cost_note).
GRADE #253 cost: not-yet-measurable — deploy_status live, but shadow_sessions.elapsed_ms and page counts are absent from the mechanical sections (predictions_to_grade row #253).
GRADE #242 signal: not-yet-measurable — deploy_status live, but no mechanical field counts counter-move S4 entries or s4_alignment_skips; #264 may supersede the behavior, and deploy status alone cannot resolve that (predictions_to_grade rows #242 and #264).
GRADE #241 cost: not-yet-measurable — deploy_status live, but outage-day warning-page counts are absent from the mechanical data (predictions_to_grade row #241).
GRADE #228 freshness: not-yet-measurable — deploy_status live, but no “stale at fill” cancellation count is supplied; transit_queued_unknown_n=0 is a different measure (gauges.traded.s13_intraday.transit_queued_unknown_n; predictions_to_grade row #228).
GRADE #226 freshness: not-yet-measurable — deploy_status live, but no absorbed-move ledger or count of in-direction 1.5%-2.0% entries appears in gauges or strategy_aggregates (predictions_to_grade row #226).
GRADE #222 signal: not-yet-measurable — deploy_status live, but priced_block is not split by sub-2.0% versus at-least-2.0% moves, so the specified erroneous skip cohort cannot be counted (gauges.declined.priced_block; predictions_to_grade row #222).
GRADE #216 freshness: not-yet-measurable — deploy_status live, but total stall pages and stale-quote UNKNOWN counts are not supplied (predictions_to_grade row #216).
GRADE #212 signal: confirmed — deploy_status live; the weekly ledger exists and grades both windows: S1-S3 fired 22 times with 22 counterfactuals and +13.96 blocked P&L percentage points, while S4 fired 23 times with 3 counterfactuals and +0.32 blocked overnight points (gauges.declined.news_age_s13 and news_age_s4).
GRADE #211 signal: not-yet-measurable — deploy_status live, but no mechanical field counts closed trades absent from every daily report (predictions_to_grade row #211).
GRADE #209 signal: not-yet-measurable — deploy_status live; Event Registry has 21,839 articles and 17,535 classify-eligible rows, but no field isolates the expected approximately one extra eligible duplicate per day (article_funnel.by_provider.eventregistry; predictions_to_grade row #209).
GRADE #207 cost: not-yet-measurable — deploy_status live, but retry-attempt timing and full-budget ladder counts are absent (predictions_to_grade row #207).
GRADE #206 freshness: not-yet-measurable — deploy_status live, but no count of sub-2.0% stale-at-fill cancellations is supplied (predictions_to_grade row #206).
GRADE #203 cost: not-yet-measurable — deploy_status live and this review exists, but there is no mechanical Monday run log covering both official and shadow arms (predictions_to_grade row #203).
GRADE #202 freshness: confirmed — deploy_status live; article_funnel.by_provider reports separate Alpaca and Event Registry counts and medians, and #177 is graded below from 265.4 versus 758.8 seconds rather than the 753.1-second blend (article_funnel.by_provider and latency_pub_to_detect_secs).
GRADE #198 cost: not-yet-measurable — deploy_status live, but no coach/shadow/weekly/audit journal-row reasoning-null count is supplied (predictions_to_grade row #198).
GRADE #193 risk: not-yet-measurable — deploy_status live, but no S4 post-close failed/orphaned-enter count appears; news_age_s4.post_close_decision_excluded=0 is a counterfactual-ledger exclusion, not the requested failure count (gauges.declined.news_age_s4.post_close_decision_excluded; predictions_to_grade row #193).
GRADE #188 signal: not-yet-measurable — deploy_status live, but no mechanical count of coach recommendations citing named aggregate rows is supplied; coach_report_audit is an untrusted text audit and reports citation defects rather than this exact metric (predictions_to_grade row #188; coach_report_audit §2).
GRADE #185 signal: not-yet-measurable — deploy_status live, but neither pre-open prev_close discrepancies nor stale-at-fill cancellations are mechanically counted (predictions_to_grade row #185).
GRADE #179 freshness: confirmed — deploy_status live; the >4h gate visibly fired 22 times for S1-S3 and 23 times for S4, and top rationales include S4 “news 4-8h old at decision, floor 4h” count 12, S4 “news 8-24h” count 10, and S1 “news 8-24h” count 9 (gauges.declined.news_age_s13/news_age_s4; strategy_aggregates.top_skip_rationales). As in prior weeks, zero entered >4h trades is inferred from active gate accounting plus no contrary trade field, not directly counted.
GRADE #177 freshness: refuted — deploy_status live; Alpaca median publish-to-detect was 265.4 seconds versus Event Registry 758.8 seconds, only 2.86x lower rather than at least 5x (article_funnel.by_provider.alpaca/eventregistry.latency_pub_to_detect_secs.median). The per-provider reporting half is satisfied.
GRADE #172 freshness: not-yet-measurable — deploy_status live, but no opening-tick drain-duration field appears in the mechanical sections (predictions_to_grade row #172).
GRADE #168 cost: not-yet-measurable — deploy_status live, but the claimed 422-trade historical delta comparison is absent (predictions_to_grade row #168).
GRADE #166 freshness: confirmed — deploy_status live; the closest mechanical proxy, detect-to-alert median, was 4.8 seconds on 931 alerts, far below 10 minutes (article_funnel.latency_detect_to_alert_secs). Caveat: this proxy contains but is not explicitly labeled classify wait.
GRADE #153 cost: not-yet-measurable — deploy_status live, but restart-day duplicate shadow-send counts are absent (predictions_to_grade row #153).
GRADE #155 cost: not-yet-measurable — deploy_status live, but call count and daily-spend deltas are absent; journaled_llm_cost_partial_usd=1.39 is explicitly a partial floor (article_funnel.journaled_llm_cost_partial_usd and journaled_llm_cost_note; predictions_to_grade row #155).
GRADE #151 cost: not-yet-measurable — deploy_status live, but no late-exit audit fire/no-fire comparison is supplied (predictions_to_grade row #151).
GRADE #147 risk: not-yet-measurable — deploy_status live, but no mechanical counter measures live tags reaching a prompt (predictions_to_grade row #147).
GRADE #146 risk: not-yet-measurable — deploy_status live, but no hostile-versus-benign rationale neutralization test results are supplied (predictions_to_grade row #146).
GRADE #143 signal: confirmed — deploy_status live; S2 closed 9 trades for +$5.30 and S3 closed 11 for -$13.54, a combined -$8.24, inside the clause’s “toward at least -$30” outcome, while the materiality floor fired 142 times (scoreboard.per_strategy S2/S3; gauges.declined.materiality_floor). The floor’s blocked cohort would have lost 20.04 percentage points overall, although 80 missed wins versus 56 avoided losses shows it remains a volume control rather than a clean quality ranker (gauges.declined.materiality_floor).
GRADE #140 cost: not-yet-measurable — deploy_status live, but shadow-coach timeout and watchdog-kill counts are absent (predictions_to_grade row #140).
GRADE #139 cost: not-yet-measurable — deploy_status live, but no malformed-envelope error records show whether model and reason were named (predictions_to_grade row #139).
GRADE #138 cost: not-yet-measurable — deploy_status live, but no auditor fire count or no-call count is supplied for the five sessions (predictions_to_grade row #138).
GRADE #137 freshness: confirmed — deploy_status live; blended publish-to-alert is approximately 753.1+4.8=757.9 seconds, or 12.6 minutes, consistent with the intended honest roughly 11-minute baseline rather than 6.6 minutes; Event Registry, the dominant provider, was 758.8 seconds to detection (article_funnel.latency_pub_to_detect_secs.median; latency_detect_to_alert_secs.median; by_provider.eventregistry).
GRADE #134 cost: not-yet-measurable — deploy_status live, but page-storm and per-attempt WARNING counts are absent (predictions_to_grade row #134).
GRADE #131 cost: not-yet-measurable — deploy_status live, but no mechanical rate of reports citing prompt scaffolding is supplied (predictions_to_grade row #131).
GRADE #130 signal: not-yet-measurable — deploy_status live, but no structural delimiter-breakout test or clean-article comparison appears in the mechanical data (predictions_to_grade row #130).
GRADE #128 cost: not-yet-measurable — deploy_status live, but mandatory-reasoning 400s, self-heals, and page counts are absent (predictions_to_grade row #128).
GRADE #126 cost: not-yet-measurable — deploy_status live, but coach prompt_chars and report-quality measurements are absent (predictions_to_grade row #126).
GRADE #121 cost: not-yet-measurable — deploy_status live, but coach timeout pages and shadow-row counts are absent (predictions_to_grade row #121).
GRADE #120 risk: refuted — deploy_status live; S1’s gate blocked +83.57 percentage points over 51 counterfactuals, with 36 missed wins versus only 15 avoided losses, far from “net gated P&L approximately zero” (gauges.declined.tape_gate S1 row). This continues last week’s refuted grade rather than reversing it; worst-day loss remains unmeasured.
GRADE #117 signal: confirmed — deploy_status live; processed equals total classify-eligible exactly: 17,944 processed versus 409 Alpaca plus 17,535 Event Registry classify-eligible rows, a 100% proxy for elimination of the unprocessed tail (article_funnel.processed; article_funnel.by_provider.*.classify_eligible). Caveat: the capped-tick tail itself is not separately labeled.
4. Bucket promotion
Promote “unsupported or misattributed catalyst” to a mechanical classifier-prompt rule. It affected 13 trades and cost -$74.40 this week (retro_buckets rank 3). It is not the largest raw bucket—“direction failed outright” cost -$161.86—but it is the largest recurring prediction defect with a concrete upstream lever: require an explicit causal link between the article and the traded ticker plus a one-sided directional mechanism before emitting an S1/S2/S3 alert. The recurrence is visible in prior reviews’ catalyst-ticker mismatch and tenuous sympathy categories, including the 2026-08-17 review’s bucket 7 and the 2026-09-21 review’s inert/multi-year catalyst note (prior_weekly_reviews weeks 2026-08-17 §3/§4 and 2026-09-21 §4). Mechanical corroboration this week is S1’s 36.8% hit rate and negative mean available move, with no materiality band above 38.6% (gauges.gauge1.s1; gauges.gauge1.materiality_calibration). This supports a prompt-level relevance rule, although the exact 13-trade attribution remains an LLM-generated taxonomy and should not be generalized from one week alone.
The previously promoted S4 overnight-drift failure stopped appearing as a costly pattern this week. S4 earned +$2.18, selection contributed +$58.08, and timing was only -$0.86 (scoreboard.per_strategy S4.pnl; attribution.decomposition.per_strategy.S4). No dedicated S4 drift-failure bucket appears in retro_buckets. That is one week on 28 trades, so the pattern is dormant this week, not retired; its prior record remains volatile and mostly negative (gauges.trailing_trend.s4_edge_bps).
The stale/chased-entry promotion did not disappear, but it shrank: decision-to-fill gaps cost -$11.11 across three trades and already-priced entries cost -$6.86 across seven (retro_buckets ranks 7 and 8). Mechanical timing remained very negative at -$160.62, but this week much of that loss also appears in favorable excursions round-tripped before exit (attribution.decomposition.totals.timing_pnl; retro_buckets rank 4). The violent-adverse-rally tail remains absent for another week; no comparable bucket appears in this taxonomy.
5. One bigger bet
Target: prediction, specifically unsupported/misattributed catalysts under the newly live Jev classifier. Lever: classifier prompt, not edge bps.
2026-10-05 owner: add a mandatory causal-link test to the Jev classifier prompt for S1-S3—an alert is emitted only when the article names the traded ticker or a mapped counterparty/peer and states a single directional mechanism connecting the event to that ticker; otherwise journal unsupported_catalyst and suppress the alert — expect: signal, the surviving S1 all-alert hit rate rises by at least 5 percentage points from this week’s 36.8% while S1 alert volume falls roughly 10%-25% from n=552, and mean_available_pct moves upward from -0.06%; refute the intervention if the next full live week improves hit rate by less than 2 points or leaves mean_available_pct at or below -0.06%, because that would show the prediction failure is broader than catalyst attribution (gauges.gauge1.s1; retro_buckets rank 3, 13 trades and -$74.40).
This is a one-week first read, not a claim about the rule’s general effect. The next review must also state whether #265 remained the served classifier for the measured cohort; otherwise the prompt experiment and a model change would be confounded (predictions_to_grade row #265 deploy_status).