Sun Oct-18 14:08:47
times in Europe/Lisbon

📈 Weekly review Mon Oct-05

📐 Gauges — this week

anchornhit ratemean |available|
S1238+48.3%+0.90%
S2364+53.3%+0.93%
S399+43.4%+1.24%

materiality calibration (S1): 60-69: n/a (n=0) · 70-79: +53.7% (n=190) · 80-89: +31.6% (n=38) · 90-100: +10.0% (n=10)

booknedge bpsmean transit leakqueued-fill n
S1-S3 intraday45-22.07+0.03%25
S4 overnight25+26.16-0.09%8

PRICED-at-detection: +9.3% (88/943)

gatefiredw/ cfside-adj moveexclusions
tape gate9087-100.98% sumpost close=3
materiality floor190187+32.37% sumpost close=3
netting234222-0.62% meanpost close=12
PRICED block8883-31.89% sumpost close=5
news age1615+5.26% sumpost close=1
news age S4 o/n174-2.41% sumpost close decision=1, slot outranked=7, slot taken by entry=4, next session after window=1

📝 Review

Review A

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, which also notes three truncated coach reports). Nothing to flag. Arithmetic anchor: retro_buckets' eleven bucket sums (+203.05 −104.71 −98.67 −93.77 +86.30 −15.64 −11.24 +6.16 −4.42 +2.40 +0.59) total −$29.95 on 70 trades, matching attribution.decomposition.totals.pnl and n to the cent — the taxonomy is mechanically anchored this week. One cross-check in the coach audit's favour that I can verify from instruction data: coach_report_audit §2 says QUEUED_FILL_MAX_VERDICT_AGE_MIN cannot be the source of a 2.0% PRICED threshold; threshold_constants confirms it is a minutes value, and the 2.0% lives in PRICED_MIN_SINCE_CLOSE_PCT — the coach's substantive claim (fill re-verdict cancels PRICED only at ≥2.0) matches that row's own meaning, the citation was wrong.

RESOLUTION OF LAST WEEK'S MANDATORY CHECK (prior_weekly_reviews 2026-09-28 §5: report gauge1.s1 on Jev's second week against 36.8% / −0.06 and say which hypothesis survives). S1 printed 48.3% (n=238, hits 115, gauges.gauge1.s1) with mean_available_pct +0.08 against mean_abs_available_pct 0.90 — back inside the coin-flip band, ~3 SE above last week's 36.8% (SE of the difference ≈3.8pp). Of the three hypotheses: (b) "last week was a reversal regime" is the one the mechanical ledgers support — the S1 tape gate's blocked cohort flipped from 36 missed wins / 15 avoided losses (+1.64%/fire) to 5 missed wins / 22 avoided losses (−1.13%/fire, gauges.declined.tape_gate S1), and the priced block's avoided-loss share fell from 78% to 57% (47 of 83, gauges.declined.priced_block); the detection→close reversal signature that depressed last week's count-based hit rate is gone and the hit rate came back. (c) "direction-label convention differs in the Jev integration" would have persisted; it did not, so it is weakened. (a) "Jev is anti-predictive" is not resolved either way: pooled over two Jev weeks S1 is 318/790 = 40.3% count-wise but ≈ −0.02% dollar-weighted (552×−0.06 and 238×+0.08), i.e. still flat against the available move — on this week's numbers hits averaged ~1.01% of available move and misses ~0.79% (two-means solve on 115/123, +0.08, 0.90), the same "right on bigger, wrong on smaller" skew as last week. Two caveats that keep this from being a clean instrument read: the graded S1 cohort shrank from 552 of 931 alerts to 238 of 774 (gauges.gauge1.s1 n; article_funnel.alerts) because excluded_no_primary is 522 — two-thirds of this week's alerts carry a primary ticker outside the universe (strategy_aggregates.top_skip_rationales "no primary ticker in universe" S1=522, S4=522) — so the S1 cohort is not the same slice of the classifier's output two weeks running; and this week's tape was the most adverse of the series (do_nothing_baseline −0.40%, n=774, scoreboard). The headline carried from every prior week is unchanged across two classifiers and now across both Jev regimes: no measurable directional edge at detection.

1. SCOREBOARD READ

Blended edge this week is −5.3 bps (scoreboard.week_edge_bps): s13 intraday −22.07 bps on 45 trades, s4 overnight +26.16 bps on 25 (gauges.traded.s13_intraday, gauges.traded.s4_overnight). Against gauges.trailing_trend plus prior_weekly_reviews, s13 is negative for the eleventh time in thirteen reviewed weeks (−18.47, −5.34, −9.96, −16.28, −13.48, −27.37, −15.76, +24.12, −43.37, +10.3, −11.62, −16.3, now −22.07). The move from −16.3 to −22.07 is capture_usd_sum −81.40 against last week's −64.74 — roughly $17, less than one trade (retro_buckets bucket 1's 1326 alone is +$36.49) — and is not distinguishable from noise. S4's +26.16 is its second consecutive positive print (after +0.94), on n=25 with pnl +$51.45 at 56.0% WR (scoreboard.per_strategy S4); it follows a 6-of-8 negative trailing record and moves nothing on its own. The tape was against the book — do_nothing_baseline −0.40% on n=774 (scoreboard) is the most adverse of the nine reviewed weeks (prior: −0.13, −0.17, +0.01, +0.28, −0.05, −0.09, +0.58, −0.14 per prior_weekly_reviews §1 each week) — yet market_pnl was +78.23 of a −29.95 total (attribution.decomposition.totals): the traded cohort's own tape helped (I cannot see the long/short mix, so I cannot say whether that is short tilt or luck) and timing (−104.68) gave it back, with selection flat (−3.50). No target value for edge bps is proposed.

Methodological note that this week's numbers force into the open: the "selection spread" I have carried since 08-31 (traded mean_available_pct minus do_nothing_baseline.mean_pct) compares a direction-signed number to one that is not direction-signed — the baseline's n equals the alert count, and if it were signed in the predicted direction it would sit near the pooled gauge1 mean (≈ −0.05 this week: S1 +0.08×238, S2 +0.02×364, S3 −0.62×99), not at −0.40. In prior weeks the two happened to be close and the convention cost nothing; this week it inflates both books' spreads (s13 −0.10 − (−0.40) = +0.30pp, s4 +0.12 − (−0.40) = +0.52pp, gauges.traded vs scoreboard) by however short-tilted the book was. I report the spreads for continuity below but discount them; a signed do-nothing baseline (mean available move in the alert's predicted direction, which gauge1 already computes per strategy) is the owner fix.

GRADE OF LAST WEEK'S BET (2026-09-28 §5: story_type/subject_ticker fields, S1-S3 relevance gate, gauges.declined.relevance_s13, gauge1.s1 split by story_type): NOT SHIPPED. Verified mechanically: gauges.declined has no relevance ledger, gauges.gauge1 has no story_type split, and predictions_to_grade's most recent row is still #269 (dated 09-30) — no PR merged in the reviewed week. coach_report_audit §3 (untrusted, consistent) records the coach's equivalent story_type ask pushed 10-05 and 10-06 and then referenced only as "the unshipped story_type rec." That is the EIGHTH consecutive unshipped reviewer bet, and this week — unlike last week, when #267 and #269 merged — nothing of any origin shipped. Per my own 09-28 commitment the bet is not re-issued, and the 09-21 position stands verbatim: until the operators audit why measurement-organ asks do not execute, the weekly bet is a channel canary first and an experiment second. §5 issues a different, smaller lever on the same link because the task requires one and because this week's data changes which lever is most informative, not because the channel has shown any sign of working.

