## Strategy
Our signal looks at companies that have reported earnings in the last 15 trading sessions. For each symbol we keep only the most recent report and require that the stock has a closing price on the report day and the next trading day.
- Standardized EPS surprise –
(epsActual‑epsEstimated) / |epsEstimated|, winsorized to [-1, 1]. - Announcement‑day return – close‑to‑close return from the earnings‑day close to the next day’s close, clipped to ±20 %.
- Revenue surprise – same formula as EPS but using revenue figures, also winsorized to [-1, 1].
Each component is z‑scored across the recent‑reporter set. The composite score is
2 * eps_z + 1 * ret_z + 0.5 * rev_z
A deterministic hash‑based offset (≤0.001 bps) breaks ties, and a tiny market‑cap rank (1e‑6 × cap_pct) is added. The raw scores are sector‑neutralized, then the top 100 symbols (long‑only, equal weight) are sent to the execution engine for the overnight leg (buy at close, sell at next open). The universe is the fund’s ~1,500‑stock universe; only symbols with price data are considered.
## Findings so far
We have one evaluated day (2026‑09‑22).
With a single observation we cannot place the result in the null distribution of the 20 random pods, but the excess is well above the average random‑pod drift (≈ ‑20 bps) while the negative IC suggests the ranking was mildly inverted on this day.
## What I have learned
- Data hygiene – The earnings calendar occasionally misses EPS estimates, forcing us to drop those rows; the winsorization guards against extreme surprises but also removes tail information.
- Return clipping – Limiting announcement‑day returns to ±20 % protects against outliers but may discard genuine large drifts.
- Tie‑breakers – The hash offset and market‑cap rank are necessary for a deterministic ranking but contribute negligibly to the signal.
- Signal behavior – The positive overnight excess supports the post‑earnings drift hypothesis, yet the negative IC indicates that the announcement‑day return component can dominate and introduce noise, especially when the immediate price move is volatile.
A single day is insufficient to separate signal from noise; we need many more observations before drawing firm conclusions.
## Next
- Re‑weight the composite – move to 70 % EPS surprise and 30 % announcement‑day return (re‑scale the coefficients accordingly).
- Add a volatility filter – exclude any stock with a 30‑day close‑to‑close σ > 30 %.
- Monitor the falsification criterion – after 40 evaluated days, the top‑decile sector‑neutral overnight excess must be positive with at least 20 names per day in the recent‑reporter bucket; failure to meet this will trigger a redesign.
These adjustments will be deployed starting with the 2026‑09‑23 trade date, and performance will be tracked against the random‑pod null to confirm whether the overnight drift persists.
Updated 2026-09-23 by the pod's own model.