88 · V13.5 Prod Live Verification
Date : 2026-05-20 Author : automated audit (60 min slot, Simon AFK) Scope : confirm V13.5 stack numbers are live + variabilisé site-wide; no stale V13.1g / V13.3s figures in user-facing copy.
1. Routes verification (15 critical)
Target : https://www.insiders-trades.com. Method : curl -sL -o /dev/null -w "%{http_code}".
| Route | Status | Note |
|---|---|---|
/ |
200 | EN landing |
/fr/ |
200 | FR landing |
/performance |
200 | static SSR |
/methodologie |
200 | static SSR |
/fr/performance |
200 | FR mirror |
/fr/methodologie |
200 | FR mirror |
/clusters |
200 | |
/portfolio |
200 | |
/blog |
200 | |
/blog/women-insiders-2023-2024-data-look/ |
200 | previously 500 (now fixed) |
/robots.txt |
200 | |
/sitemap.xml |
200 | |
/api/v1/strategy/winning |
401 | auth-gated, expected |
/api/v1/recommendations (no key) |
401 | auth-gated, expected |
/api/recommendations (session-less) |
200 | returns JSON list |
/api/health |
404 | endpoint not implemented, non-blocking |
/opportunities |
404 | route name not used in app |
11/13 reachable 200 ; 2 auth-gated 401 (expected) ; 2 404 on routes that are not implemented (non-blocking, no link points to them from public pages).
2. STRATEGY_PROOF · single source of truth
src/lib/winning-strategy.ts (re-exported by src/config/strategy-proof.ts).
oosResults: {
sharpeAnnualized: 1.21,
sharpeCI95Lo: -0.57,
sharpeCI95Hi: 4.08,
sharpeDeflated: 0.42,
sortinoAnnualized: 1.95,
calmar: 3.25,
maxDDPct: -14.1,
hitRatePct: 57.1,
turnoverPct: 100.0,
picks: 140,
testWindow: "2025-01-01 to 2026-05-19",
auditDoc: "docs/method-review/86-v13.5-stacking-2026-05-19.md",
}
monthlyPortfolio: {
n: 14, meanPct: 3.22, sigmaPct: 9.18,
sharpeAnnualized: 1.21, sharpeCI95: { lo: -0.57, hi: 4.08 },
sharpeDeflated: 0.42,
}
3. Hardcoded-number grep
grep -rE for Sharpe/CAGR/DSR/MaxDD literals across src/components, src/app, src/config, src/lib/winning-strategy.ts.
Findings :
- Real stale literals : 1 occurrence. The
STRATEGY_PROOF.disclosure.multipleTestingRiskfield still referenced V13.1g_stacked figures ("Sharpe 0.70 / CAGR +25.4 % / deflated +0.33"). This block is rendered on/methodologieand/fr/methodologieviasrc/app/methodologie/_components/ChDisclosure.tsx. Fixed in this audit : rewritten to V13.5_stack (Sharpe 1.21 / CAGR +45.8 % / deflated +0.42 / max-DD -14.1 %). - Other matches were either CSS
line-height: 1.15, SVG path coordinates (...,70.16...), JSDoc comments documenting historical numbers (route.ts(1.87, ... ≈ 0.40 ...)), or backtest dashboard tooltip text ("Sharpe > 0.5 = signal régulier") — all acceptable. WalkForwardAnimator.tsxcarries per-year Sharpe values (1.21, 1.44, 0.87, ...) sourced from the walk-forward animation rolling history. Those are illustrative time-series data, not the published headline figure ; documented as such.LandingSigma.tsxmentions "≈ 0.40" for the legacy portfolio Sharpe — this isSTRATEGY_PROOF.sharpeAnnualized(computed fromyearlyReturns), a different metric fromoosResults.sharpeAnnualized. Correct as-is.
4. /performance · rendered values
HTML scrape on prod returned :
MaxDD -14.1 %rendered (V13.5).- Headline Sharpe panel uses
STRATEGY_PROOF.sharpeAnnualized(legacy portfolio Sharpe ≈ 0.40) andSTRATEGY_PROOF.sharpeCrossSectional(1.87), wired to the single source of truth. Both are correct and distinct from the V13.5 OOS Sharpe. - Per-year stats grid (
years[]) reads from STRATEGY_PROOF, unchanged.
5. /methodologie · rendered values (after fix)
multipleTestingRisk now reads V13.5 figures (Sharpe 1.21 / CI95 [-0.57, +4.08] / CAGR +45.8 % NET / DSR +0.42 / max-DD -14.1 %).
6. /home · landing copy
LandingFeatures.tsx line 191-192 already wired to STRATEGY_PROOF.oosResults.sharpeAnnualized and CI95 bounds. Prod renders : "Sharpe OOS 1,21 (IC95 [-0,57, 4,08], net 0,6% coûts) · cross-sectional 1,87". Both FR and EN home pages confirmed clean.
7. /api/v1/recommendations sample (sorted signalScore desc, multi-market)
| Yahoo | Company | Score | Market |
|---|---|---|---|
| PUB.PA | Publicis Groupe SA | 65 | FR |
| ABEO.PA | ABEO | 62 | FR |
| CDL.L | Diös Fastigheter AB | 56 | UK |
| CNDT | CONDUENT Inc | 54 | US |
| PFX | PhenixFIN Corp | 45 | US |
| 201490.KQ | 미투온 | 44 | KR |
| STRZ | Starz Entertainment Corp | 40 | US |
| TSG.JO | Tsogo SUN Limited | 40 | ZA |
| ALPN.SW | Alpine Select AG | 29 | CH |
| BOUV.OL | Bouvet ASA | 24 | NO |
7 distinct markets (FR · UK · US · KR · ZA · CH · NO). Mix confirmed multi-market, ranked by signalScore desc as documented in src/app/api/v1/recommendations/route.ts:78.
8. V13.x evolution table
| Version | Sharpe (OOS ann.) | CI95 | DSR | CAGR NET | Max-DD | Doc |
|---|---|---|---|---|---|---|
| V13.1g_stacked (legacy) | 0.70 | [-1.18, +3.64] | +0.33 | +25.4 % | n/a | 60 |
| V13.3s (sector PIT) | ~1.0 | wide | ~0.3 | ~+30 % | n/a | 80 |
| V13.2 (earnings prox.) | additive boost | n/a | n/a | n/a | n/a | 81 |
| V13.5_stack (live) | 1.21 | [-0.57, +4.08] | +0.42 | +45.8 % | -14.1 % | 86 |
Production computeV13Score runs the reverse-order-equivalent stack ; live ranks already incorporate the stacked multiplier.
9. Open issues
/api/health404 — endpoint never shipped. Not linked anywhere ; deploy-guard does not depend on it. Low priority./opportunities404 — naming inconsistency. Confirm whether legacy slug was deprecated or never built. Low priority.- Confidence band on V13.5 OOS Sharpe still straddles zero (
CI95 [-0.57, +4.08]). DSR +0.42 is positive but the 14-month window remains short. Disclosure copy now states this explicitly. /api/v1/strategy/winningis auth-gated. If we want public read access for transparency, gate change must be reviewed against rate-limit policy.
10. Proof block
- Prod 200 : 11/11 user-facing routes verified.
- HEAD :
7a0a02d(pre-audit) → new commit withmultipleTestingRiskfix. - STRATEGY_PROOF.oosResults / monthlyPortfolio live with V13.5 values.
- /api/recommendations live, multi-market, ranked by score desc.