Operational notes: priced-at-detection fell to 9.3% (88/943, gauges.priced_at_detection) from 25.4% — the lowest of the series' 15-25% range; mean_abs_available_pct also fell (0.90 vs 1.23, gauges.gauge1.s1), so the most economical reading is a quieter tape producing fewer ≥2% pre-detection moves, not a freshness improvement — pub→detect is unchanged at 731.1s blended, alpaca 249.0s vs eventregistry 737.0s (article_funnel.by_provider). detect→alert median 5.1s (article_funnel.latency_detect_to_alert_secs), consistent with last week's 4.8s on Jev. journaled_llm_cost_partial_usd 1.18 (floor, not total). article_funnel.trades is 69 against 70 closed in scoreboard/attribution — a one-trade week-boundary carry, noted only so next week doesn't read it as a mismatch. 25 of 45 s13 entries were queued fills again (gauges.traded.s13_intraday.transit_queued_n), same share as last week.

2. CHAIN DIAGNOSIS

Link 1 — Prediction (all alerts, gauge1; Jev week two). S1: 48.3% (n=238, SE ~3.2pp), mean_available +0.08 vs mean_abs 0.90 (gauges.gauge1.s1) — coin flip, dollar-flat, as above. S2: 53.3% (n=364, SE ~2.6pp), mean_available +0.02 vs abs 0.93 (gauges.gauge1.s2); pooled over two Jev weeks 320/604 = 53.0% — marginally above coin flip count-wise, dollar-flat; excluded_direction_unclear 92. S3: 43.4% (n=99, SE ~5.0pp), mean_available −0.62 vs abs 1.24 (gauges.gauge1.s3) — the peer-sympathy direction lost 0.62% of move on average to the close, the most negative signed available of any strategy-week in the reviewed series; with abs 1.24 the SE of that mean is ~0.15, so it is several SE below zero, though against an unsigned −0.40 tape I cannot say how much is tape (if S3 was mostly long, the signed spread is nearer −0.2pp); n=99, one week. Materiality calibration (gauges.gauge1.materiality_calibration): 70-79 → 53.7% (n=190), 80-89 → 31.6% (n=38), 90-100 → 10.0% (n=10). INVERTED this week: the two high bands combined are 13/48 = 27%, ~3.5 SE below coin flip on their own, and pooled over Jev's two weeks the 80-100 bands sit at 107/306 = 35.0% against 70-79 at 211/484 = 43.6% — on the new classifier, higher materiality has been worse-than-coin-flip two weeks running at a pooled n that is no longer thin, while mean_abs_available still rises with band (0.84 → 1.02 → 1.62): materiality ranks move SIZE and, on Jev, ranks direction backwards. Ninth consecutive week materiality does not rank prediction skill; first time the pooled sign is adverse at real n. This matters mechanically because materiality is the tiebreak in three live rules — S1-S3 netting (#75, gauges.declined.netting fired 234), S4 slot resolution (#50), and the S2/S3 floor (#143) — all of which currently prefer the alert Jev is least often right about. Two weeks, one of them a reversal regime; stated as a finding to re-check on Jev week three, not a rule change.

Link 2 — Transit. Priced-at-detection 9.3% (gauges.priced_at_detection), discussed above. s13 transit_usd_sum +$9.75, mean_transit_pct +0.03 (gauges.traded.s13_intraday) — transit added money for the ninth consecutive week; not the leak, and the same signature as last week: positive transit paired with negative capture (−81.40) means entries landed after the favourable detection→entry move and the entry→exit leg went the other way, which cross-checks retro_buckets bucket 3 (seven entries after a 0.8-1.5% same-direction move, −$98.67). S4 transit −$32.71 / capture +$51.45 (mean_transit −0.09, mean_capture +0.21, gauges.traded.s4_overnight) — second consecutive week S4 entered after an adverse same-day move and the overnight window recovered it; the three-week "right signal, wrong window" signature of 08-31/09-07/09-14 has now been inverted for two weeks. Blended pub→detect 731.1s ≈ 12.2m; alpaca 249.0s vs ER 737.0s = 2.96x (article_funnel.by_provider), inside the stable 2-3.5x range. Per-ticker detection medians (per_ticker.detection_latency_median_secs) run 485-903s with TSLA 1036.9s and TSM 1202.3s as the slow names; TSM is also the week's worst ticker (−148.59) and TSLA its second-best (+57.48), so latency-vs-edge reads as nothing again. No per-ticker transit-leak field exists (#87 still not live).

Link 3 — Selection. s13 mean_available −0.10, s4 +0.12 (gauges.traded) — spreads of +0.30pp and +0.52pp over the unsigned −0.40 baseline, discounted per §1. Attribution tells the story that survives the caveat: selection_pnl is −3.50 in total but splits cleanly by strategy class (attribution.decomposition.per_strategy): S1 +47.04 and S4 +51.15 on own-ticker articles versus S2 −47.81 and S3 −53.87 on sympathy read-throughs — the two sympathy books carried −101.68 of selection on 23 trades and closed at −$134.85 combined (S2 3/14 wins, S3 5/9, scoreboard.per_strategy), the worst combined S2/S3 week since the floor shipped. Alert-side corroboration: the S1 pool's signed available (+0.08) was better than the traded s13 cohort's (−0.10), i.e. the funnel from alerts to intraday trades picked slightly worse than its own pool, and S2's 53.3% pool traded to 21.4% (n=14, ~2.6 SE below 50 — small n, one week). The declined ledgers this week run the other way from last week: tape gate blocked −100.98 over 87 counterfactuals (S1 −30.64/27, S2 −27.55/41, S3 −42.79/19 — loss-avoiding on all three; gauges.declined.tape_gate), priced block −31.89 over 83 (loss-avoiding), materiality floor +32.37 over 187 with 111 missed wins vs 76 avoided — the 70-74 S2/S3 band it blocks would have won 59% this week, so the floor cost money while the floor-clearing S2/S3 trades lost $134.85; netting's declined cohort would have moved −0.62% to close (gauges.declined.netting, 222 counterfactuals) — the alerts netting threw away would mostly have lost. Per-ticker dispersion (per_ticker rows): worst TSM −148.59 (23 of the week's 90 tape-gate fires, 1202s latency), NVDA −51.59, AMZN −17.46, MU −9.49; best AMD +137.36 (53.6% priced), TSLA +57.48, PLTR +38.76 (71.4% priced), QCOM +32.59, MSFT +32.34 (278 alerts, 25 gate fires). Three tickers — MSFT 25, TSM 23, MU 15 — account for 63 of 90 gate fires; the ledger is not split by ticker so the gate's −100.98 cannot be attributed. The high-priced-rate-winners curiosity (AMD, PLTR) echoes a fifth time against NVDA/TSM at 15-23% priced losing; still not carried. Surprise rate 0.0% on all 15 tickers, ninth straight week.

Link 4 — Capture. Exit slippage −$42.08 over 45 exits, mean −$0.94 (attribution.exit_slippage) — the worst exit-print week of the series (prior: −1.05, +15.20, −20.21, +20.15, −14.96, +14.47, −33.03, +8.75 per prior_weekly_reviews §2 each week) and, for the first time, a material fraction of s13's capture loss (half of −81.40). One week; the prior eight exonerated the exit print, and this does not reverse that pooled read, but the "exit side is benign" line I have carried should be held more loosely. MFE-realized degenerate on all four strategies (S1 −1.48, S2 +10.11, S3 −2.55, S4 +1.38, attribution.mfe_realized — ninth week the field cannot grade an exit rule). Timing_pnl −104.68 of −29.95 (attribution.decomposition.totals), S1 −43.18, S2 −29.82, S3 −31.45, S4 −0.23 — the largest negative bucket for the eighth time in nine reviews (series −311.13, −162.64, −120.57, −30.25, −130.62, −165.25, −102.43, −160.62, −104.68). The retro corpus splits it the usual way and survives the cross-check: entry-side lateness (bucket 3, −$98.67; bucket 6's two fill-gap-decided trades, −$15.64, with its cross-reference of six ~1-2% decision/fill gaps, four of them S4 19:55 entries — the same unexplained-gap flag as 09-21's 1186/1187 and 09-28's 1279, now a three-week owner data-quality item) plus exit-policy give-back (bucket 9: four S4 trades that sat on +1.1% to +4.3% and closed −$4.42, ~$95 of unrealized per the retros; bucket 11: five S2/S3 trades with +0.7-1.25% available capturing ⅛ to none, and every retro says the exit trigger is not journaled — an owner journaling gap).

