Resolving: April 20, 2026 and May 5, 2026 predictions Measurement period: 42–57 days
| Metric | Value |
|---|---|
| Total predictions (all cycles) | 21 |
| Resolved | 21 |
| Correct | 11 (52%) |
| New predictions added (Jun 16) | 7 |
| Cycle | Count | Correct | Hit Rate | Context |
|---|---|---|---|---|
| 2026-04-03 | 7 | 7 | 100% | April 9 tariff pause triggered broad market recovery; all bullish calls correct |
| 2026-04-20 | 7 | 2 | 29% | German auto sector -15–19%; macro headwinds not adequately priced into conviction scores |
| 2026-05-05 | 7 | 2 | 29% | BKG.L +7.1% correct; UHR.SW bearish call wrong (+15.1%); AKE.PA -8.2% |
| Ticker | Predicted | Composite | Price In | Price Out | Return | Correct |
|---|---|---|---|---|---|---|
| PRU.L | bullish | 55.0 | 1117p | 1125p | +0.72% | ✓ |
| APA | bullish | 55.0 | $36.12 | $37.02 | +2.49% | ✓ |
| BMW.DE | bullish | 55.0 | €83.50 | €67.64 | -18.99% | ✗ |
| MBG.DE | bullish | 55.0 | €52.01 | €49.38 | -5.06% | ✗ |
| MOS | bullish | 56.4 | $24.02 | $22.54 | -6.16% | ✗ |
| BKG.L | bullish | 56.4 | 3494p | 3472p | -0.63% | ✗ |
| PAH3.DE | PASS | 60.7 | €33.04 | €30.84 | -6.66% | ✗ |
Hit rate: 2/7 (29%) Note: PAH3.DE PASS recommendation correctly avoided a -6.7% loss, but tracked as false on predicted_direction=bullish for IC consistency.
| Ticker | Predicted | Composite | Price In | Price Out | Return | Correct |
|---|---|---|---|---|---|---|
| BKG.L | bullish | 56.4 | 3242p | 3472p | +7.09% | ✓ |
| MOS | PASS (neutral) | 56.4 | $22.85 | $22.54 | -1.36% | ✓ |
| UHR.SW | bearish | 56.4 | CHF 181.80 | CHF 209.30 | +15.13% | ✗ |
| PAH3.DE | bullish | 60.7 | €30.84 | €30.84 | 0.00% | ✗ |
| AKE.PA | bullish | 55.0 | €62.55 | €57.40 | -8.23% | ✗ |
| SHEL.L | bullish | 55.0 | 3295p | 3196p | -3.00% | ✗ |
| BOL.PA | PASS (neutral) | 55.0 | €5.39 | €5.40 | +0.19% | ✗ |
Hit rate: 2/7 (29%)
Framework composite scores for the 14 predictions cluster in a range of 55.0–60.7, with only three distinct values:
This is an artifact of the data constraint: Yahoo Finance was blocked by network policy, forcing the screen to reuse April 20 data with price=$0 for all candidates. Without live price data, the composite formula collapses to essentially just Graham filter counts, producing near-identical scores across all candidates. The composite score had almost no discriminating power between picks.
April 20 predictions were measured over 57 days (to Jun 16). May 5 predictions over 42 days. Mixing these raw returns violates the basic requirement for cross-sectional IC computation. Annualizing would require assumptions that introduce more noise than signal at these sample sizes.
Per shr-033: "don't codify a strategy or rule from a single regime / single outcome." N=14 with near-identical composite scores and mixed windows does not meet the bar for IC-calibrated weight changes. The weights.json notes "Will adjust after 10+ resolved predictions" — we have 21 total but the quality of the composite score variation in cycles 2-3 is too low.
Weights remain unchanged at:
graham_pct: 0.30
magic_formula_pct: 0.20
llm_pct: 0.30
schilit_clean_pct: 0.10
reddit_divergence: 0.10
| Cycle | Ticker | Divergence Type | Buy/Pass | Price At Prediction | Return (57d) | Correct |
|---|---|---|---|---|---|---|
| Apr 20 | PRU.L | FUND_SOUND_REDDIT_HATED | bullish | 1117p | +0.72% | ✓ (early) |
| Jun 16 | PRU.L | FUND_SOUND_REDDIT_HATED | bullish | 1125p | pending | — |
PRU.L remains the only HIGHEST_CONVICTION_CONTRARIAN call in the active pool. The +0.72% over 57 days is not the full expected move — the thesis has a 6-12 month horizon driven by H1 results (Aug 26, 2026) and $730M buyback absorption. This is too early to score the divergence strategy.
No "Reddit-hyped + fundamentally weak" (CAUTION_CROWD_PROVIDING_EXIT_LIQUIDITY) calls were actioned this cycle. ADBE was identified as this type post-Q2 — the May bullishness was correctly not acted on.
German automotive exposure was underweighted risk. BMW.DE -19%, MBG.DE -5.1%. The MVMA 2026 US auto import ban bill was a known risk in Phase 2 analysis but two of seven April 20 predictions were in German auto (both at conviction MEDIUM and LOW). The sector-concentration rule (max 2 from same sector) was technically respected, but German auto under trade-war conditions constitutes a regime-level risk, not just a stock-level risk. Lesson: when US-China trade war is active, require a 30% buffer in margin of safety for any US-tariff-exposed sector.
AKE.PA entry timing was poor. Holding -8.2% on price at 57 days (-1.4% real including dividend per shr-040). The Q1 results (May 6) were a binary event — the investment in the May 5 prediction entry was correctly sized at LOW_MEDIUM conviction, but the continued deterioration in acrylic spreads was underestimated. Net debt/EBITDA approaching kill condition (2.8x vs 3.0x trigger). The Iran deal June 15 adds a further headwind via oil → acrylic price compression.
UHR.SW bearish call was wrong (+15.1%). Expected -12.4% (stock 12% above analyst consensus PT, gross margin compression, 424-day inventory). The Hayek family's resistance to mark-downs is stronger than modeled. Swiss luxury inventory destocking appears to be ending. The May 5 bearish thesis was premature. Note for Jun 16 cycle: monitor for potential bullish reversal in UHR.SW.
Composite score concentration. With Yahoo Finance blocked, scores clustered at 55–60.7. This stripped the quantitative screen of discriminating power and placed the entire analytical burden on Phase 2 LLM assessment. The LLM analysis correctly identified BKG.L (insider buying → +7.1%), PRU.L (Reddit divergence → +0.72% so far), and correctly flagged MOS/PAH3.DE as PASS. But it missed the BMW.DE / German auto trade-war exposure.
BKG.L timing lesson. April 20 entry at 3494p: -0.63%. May 5 entry at 3242p (bought on weakness): +7.1%. The consistent insider buying by Chairman Perrins at higher prices validated the thesis — waiting for a better entry after identifying the right thesis and signal actually worked here. The discipline to re-enter at a lower price after a small loss was the right move.
BKG.L shr-002 signal (insider buying). Chairman Perrins' open-market purchases were the key signal. The thesis has now produced two cycles of tracking, with the second entry delivering +7.1% in 42 days. Insider buying by top officers at their own money is the framework's strongest signal (shr-002).
PRU.L Reddit divergence thesis. The May data (PRU.L Reddit-hated = -0.46 sentiment, 29 mentions) is consistent with the June 16 re-run. The contrarian setup is intact and strengthening. +0.72% at 57 days is noise for a 6-12 month contrarian thesis; the thesis is not yet resolved.
MOS PASS calls. PASS recommended in May 5 (avoided -1.4% loss). Reiterated PASS in June 16 cycle. The shr-017 cyclical trap framework is correctly identifying commodity companies at the wrong point in their earnings cycle.
Phase 2 LLM analysis adds value where quantitative data is thin. The Phase 2 agents (Finnhub + yfinance) provided fresh data when the Yahoo Finance screen was stale. BKG.L was elevated from its composite score purely on the LLM qualitative analysis of insider buying and net cash. This is the right use of the LLM component.
Trade-war tariff exposure = regime-level risk. When US-China or US-EU trade tensions are active, require an explicit tariff-exposure check in Phase 2 for any manufacturing sector stock. Any candidate with >30% US revenue AND tariff-exposed products should have composite score reduced by 10 points or require conviction ≥ MEDIUM-HIGH before inclusion.
UHR.SW reversal to monitor. The May 5 bearish call was wrong. At CHF 209, inventory destocking may be ending. If Q2 2026 results (July 9, 2026) show gross margin stabilization or inventory reduction, the thesis flips from bearish to watchlist bullish. Add watch alert at CHF 220.
AKE.PA kill condition check July 30. Q2 results are the next critical gate. Net debt/EBITDA at 2.8x must not exceed 3.0x. Iran deal headwind adds urgency. If the kill condition is breached, exit immediately per shr-016 fundamental stops — do not wait for a better price.
For the Jun 16 cycle, the PRU.L/BKG.L/DG conviction calls are cleaner than the Apr 20 / May 5 calls. All three have Phase 2 fresh data support, insider signals, and/or Reddit divergence. The composite score problem (YF blocked) is partially offset by the deeper Phase 2 work.
PAH3.DE has stagnated across two cycles. Add to watchlist with a price trigger at €28 (wider margin of safety) rather than tracking at current price. VW restructuring uncertainty is a real overhang.
Generated: 2026-06-16T11:35:00 Resolving: 14 predictions from 2026-04-20 and 2026-05-05 cycles Total cycle: 2026-04-03 through 2026-06-16 = 7+7+7 = 21 predictions, 11 correct (52%)