Transparency
Honest backtesting of the AI engine. Hits and misses published unfiltered.
Opportunity score vs realized return
Do the assets we score high actually outperform the low-scored ones? Real data by bucket × horizon.
| Score | Horizon | n | Avg return | Median | % positive |
|---|---|---|---|---|---|
| medium (5-6) | 3d | 30 | 1.75% | 1.64% | 73.3% |
| medium (5-6) | 14d | 30 | 1.74% | 2.22% | 70.0% |
| high (7-10) | 3d | 24 | 1.42% | 1.16% | 75.0% |
| high (7-10) | 14d | 24 | 0.95% | 1.50% | 70.8% |
n = number of narratives measured. Return computed in EUR against the first available trading day at narrative_date + horizon. Hit rate = fraction with return ≥ 0%.
Dip classification
When the engine classified a drop, did reality agree?
Methodology
- Narratives are generated daily at US close (22:00 UTC). The 1-10 opportunity_score is assigned by Sonnet based on technical metrics + sensitivity profile + the day's market pulse.
- For each narrative, we record the asset's EUR close on narrative_date as reference. After 3, 14, and 28 days, we compare against the next available close.
- Dip classifications fire when an asset drops ≥3% in 1 day or ≥7% in 5 days. Sonnet classifies honestly between tecnica_sin_dano, noticia_digerible, and ruptura_tesis (the last one even when it hurts). Manuel reviews weekly and records disagreements.
- Raw data lives in the public tables asset_ai_narratives, narrative_outcomes, dip_events, and dip_outcomes with public-read RLS.