Mon Aug-31 16:45:04
times in Europe/Lisbon

📊 Daily scorecard

dayarticlesalertsentriesskipsclosededge bpsP&L $winscum P&L $
Jul-153,19820412124-15.20-29.6413/24-29.64
Jul-163,89212122318-62.81-99.486/18-129.12
Jul-173,8201597539272-26.75-178.8434/72-307.96
Jul-203,6571174626450+12.82+53.5028/50-254.46
Jul-214,0541096323865+24.56+136.0732/65-118.39
Jul-224,3111343834536+23.54+70.2016/36-48.19
Jul-233,3121281535919+38.19+62.918/19+14.72
Jul-244,1761253331327-109.29-251.808/27-237.08
Jul-273,9761402637228+10.68+24.7216/28-212.36
Jul-284,5431713845442+6.72+24.2816/42-188.08
Jul-294,0491342235621-21.47-38.709/21-226.78
Jul-305,019243668112+76.96+78.665/12-148.12
Jul-314,570117113278-67.48-52.824/8-200.94
Aug-034,42811893239-44.30-39.192/9-240.13
Aug-044,701160942811-124.35-114.475/11-354.60
Aug-054,1441211831515-46.63-61.038/15-415.63
Aug-064,2431141030910-12.89-10.945/10-426.57
Aug-073,690741618114-17.57-20.876/14-447.44
Aug-104,6171202630822-3.65-6.7510/22-454.19
Aug-114,913852422124-31.23-64.5310/24-518.72
Aug-124,497982225024-77.61-160.669/24-679.38
Aug-134,148951624319+10.53+17.797/19-661.59
Aug-144,191842120418+44.23+67.4710/18-594.12
Aug-174,737982125221-56.86-94.866/21-688.98
Aug-184,904921323416-87.95-109.236/16-798.21
Aug-194,644761919119-17.64-27.2511/19-825.46
Aug-202,449452310420-15.56-27.065/20-852.52
Aug-213,890931822321+49.81+91.2913/21-761.23
Aug-243,9191181331816-27.92-38.925/16-800.15
Aug-254,6291061628014-19.14-20.835/14-820.98
Aug-266,009832320218-15.92-26.166/18-847.14
Aug-274,8951361537819+20.61+33.298/19-813.85
Aug-283,828831821018-22.12-31.519/18-845.36
Aug-312,1845512951+59.33+5.621/1-839.74

🛠️ Changelog