SINGLE WEAKEST LINK: prediction — the tenth time in eleven reviews — and this week the conviction localizes to the sympathy direction call. Convicting numbers: S3 gauge1 43.4% with signed available −0.62% against 1.24% absolute (gauges.gauge1.s3, n=99); S2's 53.3% pool trading to 3 wins in 14 (scoreboard.per_strategy); S2+S3 selection_pnl −101.68 and combined P&L −$134.85 on 23 trades (attribution.decomposition.per_strategy; scoreboard.per_strategy) against S1/S4 selection +98.19 on own-ticker articles; S1 itself at 48.3% / +0.08 vs 0.90 (gauges.gauge1.s1), coin flip and dollar-flat for the eleventh week across two classifiers; and the materiality inversion (80-100 bands 27% this week, 35.0% pooled on Jev, gauges.gauge1.materiality_calibration). The retro corpus says the same in words — bucket 2 (off-ticker sympathy read-through failed, −$104.71, 10 trades, the week's costliest loss bucket) — and I cross-checked it against the S2/S3 mechanical numbers before repeating it. What is NEW and mechanical: the classifier's output shape shifted toward out-of-universe primaries — excluded_no_primary 522 of 774 alerts (gauges.gauge1.s1; strategy_aggregates.top_skip_rationales), S2 graded n 364 > S1 238 — so a growing share of the alert stream can only be traded as a sympathy position on a universe ticker the article is not about, which is exactly the relevance defect promoted last week now visible in the funnel's own counts rather than only in LLM-read retros. Selection is not the weakest link this week: the own-ticker books selected positively, the gates were loss-avoiding, and the spread convention is compromised. Capture had its worst exit-print week, but the standing no-oscillation reasoning holds: an exit rule on top of a 48% / dollar-flat instrument monetizes noise — with the added note that the one book where exits plausibly left real money (S4, bucket 9) is the one book whose selection read positively two weeks running.

3. PREDICTION GRADES

Deploy_status is a single-instant read at the week's last session (2026-10-09); every genuine clause reads live, and no PR merged in-week (latest row #269, dated 09-30), so for the first time "live" plausibly means "ran all week" for every row — it still says nothing about reverts. Backfilled clauses (#108 and below) are attribution material only, not graded. Oscillation guard: two grades below carry reversal-pressure flags (#143 first bad week, #120 sign flip); neither is reversed this week, each gets a pre-committed rule, consistent with how #120 was handled 09-14 → 09-21.

