Pipeline Retrospective — 2026-05-05

Pipeline Stats

Apr 3 Cycle Scorecard

Ticker Entry Now Actual Target Outcome
AIG $75.42 $78.96 +4.7% +16.0% PARTIAL
DD $45.48 $49.51 +8.9% +22.6% PARTIAL
PHM $117.29 $118.60 +1.1% +22.3% PARTIAL
SWKS $55.19 $71.62 +29.8% +21.7% HIT
DHI $139.69 $148.16 +6.1% +14.6% PARTIAL
TROW $90.17 $102.87 +14.1% +10.8% HIT
HUM $177.83 $240.47 +35.2% +19.3% HIT

Headline numbers:

IC Table (N=7 — interpret with caution, threshold for weight adjustment is N≥10)

Framework Spearman IC vs 30d Return
Composite −0.679
graham_pct −0.679
llm_pct −0.464
schilit_clean_pct −0.393

Critical observation: All ICs are strongly NEGATIVE. The lowest-ranked candidates (SWKS, TROW, HUM) outperformed the top-ranked (AIG, DD, PHM, DHI). The framework is anti-predictive on this sample.

But: N=7 is well below the N≥10 threshold for weight adjustment, and a single 30-day window is highly regime-dependent. Need to wait for additional resolutions before any structural reweighting.

Self-Critique

What Worked

  1. 100% directional accuracy is genuinely strong — the picks all went up in a 30-day window. The Graham filter is doing its job as a quality screen.
  2. Diversification rule held: Apr 3's top 7 spanned Financials, Materials, Cyclical, Tech, Healthcare. None were correlated drawdown risks.
  3. AIG execution call was correct in direction — bought T1 Apr 7 at $76.15 and T2 May 4 at $78.00 averaging $76.94, now at $78.96 = +2.6% on cost basis with 5.4% pre-buyback dividend. Per shr-013 the staged tranche structure prevented overconcentration ahead of Q1 catalyst.

What Didn't Work

  1. Negative IC is a red flag: Composite ranking #1 (AIG, +4.7%) underperformed #5-#7 (HUM +35.2%, SWKS +29.8%, TROW +14.1%). The framework is identifying real value but mis-ordering it.
  2. Forward P/E may be under-weighted: HUM (Healthcare insurance) and SWKS (Tech, semiconductor) had the strongest moves — both had cyclical earnings inflections that LLM/Graham scores understated. Per shr-003, larger trailing-vs-forward P/E gaps signal profitability inflections; this signal may need explicit weighting.
  3. Phase 1 screen instability: Two consecutive yfinance stalls in the same session is a hard infrastructure issue. Need to add request rate-limiting before the next cycle, OR reuse cycles every 14 days more aggressively (less fresh data needed if the universe changes slowly).
  4. Reddit overlay has limited utility for EU portfolios: Consistent with prior cycles, EU candidates have ~0 Reddit mentions. The framework's "fundamentally sound + Reddit-hated" divergence signal effectively only fires on US stocks.

What's Surprising

  1. HUM (+35.2%) is the standout — Healthcare insurance had a big April. Composite scored it #7 (lowest of the 7). This is precisely the pattern that explains the negative IC. If the framework can be tuned to weight forward earnings inflections more, the IC could flip positive.
  2. Direction was perfect (7/7) but magnitude calibration was off: Targets were set systematically too high for top picks (AIG, DD, PHM, DHI all underperformed targets) and too low for the lower-ranked picks. This suggests the conviction grading itself is mis-calibrated, not just the underlying score.

Weight Adjustments Applied

None this cycle — N=7 below threshold (N≥10). The Apr 20 cycle's 7 predictions resolve approximately 2026-05-20, which would bring resolved total to 14 and unlock the first weight adjustment. Recompute IC at that time.

Recommendation for future weight design when N≥10:

Cycle Open Questions

  1. Is the negative IC a small-sample artifact, or a structural framework problem? Defer to N=14 resolution (~May 20).
  2. Why did the screen stall at exactly ~23MB read on yfinance? Possibly hitting YF's per-IP rate limit. Consider switching some queries to Finnhub.
  3. Should we use the binary catalyst window (May 6-12) to opportunistically run Phase 2 single-name updates rather than waiting for next cycle?

Action Items for Next Cycle (~2026-05-19)

  1. Investigate yfinance throttling: log per-ticker fetch latency in pm pipeline screen to identify which symbols stall the loop
  2. Resolve Apr 20 cycle (14 total resolved → first IC-based weight adjustment unlocked)
  3. Update Phase 2 verdicts based on May 6/7/11/12 earnings results
  4. Reassess BKG.L post-insider continuation: if Perrins keeps buying past 24 June FY26 results without thesis change, conviction upgrade

Files Updated