dateproriginchange
**signal** — which trades we take and on which side (selection, ranking, direction)
**freshness** — whether the information is still actionable when the order fills
**exit** — closing a position correctly and on time
**cost** — money or attention spent to run the system (LLM/API spend, churn, pages)
**risk** — exposure control: duplicate, opposed or unbounded positions, and hangs
Aug-21#253owner1b shadow arms journal L1 signal, arms A/B and regime labels each close pass — expect: cost, shadow_sessions.elapsed_ms <1000, zero new pages
Aug-18#242ownerS4 winners fighting the session move ≥0.5% skip at close, journaled to s4_alignment_skips — expect: signal, counter-move S4 entries → 0
Aug-18#241ownerdedup + rate-limit the ⚠️/🆘 page channel (5/10min, 10/hr) — expect: cost, ⚠️ pages on an outage day (7,520 on 08-17) → <30
Aug-14#228coachunverdictable queued fills defer + retry to open+90m, not one-shot cancel — expect: freshness, "stale at fill" cancels ↓ (10 on 08-13 → ~0/wk)
Aug-13#226coachS1-S3 skip a REPRICING entry already ≥1.5% in its own direction — expect: freshness, in-direction 1.5-2.0 entries (~2/session, -$60/3d) → 0
Aug-08#222coachthe quiet [1.0, 2.0) verdict band is REPRICING, not PRICED — expect: signal, sub-2.0 "verdict PRICED" skips → 0
Aug-06#216coachdead quote leg pages after 30m; stale quotes go UNKNOWN, not prior-session prices — expect: freshness, next total stall pages (08-06: 0 in 4h53m)
Aug-06#212ownerweekly gauges add a news_age ledger, S1-S3 + S4's own window — expect: signal, S4 age-skip damage 0 → a graded weekly counterfactual
Aug-06#211ownerexits landing after the coach gathers carry into the next report — expect: signal, closed trades absent from every daily report → 0
Aug-06#209ownerER title dedup suppresses only against a still-classifiable prior, matching Alpaca — expect: signal, classify-eligible ER duplicates ~+1/day
Aug-06#207ownerLLM report retries wait 10 real minutes after a failure, not the next bucket — expect: cost, ladders burning a full attempt budget in <25 min → 0
Aug-05#206coachfill re-verdicts cancel PRICED only at |since| ≥ 2.0, not the 1-2% fallthrough band — expect: freshness, sub-2.0 stale-at-fill cancels ~3/day → 0
Aug-05#203ownerweekly shadow reviewer runs even when the official arm gives up — expect: cost, Mondays ending with zero weekly reviews of either arm → 0
Aug-05#202ownerweekly article_funnel splits counts + latency by provider — expect: freshness, weekly grades #177 per-provider, never off the blend
Aug-05#198ownerper-role model+reasoning+provider pins; journal the served provider — expect: cost, coach/shadow/weekly/audit rows with a NULL reasoning → 0
Aug-05#193coachpost-close S4 enters skip at decision time; pending S4 bounded to its own session — expect: risk, S4 post-close failed/orphaned enters → 0
Aug-04#188ownercoach gets materiality×age bands, freshness regime, newly-live PRs — expect: signal, coach recommendations citing a named aggregate row ↑ (was 0)
Aug-03#185coachprev_close from daily_bars, not Yahoo 1d (lags till open) — expect: signal, pre-open prev_close != prior close → 0; stale-at-fill cancels → 0/wk
Aug-03#179ownerall 4 strategies skip a candidate whose news is already >4h old at decision — expect: freshness, trades entered on news >4h old → 0
Aug-03#177ownerAlpaca news leg (tier-2, 30s wake) — expect: freshness, alpaca median publish→detect ≥5x lower than ER, per-provider never blended
Aug-01#172owner4-wide concurrent classify + a same-tick fast pass for priority-tier articles — expect: freshness, opening-tick drain ~21m → under 6m
Aug-01#168ownercoach gathers + coach_hold key exits off ET day, closing #148's UTC divergence — expect: cost, zero deltas on 422 historical closed trades
Aug-01#166ownerpriority+newest-first classify dispatch, 4h starvation ceiling — expect: freshness, alerting-article classify wait p50 29.0m → under 10m
Jul-31#153ownershadow coach report also sent to Telegram (👥), unblinding the human A/B — expect: cost, restart-day duplicate shadow sends stay 0
Jul-31#155ownerstaged Monday weekly reviewer + three edge-bps gauges — expect: cost, +1 LLM call/wk (2 with shadow), daily spend unchanged
Jul-31#151ownerauditor trigger keys off ET exit day (coach gathers / app.coach_hold stay UTC, #152) — expect: cost, late exits flip audit fire/no-fire (0/414)
Jul-31#147ownerclassifier escape hardened (bracket swap, control + slice-tail openers) + report tripwire — expect: risk, live tags reaching a prompt → 0
Jul-31#146ownerretro reflections neutralize the decision rationale in a delimited block — expect: risk, hostile rationale text inert; benign ones unchanged
Jul-31#143coachS2/S3 entries require materiality ≥ 75 — expect: signal, S2/S3 entries ↓, combined S2/S3 P&L/wk from ≈ −$108 toward ≥ −$30
Jul-30#140ownercoach deadline 240→480s + heartbeat beaten before each long LLM call — expect: cost, shadow coach 240s timeouts → 0, watchdog kills unchanged
Jul-30#139ownermalformed OpenRouter envelopes (#135) raise a named, bounded error — expect: cost, opaque KeyError('choices') failures name the model + reason
Jul-30#138ownerevening bad-day auditor, market/selection/timing split — expect: cost, fires <=1 per 10 sessions (measured 1 of 11), no LLM call otherwise
Jul-30#137ownerfreshness journaled off publisher stamp (dateTimePub), guarded fallback — expect: freshness, median publish->alert ~6.6m->~11m (honest baseline)
Jul-30#134ownermalformed HTTP-200 classifier envelope no longer raises — expect: cost, envelope raise→page-storm eliminated; now per-attempt /logs WARNING(s)
Jul-30#131ownercoach prompt restructured into XML sections, ask restated at end — expect: cost, reports citing scaffolding as journal fact 6/11→0
Jul-30#130ownerclassifier prompt escape hardened (open tag + summary boundary) — expect: signal, structural delimiter breakout closed (not semantic injection); clean articles unchanged
Jul-30#128ownerreasoning knob + mandatory-400 self-heal — expect: cost, mandatory-reasoning 400s→self-heal, no page-storm; qwen cost/latency unchanged
Jul-30#126coach14-day aggregates added, rows compact-encoded — expect: cost, coach prompt_chars 460k→~310k with no report-quality drop
Jul-30#121ownercoach runs on its own 240s deadline (was retro's 120s); shadow retries bounded — expect: cost, coach timeout pages ↓, shadow rows 0→1/day
Jul-30#120coachS1 joins the S2/S3 tape gate at 1.0% — counter-tape primary entries skip — expect: risk, worst-day S1 loss ↓ with net gated P&L ≈ 0
Jul-29#117ownerpoller pages capped ticks to their tail (≤5×100) on a close-safe classify budget; ceiling 1500 — expect: signal, capped-tick tail drops 22%→~0
Jul-28#108coachequal-mat opposite signals conflict-hold — only strictly higher flips S1-S3 — expect: risk, same-day S1-S3 flips per ticker ↓
Jul-28#105ownerdaily_bars self-heals — gap check widens post-close fetch to 2y — expect: cost, daily_bars holes closed with no manual backfill
Jul-27#104coachS4's overnight winner re-verdicts at close-fill — stale signals cancel — expect: freshness, S4 entries filling already-PRICED → 0
Jul-27#101owneroptional shadow coach model journals a second daily report for a blind A/B — expect: cost, +1 coach call/day now to price a cheaper coach later
Jul-27#100ownercoach prompt condensed — repeated skips roll up with counts, floats at 2dp — expect: cost, coach prompt chars ↓ from 445,863; $/day ↓ from $2.61
Jul-27#98ownerretro prompt carries decision-time price context, so timing is answerable — expect: signal, retros naming a timing cause ↑
Jul-27#96ownerretros diagnose signal/timing/exit; coach recommendation must be falsifiable — expect: signal, coach recs with a gradeable effect ↑ to 100%
Jul-25#88owneroutbound HTTP calls under a conditional elapsed-time deadline, not per-op timeout — expect: risk, loop stalls past the deadline → 0
Jul-25#82owner/ticker pages + journaled daily_bars — post-close Yahoo upsert, fail-soft — expect: cost, one bars fetch/day, zero external calls per page view
Jul-24#75coachcross-strategy S1-S3 netting — one book per ticker, materiality-resolved — expect: risk, opposed same-ticker S1-S3 positions → 0
Jul-23#63coachqueued entries re-verdict at fill time — PRICED/UNKNOWN/stale-quote cancels — expect: freshness, queued fills entering already-PRICED → 0
Jul-23#59ownerqualifyContracts bounded 30s — stale Gateway fails, no loop hang — expect: risk, loop hangs on a half-open Gateway → 0 (was one 2.5h hang)
Jul-23#54ownerpost-close S1-S3 signals skip with rationale — no doomed after-hours order — expect: exit, entries with no reachable same-day close → 0
Jul-22#50coachS4 overnight slot resolves at close — highest-materiality signal wins — expect: signal, first-signal-wins S4 entries → 0
Jul-22#42ownerexit-side order-outcome verification — closes the double-exit race — expect: exit, duplicate exits from a fill/cancel race → 0
Jul-22#41ownerstop retrying after 5 failed exits — status=stuck, pages 🆘 once — expect: exit, unbounded exit retries → 0; one page per stuck trade
Jul-21#37coachS1-S3 get per-(ticker,exit_due) first-signal-wins position control — expect: risk, duplicate same-ticker S1-S3 positions ↓
Jul-21#31ownertrades.error journals why an entry failed — shown in Failed tab, fed to coach — expect: risk, failed entries with no recorded cause → 0
Jul-21#30ownerexit robustness — 09:30 journal-vs-IB reconcile + 10-min exit_missed retries — expect: exit, trades left open past exit_due ↓
Jul-21#29coachpre-open S1-S3 entries journal as queued, filled at the 09:30 open pass — expect: signal, pre-open S1-S3 signals traded, not dropped ↑
Jul-21#24ownerper-article timestamps — each article stamped at its own turn, not per batch — expect: freshness, detected_at skew within a batch → 0
Jul-20#15ownerclassified_gate journals why a classified article produced no alert — expect: signal, classified articles with no recorded gate → 0
Jul-20#10ownerTelegram quiet mode — errors + digests only; per-entry + news lines gone — expect: cost, Telegram messages/day ↓ to exceptions + digests
Jul-17#8coachS4 verdict gate — overnight entries only on FRESH/REPRICING; else a skip — expect: freshness, S4 entries on a PRICED alert → 0
Jul-17#6ownercoach reads classification journal — aggregates + capped tails for calibration — expect: signal, coach recs grounded in classifier calibration ↑
Jul-17#4ownerstory-level news dedup — two-pool rehash context + per-article journal — expect: cost, duplicate-story classifier calls ↓
Jul-16#2coachS4 position control — one open position per ticker+exit_due — expect: risk, duplicate S4 positions per ticker → 0

📈 Weekly reviews

weekmodelcharsgauges
2026-08-24anthropic/claude-fable-522,206+51.4% (n=457) · transit +0.03% · capture -0.17% · edge -15.76 bps
2026-08-17anthropic/claude-fable-520,562+45.8% (n=349) · transit +0.17% · capture -0.22% · edge -27.37 bps
2026-08-10anthropic/claude-fable-516,022+48.4% (n=429) · transit +0.09% · capture -0.10% · edge -13.48 bps