GRADE #269 cost: not-yet-measurable — deploy_status live; 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; article_funnel.journaled_llm_cost_partial_usd 1.18 covers coach/audit rows, not weekly_reviews. GRADE #264 signal: refuted — second consecutive refuted, no oscillation: deploy_status live, dated 09-25, so the gate removal ran all week; the clause predicted S4 entries ↑ ~2.8/session, and scoreboard.per_strategy S4 closed 25 over 5 sessions (5.0/session) versus 28 (5.6) last week and 31 (6.2) the week before (prior_weekly_reviews 2026-09-28 §3, 2026-09-21 §1) — entries keep falling. Same confound as last week: #265's cutoff 70 shrank the alert pool in the same window, and this week excluded_no_primary 522 (gauges.gauge1.s1) removed two-thirds of alerts from S4 eligibility — the metric fails, the mechanism is confounded. S4 mean_transit_pct −0.09 (gauges.traded.s4_overnight) is consistent with counter-move entries being allowed, and retro_buckets bucket 4's 1292 (META S4 short at +1.22% on the day) is an untrusted example of one. GRADE #265 cost: not-yet-measurable — deploy_status live and the cutoff-70 half mechanically in force all week (gauges.gauge1.materiality_calibration 60-69 n=0; threshold_constants materiality_threshold 70; top_skip_rationales 70/71/72 below floor 75), but no classify-spend or classifier p50 field exists; journaled_llm_cost_note excludes classifier spend. Proxy consistent with the p50 claim, not a grade: detect→alert median 5.1s (article_funnel.latency_detect_to_alert_secs). GRADE #260 cost: not-yet-measurable — deploy_status live; no 30-day OpenRouter per-role spend in any mechanical section; the 1.18 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. Ninth 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 remains superseded by #264 (both read live, both cannot be active). Repeat flag to the owner: mark one of these rows 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 25 of 45 says queued fills were common). GRADE #226 freshness: not-yet-measurable — no absorbed-move counterfactual ledger in gauges.declined or strategy_aggregates. Noting without grading: retro_buckets bucket 3 (untrusted) describes seven entries after ~0.8-1.5% same-direction moves and 1360 after a +1.48% gap — all at or below the 1.5% gate, so none is a visible gate violation, and the gate as specified would not have caught the week's −$98.67 stale-entry bucket. GRADE #222 signal: not-yet-measurable — gauges.declined.priced_block (fired 88) 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 16, with_counterfactual 15, blocked_pnl_pct_sum +5.26 (8 missed wins vs 7 avoided); news_age_s4 fired 17, with_counterfactual 4, blocked_overnight_pnl_pct_sum −2.41 (S4 coverage still thin: 7 slot_outranked + 4 slot_taken_by_entry + 1 post_close_decision + 1 next_session_after_window excluded). Ninth 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 23491, classify_eligible 19112) 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; the coach's "fill re-verdict gap" item (coach_report_audit §3, untrusted) concerns the same mechanism but is not a count. GRADE #203 cost: not-yet-measurable — prior_weekly_reviews retains eight 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 249.0s, eventregistry 737.0s); #177 is graded off the split, never the blend. Ninth 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=1 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 lists four defective citations and several clean ones this week (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 16, news_age_s4 fired 17 (no news-age rationale reaches strategy_aggregates.top_skip_rationales' top-15 this week, which is itself consistent with a 4h gate firing only 33 times against 522-count universe skips). 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 +5.26 over 15 (cost money), S4 −2.41 over 4 (saved) — signs bounce, still noise. GRADE #177 freshness: refuted — article_funnel.by_provider: alpaca 249.0s vs eventregistry 737.0s = 2.96x, short of ≥5x. Ninth 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 5.1s (n=774), far under the 10m target; 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.18 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 — WITH REVERSAL-PRESSURE FLAG: this is the first week in nine the single-week number fails the clause. scoreboard.per_strategy: S2 14 trades −$80.88 + S3 9 trades −$53.97 = −$134.85 combined — outside "toward ≥ −$30" and worse than the clause's own ≈ −$108 baseline. The floor is firing (gauges.declined.materiality_floor fired 190; top_skip_rationales S2 "materiality 70/71/72/71 below floor 75" 44+43+21+17), so the mechanism ran. I hold confirmed on the pooled read, by the same rule that governed #120's first bad week (prior_weekly_reviews 2026-09-14 §3): nine weeks pooled (−21.87, −20.36, −3.97, +33.45, −23.13, +30.17, −15.74, −8.24, −134.85 per prior_weekly_reviews §3 each week plus this week) ≈ −$164.5 / 9 ≈ −$18/wk, still inside the target. Pre-commitment: a second consecutive week with combined S2/S3 below −$30 flips this to refuted. Two structural notes carried from 09-28 and now stronger: with the cutoff at 70 the floor only removes the 70-74 band, so the "entries ↓" half is eroding by configuration (23 closed vs 20 vs 5 in the prior two weeks); and the floor is a volume cap, not a quality filter — this week its blocked band would have WON 59% (111 missed wins vs 76 avoided, +32.37 over 187, gauges.declined.materiality_floor) while the floor-clearing S2/S3 trades lost $134.85, and the materiality inversion in §2 Link 1 says a ≥75 requirement on Jev selects for the band least often right. 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 ≈ 736.2s ≈ 12.3m (article_funnel: pub→detect median 731.1s + detect→alert 5.1s), stable vs 12.6-13.5m across all prior reviewed weeks; ER (~98% of articles) at 737.0s 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 — HELD WITH OSCILLATION-GUARD FLAG: this week's evidence runs against the refutation. gauges.declined.tape_gate S1 fired 28, with_counterfactual 27, missed_wins 5 vs avoided_losses 22, blocked_pnl_pct_sum −30.64% ≈ −1.13%/blocked trade — the gate was strongly loss-avoiding, the opposite of the +0.50 / +0.48 / +1.64 three-week run that refuted it (prior_weekly_reviews 2026-09-14/09-21/09-28 §3). Pooled over the nine reviewed weeks the S1 gate's blocked P&L is +57.58% over 419 counterfactuals ≈ +0.14%/fire — i.e. ≈ 0, which is literally what the clause promised; the weekly number swings ±1%/fire with the reversal regime (§1) and is not a stable measure of the gate's value. I do not flip to confirmed on one week, by the same two-week rule that refuted it. Pre-commitment: a second consecutive week at ≤ 0%/blocked trade restores confirmed on the pooled read; and the owner should still check the ledger's counting semantics (the coach's untrusted "phantom blocks" claim, coach_report_audit §1, is carried as a standing caveat all five sessions; the ledger reports non_gate_excluded 0). Concentration caveat: MSFT 25, TSM 23, MU 15 fires (per_ticker rows) are 63 of 90; S2/S3 halves were also loss-avoiding (−27.55/41, −42.79/19). The "worst-day S1 loss ↓" half remains unassessed (no worst-day field). GRADE #117 signal: confirmed — proxy: processed/classify_eligible = 19518/(406+19112) = 100.0% (article_funnel + by_provider). Seventh consecutive clean week; standing caveat that the proxy cannot isolate the capped-tick tail.

4. BUCKET PROMOTION

Re-promoted, now stable (second consecutive week, and mechanically fingerprinted): the relevance defect — the classifier producing a directional alert from an article that is not about the traded ticker, or not a catalyst at all. This week it is retro_buckets bucket 2 (off-ticker sympathy read-through failed, S2/S3, 10 trades, −$104.71 — the week's costliest loss bucket), bucket 7 (re-trading a days-old TSLA catalyst, 4 trades, −$11.24), bucket 10 (non-catalyst noise, 7 trades, +$2.40), and bucket 5 (direction held but the article was off-ticker/generic/mis-tagged, 8 trades, +$86.30 — Stage A correctly refuses to credit it; it is bucket 2's thesis quality landing on the right side of a coin). That is 29 of 70 trades; the loss side sums to ≈ −$113, the net ≈ −$27 depends entirely on which way bucket 5's coin fell. Last week the same defect was buckets 1+8 (18 of 77 trades, −$135.08, prior_weekly_reviews 2026-09-28 §4), and small versions appeared 08-17, 08-24, 09-07, 09-21. Mechanical cross-check per reading_rules, and this week it is stronger than last: excluded_no_primary 522 of 774 alerts (gauges.gauge1.s1) and the matching "no primary ticker in universe" rationale at 522 for S1 and S4 (strategy_aggregates.top_skip_rationales) — two-thirds of the alert stream is about a company the universe does not contain and can only be traded as a sympathy position; S2 graded n 364 > S1 238 (gauges.gauge1); the two sympathy books carried selection_pnl −101.68 and closed −$134.85 on 23 trades (attribution.decomposition.per_strategy; scoreboard.per_strategy); S3's signed available is −0.62% on n=99 (gauges.gauge1.s3). The coach reached the same place by a different road this week — the sympathy netting rule on 10-08 and S2/S3 shadow on 10-09 (coach_report_audit §1, untrusted). The mechanical rule it deserves is still last week's unshipped story_type/subject_ticker gate at the classifier; this week's §5 is the containment that can be measured with existing machinery while that does not ship.

