In plain terms: this is everything wrong with ARGUS that we can point to real evidence for — things we shipped broken, times a named competitor beat us on a fair test, and numbers we published and later had to take back. We show it because a trading tool that only tells you what went right is the one to be careful of; the ones worth trusting are the ones that say when they lost. 37 entries follow, 21 of them a competitor we lost to by name, and each is checked against its own record every time this page loads, not written once and left to go stale.
By kind: 6 we shipped it broken, 21 a baseline beat us, 9 claim withdrawn, 1 still open.
Every entry is read out of the artefact that recorded it, at the moment you load this page — not written down once and left to drift. A finding whose artefact cannot be read is listed as unreadable rather than dropped, because a losses page that silently shortens is the most flattering possible lie. back to the console
paper/runner.py recorded the model's unconstrained intent whenever the desk chose not to re-put a decision to the model, bypassing the Constitution on the common path. Rows 264, 265 booked profit against positions that were never taken — and for one morning they were this project's entire win rate: 100%, on the only two trades it had ever made. They were never made. The rows stay in the chain unedited, because deleting the two that made the numbers look good is precisely the behaviour this system exists to refuse.
argus/paper/corrections.pyThe corpus it was scored on was written by the same author, in the same sitting, as the router's own training examples. Re-measured against one authored by a model that has never seen this repository it scores 1.0x against the regular expressions it was built to beat — level. Leave-one-out cross-validation shows its similarity distributions for right and wrong answers overlapping completely, so no abstention threshold separates them. It is not deployed.
data/lui_router.jsontie — ruptures is still more coherent than FLUSS (ARGUS's original tool) on the ground-truth-free family test, stumpy is bit-identical and 266x faster, and against KNOWN synthetic changepoints FLUSS's own mean F1 is 0.4433 against ruptures' 0.975 (100 trials, noise 0.5-4.0) — a real, unclosed loss for FLUSS specifically. ARGUS's SECOND tool, exact_partition (added 2026-09-22, an exact L2 dynamic program, read from ruptures' own real source), ties ruptures on the identical 100 trials: mean F1 0.98 against ruptures' 0.975 (1 win, 0 losses, 99 ties — not statistically distinguishable from identical, reported as a tie rather than a win)
data/regime_comparison.jsonThey score 100% on the corpus they were widened against and a quarter of that on one written by a model that has never seen them. Four separate held-out corpora were burned discovering this, each one spent the moment its answers were read; eval/ngrambench.py records the status of every split rather than quietly quoting the friendliest.
data/oblique_bench.json52 condition(s) are claimed with nothing behind them in the artefact. The register fails the build rather than rounding up, and two of those remaining need real spend against a metered model key — stated as a cost rather than quietly skipped.
data/standing.jsonThe console counted two refused positions as trades while every document said zero. Each surface was reading its own source correctly, and both numbers came from the same hash chain — so the contradiction arrived wearing a verification. eval/surfaces.py now compares 6 facts across two surfaces each on every build; it currently reports 0 disagreement(s).
data/surface_agreement.jsonWe recomputed the technical-analysis Skill's RSI before trusting it, and never did the same for its MACD. The Skill returns the signal line in its histogram field and the histogram in signal, and its cross flag contradicted the recomputed lines on 6 symbols. The desk passed those payloads to the model as evidence, and decision theses cited the crosses. Every MACD payload is now recomputed from Bitget's 4h candles before the desk or the console reads it; past theses stay in the chain as written.
data/skill_macd_check.jsonupThe page and the entry quoted 741 of 1433 leans right at about 2 hours with a 95% interval of 52.7-64.0%, computed as if every call were independent. They came from 135 decision cycles whose symbols share one market move; resampling whole cycles gives 48.1-55.4%. And the test was against 50%, when calling up every time was right 51.6% of the time: cycle by cycle the lean beat that naive call 50 times and lost 59. An independent audit caught both on 2026-09-24; eval/refusal.py now bootstraps over cycles and reports the naive baseline, and every document quoting the old interval was corrected.
data/refusal_alpha.jsonThe theme audit counted every ledger row as a decision, including the settlement seal written when each decision settles, so its sentence about tradeable sessions read 349 of 1200 against a 627-decision record. The counts in the numerator were right; the denominator was not. Decisions are now filtered by kind before anything is counted (caught 2026-09-24).
data/theme_audit.jsonEvery clock built without an argument had an empty holiday calendar, so Thanksgiving read as a regular session everywhere the desk asked what the market was doing, the live paper cycle included; one caller in about twenty-five passed the calendar in. Found by a judge audit on 2026-09-26; the calendar is now the default (truth/clocks.py). Correcting it moved a published figure: the risk-layer comparison, on the same frozen data, loses the checkpoints that fell on holidays and now reads 56.32% precision over 314 checkpoints, against the 59.14% over 318 it published. The verdict holds: ARGUS still dominates freqtrade at every threshold.
data/risk_layer_comparison.jsonLOSS, measured 2026-09-26 and NOT VERIFIED here: eval/general_delib_comparison.py rescored the production charge on 23,003 decision instants (the forward tape of 2026-09-24 and Tardis Bitget-futures quotes for 2026-09-01 and 2026-08-01) against the realised mid move at 3, 8 and 40 seconds.
data/standing.jsonLOSS for the earlier abstention_quality: it returns the same output for a perfect, a random and an inverted gate, which fd-shifts orders (AURC 0.177 / 0.489 / 0.868). eval/abstention_coverage.py adopts fd-shifts' method and ties it on every shared quantity (largest difference 3.4e-15), adding the loss priced in bps (fd-shifts' 50%-risk working point loses 3,344bps), None instead of a ValueError, and a…
data/standing.jsonLOST on speed to Polars: 14.5x to 187x faster than the columnar grammar_series path on the 7 shipped factors it can express.
data/standing.jsonLOSS for the screen: survivors_fdr, ARGUS's Benjamini-Hochberg screen, does not hold its target on planted universes (false-discovery rate 18.9% at q 0.05), while 128 general pipelines do.
data/standing.jsonLOSS for the deployed decompose(): 49 of its 52 accepts lose money on the first capture (precision 0.058, ticker-bootstrap interval 0 to 0.156) and 24 of 25 on the second.
data/standing.jsonGraded LOST against OpenBB-finance/OpenBB provider set; TauricResearch/TradingAgents feed list. RE-GRADED 2026-09-29 from IMPLEMENTED to LOST (Activity/28_CAPABILITY_CLOSE_PLAN_2.md §19) on the breadth axis Track 3 names, against the named baseline, run for the first time on the same inputs (eval/perception_breadth.py, data/perception_breadth.json). Every keyless OpenBB provider (cboe, finra, finviz, sec, tmx, yfinance answering; …
data/standing.jsonLOST to RoB-RT by 0.185 of macro-recall on the same 12,284 test tweets: ARGUS's crowd read scores 0.544 (95% CI 0.535 to 0.553) against RoB-RT's 0.729, and trails every published TweetEval baseline, the weakest of them BLSTM at 0.583.
data/standing.jsonIt LOSES where the defect is common or falling: at 60% and 75% base rates it warns with no real rule (power 0.3%, where the rivals warn with every rule, real or null), and when the base rate falls from 50% to 20% while every rule keeps its lift, its lifecycle retires 68% of the real rules as decayed; the rivals, which never retire anything, keep them all, and keep 100% of the dead rules warning too (ARGUS 2%).
data/standing.jsonretrieval diversity, 2026-09-25 (data/retrieval_diversity.json): a LOSS for the path matcher - MMR at lambda 0.9, the best on 2019-2022, scores 16.42 Winkler against 16.40 without it on 2023-2026 (Diebold-Mariano p = 0.028); find()'s default stays nearest-first, and diversity is available only when asked for
data/standing.jsonGraded LOST against nkaz001/hftbacktest queue model; Bitget's own instrument rules; Almgren & Chriss (2000) closed-form optimum vs nautechsystems/nautilus_trader's real TwapAlgorithm as the field's stated default. RE-GRADED 2026-09-28 from IMPLEMENTED to LOST (Activity/27_CAPABILITY_CLOSE_PLAN.md §6). eval/session_arena.py ran for the first time on real Bitget order books replayed from Tardis (19,440 parents over 11 perpetual and 4 spot first-of-month days; 384 cross a session boundary; three 2025-09-01 days are empty files at the source and are named, not replaced). …
data/standing.jsonWhat remains open: this is a TIE, not a WIN — the goal (per this project's own standing instruction to keep trying LOST capabilities until a real algorithmic idea either flips them or is shown not to) would be an ARGUS allocator that beats Riskfolio's NCO outright, not only matches it. Published because data/allocation_comparison.json already said 'this capability is LOST to the specialist on its own criterion' in its own scope_statement, and nothing read that field into this register until now. Second, later the same day: built ARGUS's own NCO from Riskfolio's real source (Ward linkage, active-set min-variance QP, the real two-difference gap statistic), verified it reproduces Riskfolio's real NCO to 1.3e-05 on the real book, wired it into the SAME live walk-forward comparison this capability was measured LOST on, and re-ran it live: a genuine tie, 8.203bps both, ratio 1.0000.
data/standing.jsonWhat moved the capability's OVERALL verdict from LOST to TIED is a SECOND, different ARGUS tool (exact_partition, desk/regime.py, added 2026-09-22) that ties ruptures on the same benchmark — read directly from ruptures' own real, BSD-2-Clause source (detection/dynp.py, costs/costl2.py) after Finding 8 showed the gap was a method-family mismatch (a shape-based nearest-neighbour heuristic vs an exact cost-minimi... This mirrors the portfolio-allocation capability's own LOST-to-TIED story exactly: the original tool (HRP there, FLUSS here) still loses on its own; a second, purpose-built tool closes the gap the first one could not. State moves LOST -> TIED — mirroring the portfolio-allocation capability's own same-week story — not to OWNED, because a 1-trial discordant sample cannot support a significance-backed win claim.
data/standing.jsonLOST on the tail: ARGUS states a point and no downside, so skfolio's vine wins the 10% quantile (pinball 0.23 against 0.43 for ARGUS's point).
data/standing.jsonLOST first, then TIED. The schedule the console printed — Almgren-Chriss in hourly children — cost 12.2bps with fees on a $100k parent against 6.9bps for Bitget's own 60-second TWAP, dearer on all 80 parents: on this book the cadence, not the shape, decides the cost.
data/standing.jsonThe first run of this comparison, the same day, was a clean LOSS and is kept on the record: ARGUS modelled Bitget's stock perpetuals and not the spot rTokens, so the best hedge it could offer an RTSLAUSDT holder was its QQQUSDT index leg, which removed 10.1% and lost on all 11 names (p = 0.001). market/rtoken_spot.py (Ballast's pairing rule, calendar and overnight return, MIT, reproducing its nights to 0.0) and de... the first run was a clean loss (index hedge 10.1% against 99.7%), published before the rebuild
data/standing.jsonWhat the report does not carry: the first run was a clear LOSS - ARGUS gave no verdict on any past-tense causal claim or either session claim - and it is kept in data/h2h_mirrorline/argus_raw_first_run.json the first run was a loss (ARGUS read 18 of 38, MirrorLine 38) and is kept; the claim kinds only one desk reads are named
data/standing.jsonTIED: the first run was a LOSS (ARGUS answered a hedge question); rebuilt, ARGUS prices liquidation at Bitget's live maintenance tier and live funding, reads 1,443 NVDA weekends since 1999 and the perpetual's own path through 57 weekends.
data/standing.jsonGraded LOST against NVIDIA garak @8d1259ef (Apache-2.0): its latent-injection probes as development and its promptinject probes, built by its own resources/promptinject, as a held-out set scored once; the quarantine's own rules as they stood before 2026-09-28 as the second arm. RE-GRADED 2026-09-29 from IMPLEMENTED to LOST (Activity/28_CAPABILITY_CLOSE_PLAN_2.md §47) on the row's own claim, attacks never written against, against a trained classifier (eval/injection_classifier_rival.py, data/injection_classifier_rival.json): ProtectAI's deberta-v3-base-prompt-injection-v2 (Apache-2.0, local) and ARGUS's rules on the same 662 externally sampled deepset/prompt-injections prompts, a corpus…
data/standing.jsonLOST on recall, WON on false memories, on the only blind round that decides the grade (held_out_4, data/memory_comparison.json, frozen 2026-09-30 05:30 UTC before either side ran): ARGUS recalled 15 of 20 stated facts to mem0's 18, and stored 0 of 12 sentences that were not about the trader to mem0's 7 (a friend's advisor, an influencer, a question, a hypothetical).
data/standing.jsonLOST to fixed size on the measure sizing exists for. At the same average exposure, the GARCH-targeted arm's worst drawdown was deeper on all three coins (BTC 29.5% against 27.0%, ETH 54.1% against 51.4%, SOL 57.8% against 52.7%), its Sharpe higher on ETH only (0.80 against 0.70;
data/standing.jsonClustering-corrected, base-rate-honest event significance vs. a fixed-null test; Funding-aware cross-asset hedge routing vs. a fee-blind composite router; Self-evolving review rules; Session-aware execution that refuses to solve through a boundary; Structured filing extraction vs. FinanceBench's real, published LLM measurement; Point-in-time correctness vs. OpenBB's real, ungated live-API agent. Each stays in the register below OWNED with the reason and the route back as its first blocker, on /proof.
data/standing.jsonDeliberation priced as a trading cost; Abstention scored as a decision; Overfitting gates that raise instead of returning NaN; Typed factor grammar with no execution surface; Factor-discovery safety: no execution surface and trial-corrected selection, vs. RD-Agent; Cross-market cointegration with corrected multiple testing; Net executable arbitrage vs. a fee-blind detector; Episodic memory across decisions; Pre-registered trading protocol, hash-committed; Perception layer: what the desk can see; Path-shape matching with a calibrated null. Each stays in the register below OWNED with the reason and the route back as its first blocker, on /proof.
data/standing.jsonData-honest cross-asset breadth rotation vs. a silently-dropping reference. Each stays in the register below OWNED with the reason and the route back as its first blocker, on /proof.
data/standing.jsonCross-sectional factor evaluation; Numeric decision grounding vs. TradingAgents' real, unchecked TraderProposal. Each stays in the register below OWNED with the reason and the route back as its first blocker, on /proof.
data/standing.jsonServes no flow (research/gap_study has no caller outside eval and an unused module), belongs to Track 1, which this project does not enter, and its comparison rests on two holiday dates, which can be neither won nor lost. Removing it found and fixed a real defect: a closure reaching a weekend before a Monday holiday was labelled a weekend, so MLK, Presidents, Memorial and Labor Day were misread; fixed in research/gap_study.py and tested against exchange_calendars' XNYS calendar. Brought back by: a longer history than two holiday dates, and a flow that uses the reading.
data/removed_capabilities.jsonServes no flow (research/factor_divergence has no caller outside eval), belongs to Track 1, and both arms score with the same vendored Alphalens information-coefficient function, so the comparison can only ever tie; the ablation's intervals include zero on both factors. Brought back by: a divergence Alphalens cannot compute, measured on frozen candles.
data/removed_capabilities.jsonA duplicate: the function it claims, execution/latency.thinking_budget_cost_bps, is the one row 01 (deliberation priced as a trading cost) claims, and row 01 records the measured loss of that charge against a trailing realised-move estimator on 23,003 decision instants. The named rival has no input for the quantity, so no same-input comparison can exist. The sub-theme stays covered by row 38 (order splitting against Bitget's own TWAP). Brought back by: none; the claim lives on row 01.
data/removed_capabilities.jsonThis is not everything wrong with ARGUS — nothing could be, and claiming completeness would be its own overstatement. It is the set of findings that already have an artefact behind them.