Standing promotion, extended (seventh): the stale/chased-entry pattern (promoted 08-17, re-promoted 08-24, 09-07, 09-14, 09-21, 09-28). This week bucket 3 (entered after the same-direction move printed, then it reverted; 7 trades, −$98.67) plus bucket 6 (fill ≥1% above decision price decided the trade; 2 trades, −$15.64, with six further ~1-2% decision/fill gaps cross-referenced, four of them S4 19:55 entries). Mechanical corroboration: timing_pnl −104.68, the largest negative bucket for the eighth time in nine reviews (attribution.decomposition); s13 transit +9.75 paired with capture −81.40 (gauges.traded.s13_intraday — entries after the favourable move); 25 of 45 s13 entries queued open fills (transit_queued_n). Two refinements this week: exit slippage is NOT benign for once (−$42.08, mean −$0.94, attribution.exit_slippage — worst of the series), so the "localized to the entry side" line I have carried since 08-17 is pooled-true but failed this week; and the shipped absorbed-move gate (#226, 1.5% in-direction, REPRICING only) sits above every entry bucket 3 describes (0.8-1.5%), so the one rule that exists in this space is specified past the pattern. The decision-price-anchored fill-gap cancel (first proposed 08-17 §4) and the story-cluster first-seen age anchor (08-24 §4; bucket 7 is that pattern again — fresh articles about a four-day-old catalyst passing a 4h article-age gate) remain the concrete rules; still no carrying PR.

Previously promoted, STOPPED APPEARING — downgraded to dormant: S4 overnight-drift failure (promoted 08-31, carried unresolved 09-07, 09-14, 09-21, 09-28). No drift-reversal bucket exists in this week's taxonomy; S4's only losers are in the mixed bucket 4 (own-ticker direction wrong from the first tick — 1292 is the one S4 exemplar) and the exit bucket 9. Mechanically S4 printed +$51.45 at 56.0% WR (scoreboard.per_strategy), selection +51.15 with market +0.54 (attribution.decomposition.per_strategy.S4 — the opposite of 08-31's selection −214.03), and transit −0.09 / capture +0.21 (gauges.traded.s4_overnight) for the second week — S4 bought adverse same-day moves and the overnight recovered them twice running. Two consecutive weeks without the pattern, on an S4 whose entry rules #264 has since changed, is the same standard I applied to the violent-rally tail on 08-24: dormant, reopen on recurrence. Honest scope: the shadow instrument never shipped, so this is non-recurrence, not resolution; and bucket 9's ~$95 of unrealized S4 gain surrendered by the fixed next-close exit (−$4.42 realized) is the one exit pattern that now sits on a book whose selection read positively twice — it is next in line if S4's selection holds a third week, with MFE-realized (degenerate, ninth week) needing a fix before any such rule is gradeable.

Pre-committed conditional, NOT triggered: the 09-21 commitment to promote exit give-back buckets (this week's 9 and 11) requires S1 above the coin-flip band on the same classifier; S1 printed 48.3% (gauges.gauge1.s1). Standing reasoning holds without oscillation. Bucket 11's five S2/S3 trades whose exit trigger is not journaled are an owner journaling defect, not a pattern — flagged.

Dormant / watch: violent-adverse-rally tail (promoted 08-10) — eighth week without a bucket of that kind; reopen on recurrence. Netting-forced exits — sixth week observed (bucket 8, +$6.16, 2 trades plus four cross-bucketed; gauges.declined.netting fired 234 with the declined cohort moving −0.62% to close, i.e. netting mostly discarded losers this week); measured cost still small; watch. The unexplained decision/fill gap (bucket 6 cross-ref, six ids; 09-21's 1186/1187; 09-28's 1279) is now a three-week owner data-quality item — Stage A's "quote-vs-fill timing issue" reading is plausible and unverifiable from here.

Cross-check note on Stage A: its placement of 1292 under bucket 4 rather than a "fought the tape" bucket, on the ground that S4 is outside TAPE_CONTRADICTION_PCT's S1-S3 scope, is correct per threshold_constants, and the entry is exactly what #264's gate removal permits; its observation that S2_S3_MIN_MATERIALITY is a volume floor not a quality filter is consistent with the floor ledger (blocked band won 59% this week, gauges.declined.materiality_floor).

5. ONE BIGGER BET

Target: prediction, the weakest link named in §2, at the point this week's data convicts — the sympathy direction call (S2 counterparty, S3 peer) on articles about companies outside the universe. Governance first: this is the ninth reviewer bet after eight unshipped, nothing of any origin merged this week, and per my 09-28 commitment I do not re-issue the story_type gate. The 09-21 position is unchanged — the operators' shipping-channel audit is the pilot's blocking dependency, and this bet is a canary on it before it is an experiment. It is chosen to be the smallest possible pull: a ONE-LINE change to a constant that already exists (S2_S3_MIN_MATERIALITY, threshold_constants), whose skip rationale and weekly counterfactual ledger already exist and have graded for nine consecutive weeks (gauges.declined.materiality_floor; #143 confirmed every week), on a sub-book the coach independently asked to put in shadow on 10-09 (coach_report_audit §1, untrusted) — reviewer and coach converging again on an identical ask, as on 09-21. No new code, no new table. It also answers a north-star question gauge1 alone cannot: gauge1.s2/s3 grade every alert at detection, but the question the P&L asks is whether the sympathy candidates that survive the tape gate and absorbed-move gate — the ones that would actually trade — carry direction, and that cohort is exactly what the floor ledger grades (the floor fires after those two gates, before news-age, per threshold_constants' MAX_NEWS_AGE_H ordering).

  • 2026-10-12 owner: raise S2_S3_MIN_MATERIALITY from 75 to 101 (threshold_constants) for a two-week window, then re-decide on the ledger — this puts S2 and S3 in shadow through the existing floor skip (every S2/S3 candidate that clears the tape gate and absorbed-move gate journals as a floor skip with its decision→close counterfactual in gauges.declined.materiality_floor), with gauge1.s2/s3 and all S1/S4 behaviour unchanged — expect: signal, materiality_floor fires rise from 190/wk (gauges.declined.materiality_floor.fired, this week) toward ~250+/wk as the ≥75 band joins the blocked cohort, S2/S3 closed trades go to 0 (scoreboard.per_strategy S2/S3; this week 14 + 9 = 23, −$134.85), and, graded pooled over the two weeks on the floor ledger's full blocked cohort (with_counterfactual ≥ 350 pooled): (a) if missed_wins/(missed_wins+avoided_losses) sits within ±4pp of 50% AND |blocked_pnl_pct_sum| / with_counterfactual ≤ 0.10%/fire, the sympathy strategies have no measurable directional signal on the cohort they would have traded, and "S2/S3 retired as a calibrated no-signal conclusion on the Jev classifier" becomes the pilot's standing result — a successful outcome; (b) if missed_wins ≥ 56% of the cohort or blocked_pnl_pct_sum ≥ +0.25%/fire pooled, the sympathy direction has real signal and this week's −$134.85 (and bucket 2) is a monetization leak downstream of the call — the floor reverts to 75 and the relevance work moves to entry/exit on S2/S3; (c) if missed_wins ≤ 44% or blocked_pnl_pct_sum ≤ −0.25%/fire pooled, the sympathy direction is anti-signal on the tradable cohort — the floor stays at 101 permanently and the classifier's counterparty/peer direction output is flagged to the owner as inverted, pending the still-unshipped subject_ticker field.

Grading notes for next week: grade the ledger's own hit share and per-fire P&L, pooled over both weeks — never a before/after on raw mean_available_pct, never the selection spread (compromised per §1 until the baseline is signed), never edge bps; no target value is proposed. Baselines to grade against: this week's floor ledger (187 counterfactuals, 111 missed wins = 59.4%, +0.17%/fire — the 70-74 band only), gauge1.s2 53.3% / +0.02 and gauge1.s3 43.4% / −0.62. Confounds to state alongside any grade: the classifier must remain the same Jev build (any swap voids the comparison, as #265 voided 09-21's); if the tape-gate and priced-block ledgers show a reversal regime again (S1 tape_gate missed_wins/fired ≥ 65%, priced_block avoided share ≥ 75%), read the per-fire P&L criterion ahead of the hit-share criterion, since detection→close hit shares are regime-sensitive on this instrument; and S1's numbers will change too, because S2/S3 shadow removes the sympathy-vs-incumbent netting interactions (gauges.declined.netting fired 234 this week) — note it, do not treat an S1 change as evidence for either branch. Independently of whether this ships, next week's reviewer must (i) report gauge1.s1 on Jev's third week against 36.8% → 48.3% and the two-week pooled 40.3% / ≈ −0.02%, and (ii) re-check the materiality inversion with a third Jev week pooled (80-100 bands 107/306 = 35.0% so far, gauges.gauge1.materiality_calibration): if it holds at ≤ 40% on pooled n ≥ 400, the three live materiality tiebreaks (netting, S4 slot, S2/S3 floor) are selecting for the classifier's least reliable output and that becomes the next bet whether or not this one ships. If this one-line constant change does not ship either, do not re-issue it: the channel audit is the blocking dependency, and the 09-21 position stands.

Review B

1. SCOREBOARD READ

No instruction-like content appears in retro_buckets or coach_report_audit; nothing to flag under reading_rules.

Blended edge was −5.3 bps this week (scoreboard.week_edge_bps), improving slightly from −9.93 bps in the 2026-09-28 prior review but remaining below zero. The underlying books diverged: S1-S3 intraday fell to −22.07 bps on 45 trades, after −16.3, −11.62, and +10.3 bps over the prior three weeks; S4 rose to +26.16 bps on 25 trades, after +0.94, +75.62, and −19.6 bps (gauges.traded.s13_intraday.edge_bps; gauges.traded.s4_overnight.edge_bps; gauges.trailing_trend rows 2026-09-28 through 2026-09-14).

The +4.63 bps change in blended edge is not distinguishable from noise. There were only 70 closed trades and −$29.95 total P&L (attribution.decomposition.totals), while Stage A assigns +$237.26 to 17 clean winners and −$147.73 to 14 late/chased entries (retro_buckets buckets 1-2); those two buckets alone dwarf the weekly net. Strategy dispersion was similarly wide: S1 +$53.45, S2 −$80.88, S3 −$53.97, and S4 +$51.45 (scoreboard.per_strategy rows). This is another near-flat blended week produced by offsetting strategy outcomes, not evidence that edge changed reliably.

The prediction scoreboard remains the more informative result. Across all three alert-level gauges, the classifier recorded 352 hits in 701 graded calls, or 50.2%; weighting the reported strategy means by their sample sizes gives approximately −0.05% available move. S1 was 48.3% on n=238, S2 53.3% on n=364, and S3 43.4% on n=99 (gauges.gauge1.s1/s2/s3). This is consistent with no broad directional signal at detection. S1’s rebound from 36.8% last week is large, but the movement from 55.5% to 36.8% to 48.3% across the last three weeks is evidence of regime/sample instability, not a stable edge (gauges.trailing_trend rows 2026-09-21 and 2026-09-28; gauges.gauge1.s1).

Last week’s bigger bet—the story_type/subject_ticker relevance prompt and gate—was NOT SHIPPED. The current gauge still contains only strategy and materiality aggregates, with no story_type split or relevance ledger (gauges.gauge1; gauges.declined), and predictions_to_grade contains no carrying PR newer than #269. Therefore none of the bet’s cohort tests is measurable. This is the eighth consecutive reviewer intervention not implemented, following the seven non-ships recorded in prior_weekly_reviews 2026-09-28 §1.

2. CHAIN DIAGNOSIS

Prediction skill, all alerts. S1 was 48.3% on 238 calls, with mean_available_pct +0.08% against mean_abs_available_pct 0.90%; S2 was 53.3% on 364, with mean available +0.02% against 0.93% absolute; S3 was 43.4% on 99, with mean available −0.62% against 1.24% absolute (gauges.gauge1.s1/s2/s3). S1 and S2 therefore extracted almost none of the available absolute movement, while S3 was directionally harmful this week. Materiality was backwards rather than calibrating skill: 70-79 scored 53.7% on n=190, 80-89 scored 31.6% on n=38, and 90-100 scored 10.0% on n=10, even as mean absolute movement rose from 0.84% to 1.02% to 1.62% (gauges.gauge1.materiality_calibration). The upper bands are thin, so this does not prove a general inverse relation, but it gives no evidence that materiality ranks directional accuracy this week.

Transit. Only 9.3% of candidates were already PRICED at detection, 88 of 943, well below last week’s 25.4% (gauges.priced_at_detection; prior_weekly_reviews 2026-09-28 §2). The provider split is alpaca median 249.0 seconds versus eventregistry 737.0 seconds, a 2.96x advantage; detect-to-alert adds only 5.1 seconds median (article_funnel.by_provider.alpaca/eventregistry.latency_pub_to_detect_secs; article_funnel.latency_detect_to_alert_secs). The blended 731.1-second median should not be used for cross-week freshness conclusions because article_funnel.latency_pub_to_detect_note explicitly says it is provider-mix-sensitive.

Transit did not hurt S1-S3: transit_usd_sum was +$9.75 and mean_transit_pct +0.03% on 45 trades. Their loss arose after entry, with capture_usd_sum −$81.40 (gauges.traded.s13_intraday). S4 had the opposite profile: transit −$32.71 followed by capture +$51.45 (gauges.traded.s4_overnight), so it recovered from adverse pre-entry movement during its actual holding window. No per-ticker transit measure exists in per_ticker, and no #87 clause is present in predictions_to_grade; whether transit improved per ticker remains unsupported.

Selection. The S1-S3 traded cohort had mean_available_pct −0.10% and available_usd_sum −$71.65, while S4 had +0.12% and +$18.74 (gauges.traded.s13_intraday/s4_overnight). Attribution is nearly neutral in aggregate but sharply split: total selection_pnl was −$3.50, comprising S1 +$47.04, S2 −$47.81, S3 −$53.87, and S4 +$51.15 (attribution.decomposition.per_strategy). The scoreboard agrees: S1 made +$53.45 at 63.6% wins; S2 lost −$80.88 at 21.4%; S3 lost −$53.97 despite 55.6% wins; S4 made +$51.45 at 56.0% (scoreboard.per_strategy). The sympathy strategies, especially S2, selected poorly this week.

Ticker dispersion was extreme: AMD +137.36 bps, TSLA +57.48, QCOM +32.59, and MSFT +32.34 versus TSM −148.59, NVDA −51.59, and AMZN −17.46 (per_ticker rows). There is no clean freshness temperament: AMD was positive with 53.6% PRICED, AVGO was nearly flat at +2.85 with 55.1% PRICED, while TSM was worst at only 23.4% PRICED. TSM also had a slow 1,202.3-second median detection latency and 23 tape-gate fires, but one ticker-week cannot establish causality (per_ticker TSM row). Surprise_rate_pct was 0.0% for every ticker over five eligible sessions, continuing the standing absence of measured “surprise” differentiation (per_ticker all rows).

The selection gates themselves were mixed. The tape gate was strongly loss-avoiding this week: 87 counterfactuals contained 68 avoided losses and 19 missed wins, with blocked_pnl_pct_sum −100.98% (gauges.declined.tape_gate). The materiality floor did the opposite: 111 missed wins versus 76 avoided losses and +32.37% blocked P&L over 187 counterfactuals (gauges.declined.materiality_floor). Thus materiality ≥75 behaved as a volume restriction, not a quality screen, while the tape gate’s prior three costly weeks did not repeat.

Capture. MFE-realized remains unusable as an exit-quality fraction: S1 −1.4758, S2 10.1141, S3 −2.5474, and S4 1.381, all outside or materially beyond the normal [0,1] interpretation (attribution.mfe_realized rows). Exit slippage cost −$42.08 over 45 intraday exits, −$0.94 per exit (attribution.exit_slippage), worse than last week’s positive +$8.75 (prior_weekly_reviews 2026-09-28 §2).

Timing was the largest mechanical loss: −$104.68 versus market +$78.23 and selection −$3.50 (attribution.decomposition.totals). It was concentrated in S1-S3—S1 −$43.18, S2 −$29.82, S3 −$31.45—while S4 timing was almost neutral at −$0.23 (attribution.decomposition.per_strategy). Stage A’s “late, chased, or tape-contradicted entries” bucket contains 14 trades and −$147.73, consistent with the mechanical timing loss; by contrast, “correct move, poor peak capture” was net +$7.94 across 11 trades (retro_buckets buckets 2 and 6). The recurring monetization defect is therefore primarily entry timing, not proven exit-policy damage.

SINGLE WEAKEST LINK: prediction. Timing lost the most money this week, but the classifier first has to produce something worth monetizing. The all-alert result was effectively a coin flip—352/701 = 50.2%—with approximately −0.05% weighted mean available move; S3 was 43.4% with −0.62% available, and materiality deteriorated from 53.7% to 31.6% to 10.0% as scores rose (gauges.gauge1.s1/s2/s3 and materiality_calibration). This is now the second week on Jev: S1’s 36.8% then 48.3% does not establish a stable baseline, but neither week shows reliable positive directional edge (gauges.trailing_trend row 2026-09-28; gauges.gauge1.s1). The calibrated conclusion remains: no broad predictive edge is currently measured at detection. Timing is the largest downstream leak conditional on any latent signal, but redesigning exits or entries cannot establish whether the classifier predicts direction.

3. PREDICTION GRADES

Deploy status is live for every genuine clause, but it is only the last-session manifest read. Backfilled clauses beginning with #108 are not graded.

GRADE #269 cost: not-yet-measurable — deploy_status live, but no /healthz 503 count or claude-cli call interval 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 mechanical data (predictions_to_grade row #267). GRADE #264 signal: refuted — deploy_status live; S4 closed 25 trades, 5.0/session, down from 28 or 5.6/session last week rather than increasing by about 2.8/session (scoreboard.per_strategy S4; prior_weekly_reviews 2026-09-28 §3 #264). Closed trades are the available proxy for entries, so the causal effect remains confounded. GRADE #265 cost: not-yet-measurable — deploy_status live, but classifier spend and classifier p50 are absent; article_funnel.journaled_llm_cost_note explicitly excludes classifier spend. GRADE #260 cost: not-yet-measurable — deploy_status live, but no 30-day OpenRouter spend split for Fable roles exists in the mechanical sections (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 (predictions_to_grade row #253). GRADE #242 signal: not-yet-measurable — deploy_status live, but no mechanical count of counter-move S4 entries exists; #264 also makes the active behavior ambiguous (predictions_to_grade rows #242 and #264). GRADE #241 cost: not-yet-measurable — deploy_status live, but outage-day warning-page counts are absent (predictions_to_grade row #241). GRADE #228 freshness: not-yet-measurable — deploy_status live, but “stale at fill” cancellation counts are absent; gauges.traded.s13_intraday.transit_queued_unknown_n=0 measures a different outcome. GRADE #226 freshness: not-yet-measurable — deploy_status live, but there is no absorbed-move ledger or count of in-direction 1.5-2.0 entries (gauges.declined; strategy_aggregates). GRADE #222 signal: not-yet-measurable — deploy_status live, but gauges.declined.priced_block is not split into sub-2.0 and ≥2.0 verdict bands. GRADE #216 freshness: not-yet-measurable — deploy_status live, but total-stall and dead-quote page counts are absent (predictions_to_grade row #216). GRADE #212 signal: confirmed — the weekly counterfactual exists: news_age_s13 fired 16 with 15 counterfactuals and +5.26 blocked P&L percentage points; news_age_s4 fired 17 with 4 counterfactuals and −2.41 blocked overnight points (gauges.declined.news_age_s13/news_age_s4). GRADE #211 signal: not-yet-measurable — deploy_status live, but no mechanical count of closed trades absent from every daily report exists (predictions_to_grade row #211). GRADE #209 signal: not-yet-measurable — eventregistry had 19,112 classify-eligible articles, but no field measures the incremental eligible duplicate count per day (article_funnel.by_provider.eventregistry). GRADE #207 cost: not-yet-measurable — deploy_status live, but no retry-ladder elapsed-time or exhausted-attempt count exists (predictions_to_grade row #207). GRADE #206 freshness: not-yet-measurable — deploy_status live, but sub-2.0 stale-at-fill cancellations are not counted in the mechanical sections (predictions_to_grade row #206). GRADE #203 cost: not-yet-measurable — retained prior reviews show reviews exist, but no mechanical run log establishes Mondays with zero official and shadow reviews (predictions_to_grade row #203). GRADE #202 freshness: confirmed — article_funnel.by_provider reports separate alpaca and eventregistry counts and latencies, and #177 is graded from those provider rows rather than the blend. GRADE #198 cost: not-yet-measurable — deploy_status live, but no count of coach/shadow/weekly/audit rows with NULL reasoning exists (predictions_to_grade row #198). GRADE #193 risk: not-yet-measurable — deploy_status live, but no count of S4 post-close failed or orphaned entries exists; news_age_s4.post_close_decision_excluded=1 is not that metric. GRADE #188 signal: not-yet-measurable — coach_report_audit reports deficient generic citations, but no mechanical field counts recommendations citing a named aggregate row (coach_report_audit §2; predictions_to_grade row #188). GRADE #185 signal: not-yet-measurable — deploy_status live, but neither pre-open prev_close mismatches nor stale-at-fill cancellations are counted (predictions_to_grade row #185). GRADE #179 freshness: not-yet-measurable — OSCILLATION-GUARD REVERSAL from prior confirmed grades: the age gates fired 16 times for S1-S3 and 17 for S4, but no mechanical field directly counts trades actually entered on news older than four hours (gauges.declined.news_age_s13/news_age_s4). Gate activity is not proof of zero violations. GRADE #177 freshness: refuted — alpaca median publish-to-detect was 249.0 seconds versus eventregistry 737.0 seconds, only 2.96x lower rather than at least 5x (article_funnel.by_provider). GRADE #172 freshness: not-yet-measurable — deploy_status live, but opening-tick drain time is absent (predictions_to_grade row #172). GRADE #168 cost: not-yet-measurable — deploy_status live, but no comparison over the 422 historical closed trades exists (predictions_to_grade row #168). GRADE #166 freshness: not-yet-measurable — OSCILLATION-GUARD REVERSAL from prior confirmed proxy grades: detect-to-alert median is 5.1 seconds, but the clause specifically predicts alerting-article classify wait and no such field appears in article_funnel. GRADE #153 cost: not-yet-measurable — deploy_status live, but restart-day duplicate shadow sends are not counted (predictions_to_grade row #153). GRADE #155 cost: not-yet-measurable — journaled_llm_cost_partial_usd is $1.18, but it is explicitly a partial floor and contains no weekly call-count or daily-spend comparison (article_funnel.journaled_llm_cost_partial_usd/note). GRADE #151 cost: not-yet-measurable — deploy_status live, but no late-exit audit fire/no-fire comparison exists (predictions_to_grade row #151). GRADE #147 risk: not-yet-measurable — deploy_status live, but no mechanical count of live tags reaching a prompt exists (predictions_to_grade row #147). GRADE #146 risk: not-yet-measurable — deploy_status live, but no hostile-versus-benign rationale test result exists (predictions_to_grade row #146). GRADE #143 signal: refuted — OSCILLATION-GUARD REVERSAL from eight prior confirmed grades: S2 lost $80.88 and S3 lost $53.97, for −$134.85 combined, far below the clause’s “toward ≥−$30” outcome; the floor fired 190 times, so it was active but did not prevent the loss (scoreboard.per_strategy S2/S3; 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 identify model and reason (predictions_to_grade row #139). GRADE #138 cost: not-yet-measurable — deploy_status live, but auditor fire counts and no-call sessions are absent (predictions_to_grade row #138). GRADE #137 freshness: confirmed — approximate publish-to-alert median is 731.1+5.1=736.2 seconds, or 12.3 minutes, consistent with the intended honest roughly-11-minute baseline rather than 6.6 minutes; the provider-dominant eventregistry median is 737.0 seconds (article_funnel.latency_pub_to_detect_secs; latency_detect_to_alert_secs; by_provider.eventregistry). GRADE #134 cost: not-yet-measurable — deploy_status live, but classifier-envelope warning and page-storm counts are absent (predictions_to_grade row #134). GRADE #131 cost: not-yet-measurable — coach_report_audit identifies generic citations, not the clause’s specific scaffolding-as-fact rate; no mechanical count exists (coach_report_audit §2; predictions_to_grade row #131). GRADE #130 signal: not-yet-measurable — deploy_status live, but no structural delimiter-breakout test or clean-article comparison exists (predictions_to_grade row #130). GRADE #128 cost: not-yet-measurable — deploy_status live, but mandatory-reasoning 400s, self-heals, and page storms are not counted (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-page and shadow-row counts are absent (predictions_to_grade row #121). GRADE #120 risk: refuted — no grade reversal: this week’s S1 tape gate was strongly loss-avoiding, blocking −30.64 percentage points with 22 avoided losses versus 5 missed wins, but the three preceding reviewed weeks cost +20.90, +26.58, and +83.57 points; one favorable week does not erase the recent multiweek failure of “net gated P&L ≈0” (gauges.declined.tape_gate.by_strategy S1; prior_weekly_reviews 2026-09-14, 2026-09-21, and 2026-09-28 §3 #120). GRADE #117 signal: not-yet-measurable — OSCILLATION-GUARD REVERSAL from prior confirmed proxy grades: processed equals classify-eligible at 19,518/(406+19,112), but the capped-tick tail percentage itself is not present in article_funnel.

4. BUCKET PROMOTION

Promote and retain as the primary recurring mechanical pattern: late, chased, or tape-contradicted entries. Stage A assigns 14 trades and −$147.73 to this bucket, the largest negative bucket by absolute cost (retro_buckets bucket 2). It is the same stale/chased-entry family promoted repeatedly since 2026-08-17 (prior_weekly_reviews §4 for 2026-08-17 through 2026-09-28). Mechanical corroboration is unusually clean this week: timing_pnl was −$104.68, selection_pnl only −$3.50, S1-S3 transit added +$9.75 but subsequent capture lost −$81.40, and exit slippage cost another −$42.08 (attribution.decomposition.totals; gauges.traded.s13_intraday; attribution.exit_slippage). This pattern is stable and costly enough to deserve a mechanical decision-to-fill chase guard with its own counterfactual ledger. It remains unaddressed in predictions_to_grade.

The relevance defect did not disappear, but it became much smaller: “weak, tangential, or non-event catalysts” covered 15 trades yet cost only −$21.40, versus the −$135.08 combined relevance buckets promoted last week (retro_buckets bucket 4; prior_weekly_reviews 2026-09-28 §4). Its proposed measurement still did not ship, so this week cannot distinguish true shrinkage from taxonomy or sample movement.

The previously promoted S4 overnight-drift failure stopped appearing this week. S4 instead earned +$51.45, with selection_pnl +$51.15 and timing_pnl −$0.23; its edge was +26.16 bps on 25 trades (scoreboard.per_strategy S4; attribution.decomposition.per_strategy.S4; gauges.traded.s4_overnight). One positive week does not retire a pattern whose trailing signs have been unstable, but there is no S4-specific drift-failure bucket in this week’s taxonomy. The older violent-adverse-rally tail also remains absent, but it was already dormant before this week (prior_weekly_reviews 2026-09-28 §4).

5. EXACTLY ONE BIGGER BET

Target: prediction, the weakest link. The broad classifier is at 50.2% across 701 calls, but S3 is the clearest localized failure: 43.4% hit rate and −0.62% mean available move on n=99, with 121 additional S3 cases excluded as direction-unclear and 548 excluded for no peer (gauges.gauge1.s3; strategy_aggregates.top_skip_rationales S3). Stage A’s weak/tangential catalyst bucket remains present at 15 trades and −$21.40, providing qualitative but one-hop support for tightening causal read-throughs (retro_buckets bucket 4).

  • 2026-10-12 owner: change the classifier prompt so S3 emits a peer candidate only when its rationale names an explicit causal supply-chain mechanism linking the article’s subject to that peer; otherwise it emits no peer, with accepted and rejected S3 candidates journaled as two gauge1 cohorts — expect: signal, S3 graded volume falls roughly 40-60% from this week’s n=99, and over two pooled weeks the explicit-causality cohort either exceeds the rejected cohort’s hit rate by at least 8 percentage points with each cohort n≥40 or improves mean_available_pct by at least 0.30 percentage points from this week’s −0.62%; if neither separation appears and both cohorts remain within ±4 points in hit rate and ±0.10 points in mean available move, explicit peer causality is exonerated and S3 is recorded as having no measurable directional signal on the Jev classifier.

This grades prediction cohorts within the same market weeks, not edge bps. If the prompt is not shipped, the intervention is not measurable and should not be reissued; the eight-bet shipping-channel failure is already established by prior_weekly_reviews 2026-09-28 §1 and this week’s missing relevance fields.

← 2026-09-28