← Research · knowledge/reports/2026-10-30-1700-stale-postclose-run-corrected-buckets-ah-quiet.md
2026-10-30 17:00 ET: The official 4:21 PM postclose run used stale Yahoo daily bars. With final closes the regime is transitional, not stress, and 7 of the 17 mean-reversion names drop out. After-hours trading in the candidate names is quiet. Notes on PSX, SHOP, GS and JPM
Slot: Fri 2026-10-30 17:00 ET hourly research (after hours). Status: DRAFT, written ~17:00–17:30 ET. Screening/research, not investment advice.
TRAI data used:
/api/latest: official run2026-10-30_postclose_2026-10-30T20-21-55-558Z(generated 4:21 PM ET), read ~17:01 ET./api/history: all 13 stored runs, 10-22 → 10-30. I downloaded each run JSON from blob storage./api/events(asOf 2026-10-30),/api/correlations(asOf 2026-10-30),/api/scorecard,/api/regime,/api/macro. All returned 200.- Local engine re-run:
npx tsx scripts/run-local.tsat 5:04 PM ET. Same code, fresh Yahoo data. It writes only/tmp/trai-run.json; nothing was stored or deployed. - Engine source:
lib/yahoo.ts(fetchChart),lib/engine.tsL113–140 (6mo/1d daily fetch),lib/research/scorecard.tsL232–265 (live scorecard prefers the postclose run).
Quotes: Yahoo chart API, read ~17:00–17:10 ET: daily bars plus 5-min bars including pre/post. This is unofficial and may be delayed (Yahoo chart API). All statistics are my own calculations unless a source is cited.
Previous slots today: 09:00, 10:00, 11:00, 12:00, 13:00, 14:00, 15:00, 16:00 (close/October wrap, regime timing, Monday candidate preview, OPEC+, Monday BMO, ISM).
1. Focus and why
The 16:00 report took the official 4:21 PM run at face value: a stress label, 3 LM names, 6 SM names and 17 MR names. It also left one question open in its §9/§11: why did Yahoo's final VIX of 19.42–19.47 differ from the run's 20.68?
I compared the run against final closes and found the answer. The official run was built partly on stale data. That changes the regime label, the bucket membership, the live scorecard record, and the VIX9D denominator that Monday's premarket run will use. For Monday's gap-risk planning this matters more than any one headline.
This slot covers four things:
- (a) the stale-data audit;
- (b) a corrected candidate list from a fresh local run;
- (c) after-hours trading and filings between 16:00 and 17:00 on the candidate names;
- (d) business notes for candidates that had no company note: PSX, SHOP, GS, JPM.
2. The 4:21 PM run used stale Yahoo daily bars (data integrity; actionable for tonight's dashboard and the scorecard)
Method: I compared each universe row's close in the official run with Yahoo's final daily close for 2026-10-30 (156 names). I then searched today's 5-min bars for the bar each stale value matches.
Result: 22 of 156 names were off by more than 0.5%, and 12 by more than 1%. For each stale value I list the 5-min bar it matches:
| Name | Run close | Final close | Diff | Run chg | Final chg | Run rangePos → final | Matches 5-min bar |
|---|---|---|---|---|---|---|---|
| COIN | 138.15 | 143.54 | +3.90% | −13.97% | −10.62% | 0.11 → 0.57 | 13:55 |
| SMCI | 31.77 | 32.95 | +3.71% | −7.73% | −4.30% | 0.24 → 0.88 | n/a |
| SNOW | 297.87 | 306.08 | +2.76% | −9.81% | −7.32% | 0.13 → 0.55 | 13:35 |
| STX | 627.78 | 644.58 | +2.68% | −10.38% | −7.98% | 0.05 → 0.36 | ~14:40–15:00 |
| C | 121.06 | 122.64 | +1.31% | −3.74% | −2.48% | 0.12 → 0.57 | ~15:00 |
| SHOP | 155.59 | 157.49 | +1.22% | −6.77% | −5.63% | 0.17 → 0.42 | 12:05 |
| NEM | 105.53 | 106.61 | +1.02% | −5.61% | −4.64% | 0.29 → 0.59 | ~15:35 |
| NVDA | 203.33 | 204.64 | +0.64% | −4.83% | −4.22% | 0.30 → 0.46 | 13:05 |
| SPY (benchmark) | 751.60 | 755.72 | +0.55% | −2.31% | −1.77% | n/a | 14:40 |
The full list also includes SOFI, SNAP, CRWD, COF, SBUX, CVNA, SPOT, CSCO, CEG, CAT, CMG, CMCSA, SLB, SO, SCHW and COST.
The regime inputs were stale too:
| Input | Run | Final daily (16:15) | Matching 5-min bar |
|---|---|---|---|
| ^VIX | 20.68 | 19.42 | 20.69 at 15:35 |
| ^VIX9D | 20.94 | 19.25 | 21.02 at 15:35 |
| ^VIX3M | 21.33 | 20.78 | 21.32 at 15:40 |
| VIX9D/VIX | 1.013 | 0.991 |
- Label: the run said stress. On final data the label is transitional. My 5:04 PM re-run printed "VIX 19.42 between 15 and 22, VIX9D ≤ VIX".
- Risk is unchanged:
riskPerTradePctis 0.25% either way, because VIX is below 22. - This resolves the 16:00 report's §9/§11 question. The 20.68 was not a late tick into the 16:15 settle. It was a cached value from ~15:35.
Is this a one-off? All 12 earlier runs in /api/history match Yahoo's final closes. Every one of them has 0 names off by more than 0.5% and a maximum difference of 0.14% (my calculation). Premarket runs differ only in VIX, by design (S-102).
The difference is timing:
- Today's run started at 4:21 PM, from the EDT twin
20 20UTC. - Every other postclose run this month started at 4:34 PM.
- The stale values were 45 minutes to 4 hours old (12:05–15:40 bars). That points to per-symbol caching of Yahoo's `range=6mo&interval=1d` response, not to a feed that is uniformly late.
- The engine fetches with
cache: 'no-store'(lib/yahoo.ts), so the cache is on Yahoo's side. This is inferred, not verified. - The 5-min bars and
meta.regularMarketPricenow read final values. I do not know whether they were also stale at 4:21.
Consequences:
- *Tonight's dashboard (`/trai`, `/api/latest`) shows stress* and a 17-name MR list** until Monday's 8:45 run replaces it. Weekend readers see the wrong label.
- The live scorecard prefers postclose picks for a session date (
scorecard.tsL237: postclose 3 > manual 2 > premarket 1). The stale run's picks will therefore be graded as the 10-30 live record: - including MR fade-longs that did not qualify on final data;
- tagged
vx: stress, which also contaminates S-098's stress-day statistics. - This corrects the 16:00 report's statement that Monday's VIX9D denominator is 20.94. Monday's 8:53 premarket run reads the last ^VIX9D daily close, which now reads 19.25. The timing flaw in S-102 still holds, at a lower threshold: if Monday's pre-open VIX is below ~19.25, the 8:53 run will say stress as an artifact. Re-check the ratio after 9:30 regardless.
3. Corrected candidate list (local re-run at 5:04 PM ET, final Yahoo data)
| Bucket | Official 4:21 PM run | Corrected (5:04 PM) | Change |
|---|---|---|---|
| Long momentum | REGN, AMZN, PSX | REGN, CMCSA, SPOT, AMZN, PSX | +CMCSA (+4.27%, relVol 1.56, rangePos 0.87), +SPOT (+6.50%, 1.84, 0.92) |
| Short momentum (suspended) | RBLX, QCOM, APP, COIN, DDOG, KLAC | RBLX, QCOM, APP, DDOG, CSCO, KLAC, CAT, TEAM | −COIN (rangePos 0.57 on final data); +CSCO, CAT, TEAM |
| Mean reversion (fade-long) | 17 names | GS, ASML, ANET, ETN, HOOD, AMAT, JPM, PLTR, ISRG, SHOP (10) | Dropped: SNOW, NEM, NET, NVDA, C, AVGO, CSCO |
- Two causes are mixed here:
- stale closes, which overstated the drops of SNOW, NEM, NVDA and C;
- relVol on the complete day's volume rather than partial volume. CSCO's relVol went from 0.75 to 1.61, which moved it out of MR (needs 0.7–1.5) and into SM. NET and AVGO also lost MR status.
- The 5:04 PM figures are themselves Yahoo reads taken after the close and could still be revised. They agree with Yahoo's 5-min 16:00 bars for SPY, VIX and the spot-checked names.
- The corrected MR list is still print-adjacent and cluster-heavy (as in the 16:00 report §4 and §10):
- PLTR prints Mon 11-02 AMC; SHOP and ETN Tue 11-03 BMO; ANET Tue AMC (TRAI
/api/events). - ASML/AMAT/ANET/ETN are one cluster-1 bet (S-078). GS/JPM/HOOD are financials; GS–JPM–C–MS–BAC–WFC form cluster 2, avg ρ 0.58. HOOD's highest correlation is GS at 0.60 (
/api/correlations). - LM additions:
- CMCSA is not a print day: Q3 was reported 10-22 BMO (TRAI
/api/events). I found no company-specific news for today's +4.27%. An AI-written Quiver item attributes it to "recent quarterly results" and the planned NBCU/Sky separation (Quiver, 2026-10-30 12:21 ET). Treat the cause as unknown. It fits the telecom/defensive rotation in the 10:00 report (TMUS +6.2% today). - SPOT was covered at 13:00. It printed 10-22, so this is not an earnings-reaction pick under S-100.
- REGN and AMZN remain earnings-reaction LM picks (S-100).
4. After hours, 16:00–17:00 ET: quiet on every candidate name
Price action. Yahoo 5-min post-market bars, last print 16:15–17:02, vs the regular close:
- every name across the corrected and official buckets moved between −0.38% and +0.54% (NEM −0.38% and ETN +0.54% at the extremes);
- SPY +0.07%, QQQ +0.06%, XLE −0.06%;
- refiners: MPC −0.09%, VLO −0.90% (VLO is not in the universe; thin volume);
- post-market volume was large only where the regular-session volume was large (RBLX 29.3M, NVDA 31.1M; Yahoo).
No new company releases.
- I found no after-close earnings, guidance or 8-K items on any candidate name. Today's after-close 8-K flow was small and mid-cap: Cboe, BrightSpring, DoubleVerify, Arbor Realty (dividend suspended), Hilton Grand Vacations ASR (Cboe 8-K, 2026-10-30; StockSavvy 8-K list, 2026-10-30). None is in the universe.
- Beware of stale after-hours mover lists. Pages stamped "Updated Oct 30" (StockAnalysis, Stocknear, FinanceDashboard) still showed 10-29 after-hours moves, e.g. INTC −23% from $92.07 and AMZN −7.3% from $243.79 (StockAnalysis AH, read 17:05 ET). Yahoo's 10-30 post-market bars contradict them, so I did not use them.
Analyst actions found today (none on the corrected LM or MR names):
- RBLX (in SM, suspended): Morgan Stanley target $55 → $50 (Overweight); Roth $60 → $54; Wedbush $55 → $52; UBS $53 → $50; Freedom $55 → $60 (Yahoo Finance, 2026-10-30 13:31 ET).
- The cause of the RBLX move was its Q4 guide: bookings $1.89–2.00B (−10% to −15% y/y), adj. EBITDA −$70M to −$10M, FCF −$190M to −$105M (RBLX 8-K via StockTitan; Proactive, 2026-10-30).
Implication: nothing in the 16:00–17:00 window changes Monday gap risk on a candidate name. Weekend gap risk remains macro and geopolitical: the Hormuz/Iran headlines, OPEC+ on Sunday, China's PMIs, and ISM at 10:00 on Monday (16:00 report §5–6).
5. Business notes on candidates without a company note
PSX (Phillips 66): LM, the only energy name in the bucket
- Business: refining, midstream (NGL and Permian/Eagle Ford gathering and processing), chemicals (CPChem JV) and marketing. It also has a renewable-fuels segment.
- Q3 (10-28 BMO):
- record adjusted EPS $14.08 vs $11.73 (LSEG);
- net income $5.62B vs $133M a year earlier;
- realized refining margin $38.00/bbl (Q2: $24.08);
- record 41% distillate yield and 98% utilization.
- Source: Reuters via Investing.com, 2026-10-28; PSX IR, 2026-10-28.
- Management expects strong refining margins through most of 2027 (per the transcript summary; Investing.com transcript, 2026-10-28). That is secondary; I did not read the primary transcript.
- Catalysts:
- Coastal Bend expansion: first volumes in Q4, full 350 kbpd in early 2027.
- Western Gateway pipeline JV with Kinder Morgan and HF Sinclair ($5B) (Reuters, above).
- No print in the gap window (TRAI
next= null). - MPC prints Tue 11-03 BMO (16:00 report §5).
- Linkages: MPC ρ 0.91, CVX 0.64, XOM 0.57 (
/api/correlations60d, asOf 10-30). This is energy cluster 3 (avg ρ 0.71). - Typical reaction: last-4 avg |gap| 0.99% (0.33 ATR), continuation 75% (TRAI
/api/events). It is a low-gap name. - Today: +3.37% on relVol 1.53–1.56, right at the LM line. Friday's +2.2% for XOM and +1.8% for CVX on refining-led beats were the read-through (16:00 report §5).
SHOP (Shopify): MR fade-long, prints Tue 11-03 BMO (call 8:30 ET)
- Business: commerce software and payments. Q2 revenue was $3.58B, split into subscription solutions ($802M) and merchant solutions ($2.78B, mostly payments).
- Q3 guidance (given 08-05): revenue growth in the "low-thirties" %, gross profit growth in the "mid-to-high twenties" %, opex at 33–34% of revenue, SBC $150M, FCF margin "high-teens to low-twenties" (Shopify IR, 2026-08-05).
- Q2 actuals: revenue +34%, GMV $115.6B (+32%), FCF margin 18%. Q2 net income included a $1.06B after-tax mark-to-market gain on equity investments (same source).
- Date: Tue 11-03 BMO, confirmed (Shopify IR, 2026-10-06).
- Typical reaction: last-4 avg |gap| 11.4% (2.36 ATR), continuation 50%, avg day-1 in the gap direction −2.45%. Recent gaps were −5.7%, +9.2% (closed −6.7%), −9.0% and +21.7% (TRAI
/api/events). - Linkages: cluster 11 with PINS and SNAP (avg ρ 0.51). Highest correlations: SNAP 0.53, APP 0.53, AFRM 0.53, MSFT 0.51, PLTR 0.49.
- Implication: a Monday MR fade-long in SHOP is a trade with the print one session away. If it were held overnight on Monday it would carry an ~11% average gap. S-085/S-106 apply.
GS (Goldman Sachs): MR fade-long
- Business: investment banking, markets (equities and FICC), and asset and wealth management.
- Q3 (10-13 BMO): diluted EPS $17.01 vs $12.25 a year ago; net earnings $5.29B vs $4.10B (GS 3Q26 release via fast-edgar; Reuters via Investing.com, 2026-10-13). The beat came from equities.
- Next print: 2027-01-19 (TRAI). No company-specific catalyst inside the window.
- Linkages: MS ρ 0.89, C 0.63, HOOD 0.60, BLK 0.60. Bank cluster 2 (avg ρ 0.58).
- Today: −3.58% on relVol 0.95. The close was mid-range (0.57) and above VWAP. A capital-markets name on an AI-capex and risk-off day.
- Monday gap after VIX-spike Fridays: GS median +0.89%, worst −4.90% (n 13; 14:00 report, via financials note).
JPM (JPMorgan Chase): MR fade-long
- Business: the largest US bank: consumer and community banking, corporate and investment bank, asset and wealth management.
- Q3 (10-13 BMO): NII $27.1B (+13% y/y); NII ex-Markets $24.7B (+6%) (JPM 3Q26 presentation, SEC, 2026-10-13).
- Q4 guide: NII ex-Markets ~$25.5B, total NII ~$28B.
- Preliminary 2027 NII ex-Markets central case ~$107B (JPM 3Q26 transcript; figures as summarized in search results; I did not open the full PDF).
- Reuters called it a "rare profit miss" (Reuters via Investing.com, 2026-10-13).
- Next print: 2027-01-14 (TRAI). Avg |gap| 1.31%: a low-gap name.
- Linkages: WFC ρ 0.77, C 0.65, SCHW 0.62, BAC 0.62.
- Monday sensitivities: rate-sensitive to ISM at 10:00 and to Treasury refunding on Mon/Wed (16:00 report §6).
6. Strategy implications
- *Don't use tonight's `/api/latest` list or stress* label for weekend planning.** Use §3 (corrected), or better, wait for Monday's 8:53 run, which recomputes from scratch. All 12 earlier runs were clean.
- Monday sizing: VIX ~19.4 is well below 22, so risk is 0.25% under any label. The S-102 artifact threshold is now VIX9D 19.25 (not 20.94). Re-check the live VIX9D/VIX ratio after 9:30.
- The live scorecard record for 10-30 will be wrong unless the postclose run is re-run or flagged. The scorecard prefers the postclose run, and this one is stale. A forced re-run (
/api/run?session=postclose, behind auth) would replace the picks with the final-data list, under the same stored-run logic. I did not trigger it. It writes to production storage and is for Kieran or the 6 PM session to decide. - The MR list remains cluster- and print-heavy: semis/AI (ASML/AMAT/ANET/ETN), banks (GS/JPM, plus HOOD by correlation), and SHOP and PLTR with prints 1–2 sessions away.
Strategy proposals (see [strategy.md](../strategy.md)):
- S-108 (proposal, data quality): a post-close freshness guard. For each symbol, compare the daily bar's last close with
meta.regularMarketPriceand with the last regular-session 5-min close. If any differ by more than 0.05%, or the bar's age is under 15 minutes after 16:00, refetch fromquery2or substitute the 5-min-derived OHLC. RecordstaleCountin the run. IfstaleCount> 0 after a retry, re-run at 16:50 ET. - S-109 (proposal, ops): move the postclose cron to ≥ 16:35 ET (the EDT twin
20 20→35 20, the EST twin20 21→35 21). Keep the 16–17 ET window. Today's 4:21 start is the only stale run, and every 4:34 start was clean (n 6). That is weak evidence, so S-108 is the real fix. - S-110 (proposal, scorecard hygiene): let a run carry
superseded/dataQuality: stale. When a postclose run is flagged, have the scorecard fall back to the next-best run for that date. Exclude flagged runs from regime-conditioned statistics (S-098).
whiggity consult
Source and status. whiggity (Monica researcher bot) was consulted after this report was drafted, ~17:15 ET. Some of its search steps errored and it gave no source dates. I treat it as a second researcher, not a source of truth. Each point below is attributed to whiggity. I kept a point as verified only where I could confirm it with a dated public source or with my own calculation (labelled as such). Everything else is an unverified open question. Verification was done ~17:15–17:45 ET.
Verdict table
| # | whiggity's point | Status | Basis |
|---|---|---|---|
| 1 | DST ends Sun 11-01 02:00 ET, so cron times could shift | Date verified; no shift in TRAI run times | timeanddate; repo code + simulation |
| 2 | ASML trades in Amsterdam before the US open, so part of the overnight MR edge is arbitraged before 9:30 | Trading hours verified; edge claim open | Euronext/FESE hours |
| 3 | PSX is a refiner; an OPEC+ cut that lifts crude can compress cracks | Mechanism verified; outcome open | EIA (2026-09-04), CME; my calc |
| 4 | HOOD has weekend crypto beta | Verified (my calc), but no larger than its weekday beta | Yahoo HOOD/BTC-USD/QQQ |
| 5 | Fund Oct-31 year-end; tax-loss selling ends; turn-of-month on Mon 11-02 | Partly verified | 26 USC 4982; 24/7 Wall St (2026-10-30) |
| 6 | CMCSA +4.3%: anti-AI-capex rotation, month-end defensive flows, Barclays "pivotal 2026" | Barclays item is stale (Jan 2026); cause unconfirmed | Yahoo Finance article date |
| 7 | Drop PLTR (Mon AMC) and SHOP (Tue BMO) from MR longs; add an earnings-proximity rule | Dates verified; the engine has no such rule → S-111 | Palantir IR / Motley Fool (2026-10-30); Shopify IR (2026-10-06); lib/engine.ts |
| 8 | Yahoo daily bars and ^VIX/^VIX9D unreliable before ~4:45 PM; VIX settles after 4:15; gate the last bar ≥ 15:59 | 4:15 verified (Cboe); "4:45" unverified → S-113 | Cboe VIX methodology v6.0 (2026-02-26) |
| 9 | Friday VIX9D/VIX is structurally lower (weekend theta); use a continuous or day-of-week-adjusted threshold | Verified (my calc), and it cuts the other way for today → S-112 | Yahoo ^VIX/^VIX9D 2016–2026 |
| 10 | ASML/ANET/ETN/AMAT (+PLTR) are one AI-capex factor; cluster-penalized sizing; split c→o vs o→c on day 1 of the month; ISM 10:00 Monday | Cluster verified, except PLTR (not in it); ISM time verified → S-114 | TRAI /api/correlations; ISM calendar |
1. DST and TRAI's crons: verified, ET run times do not shift (whiggity's point; the check is mine)
- Date: US DST ends Sun 2026-11-01 at 02:00 local; clocks go back to 01:00 EST (timeanddate, 2026-10-02). The box's tzdata agrees:
zdumpshows 05:59:59Z EDT → 06:00:00Z EST. - Vercel crons are UTC.
vercel.jsonhas an EDT twin and an EST twin for every job: premarket45 12/45 13, postclose20 20/20 21, events30 11/30 12, options30 19/30 20, daily40 20/40 21, intraday5 21/5 22. - Gating:
app/api/cron/route.tsandlib/research/cronGate.tsrun a twin only when its?tz=matches New York's current offset. The offset comes frometZone()inlib/stats.ts, which usesIntlwithAmerica/New_York. There are no hardcoded −4/−5 offsets in the run path.lib/mcp/research.tsetToIsoalso derives the offset fromIntl. - Simulation: I fed the real gate code each cron's UTC time on Fri 10-30 and Mon 11-02, with 0, 8 and 59 minutes of start delay. Exactly one twin runs per job per day, at the same ET wall time:
| Job | Today (EDT) | Mon 11-02 (EST) | Twin that runs Monday |
|---|---|---|---|
| premarket | 12:45Z = 8:45 ET | 13:45Z = 8:45 ET | tz=est; tz=edt at 12:45Z (7:45 EST) skips |
| postclose | 20:20Z = 16:20 ET | 21:20Z = 16:20 ET | tz=est |
| events / options / daily / intraday | 7:30 / 15:30 / 16:40 / 17:05 ET | same ET | tz=est |
- The "8:53" is Vercel Hobby's start delay, not a schedule. 8:45 + 8 min = 8:53 ET in both regimes. A 59-minute delay would put premarket at 9:44 ET, which is still inside the gate's 8–9 hour window. That is an existing risk and is not DST-related (S-107 item 2).
- The GitHub Actions daily overview (
.github/workflows/daily-overview.yml) also has twins,35 21/35 22UTC.scripts/daily-overview/cron.shgates on New York time ≥ 17:15 and skips if the overview is already published. In EST the 21:35Z run (16:35 EST) skips and the 22:35Z run (17:35 EST) publishes. Unchanged at 5:35 PM ET. - Expected change: run-ID UTC stamps shift by +1h (e.g.
T13-45…Zinstead ofT12-45…Z). That is not a schedule change. - No cron proposal needed. S-107 already covers the Monday log check. I added this verification there. S-109 (postclose ≥ 16:35) is independent of DST.
2. ASML's Amsterdam session (whiggity): hours verified, edge claim open
- Verified: Euronext Amsterdam continuous trading runs 09:00–17:30 CET (Euronext trading hours, undated, read 2026-10-30; FESE trading hours, 2024-07).
- This week (CET vs EDT, 5h apart): 04:00–12:30 ET.
- From Mon 11-02 (6h apart): 03:00–11:30 EST.
- So ASML.AS has traded ~5.5–6.5 hours before ASML's US open.
- Open (unverified hypothesis): "part of the overnight MR edge is arbitraged before 9:30." TRAI's MR fills at the US open, so any Amsterdam-session reversion is already in the entry price. The question is whether US open→close MR edge in dual-listed names (ASML; also NVO, SAP, TSM via Taiwan) is smaller than for US-only names. I did not test this; it needs per-name o→c MR replays. → S-115(a).
3. PSX vs OPEC+ (whiggity): mechanism verified, outcome open
- Verified mechanism: a crack spread is product prices minus crude, a proxy for refinery margin. Refiners "can be vulnerable to risk when the price of crude oil rises while the prices of the refined products remain stable, or even decline," and cracks "typically weaken … when input costs are higher relative to refined products during geopolitical issues" (CME Group, *An Introduction to Crack Spreads*, undated; page assets dated 2026-Q2).
- The offsetting force is current: EIA says cracks are elevated because of tight global product supply (refinery disruptions in Russia, China and the Middle East). Distillate inventories were 14% below the 5-year average (EIA Today in Energy, 2026-09-04). A crude-led cut does not mechanically compress cracks when products are this tight.
- My calc (Yahoo daily, 2025-11-03 → 2026-10-30, n 250; 3:2:1 proxy from front-month CL/RB/HO, so contract months are mixed):
- Daily Δcrack vs crude return: ρ 0.04. Over the past year, crude moves did not systematically compress cracks.
- PSX regressed on SPY + crude + Δcrack: crude β 0.24 (t 6.6), crack β 0.18 (t 4.3).
- MPC is similar (0.28 / 0.18).
- XOM/COP: crude β 0.26 / 0.33, crack β ≈ 0 (t ≤ 1.1).
- So PSX is still a positive-crude-beta stock, though less than the E&Ps. It carries crack exposure that XOM/COP do not.
- Today's tape fits whiggity's mechanism in one day: CL=F closed ~102.95 on Yahoo (+0.9%) while the 3:2:1 proxy fell 53.5 → 49.4 $/bbl. PSX still closed +3.37%. That is n = 1.
- Open: the OPEC+ outcome (Sun 11-01) and the sign of PSX's Monday gap. Net exposure is ambiguous: positive crude beta vs crack compression.
4. HOOD weekend crypto beta (whiggity): verified, my calculation
- Method: Yahoo HOOD/QQQ daily and BTC-USD hourly, 2024-11 → 2026-10. I regressed HOOD's open gap (prior close → open) on BTC's move from prior 16:00 ET to 9:30 ET.
- Weekend/holiday gaps (n 104): ρ(HOOD, BTC) 0.67; univariate β 0.76. With QQQ's gap as a control: BTC β 0.40 (t 5.4), QQQ β 1.77 (t 8.8).
- Weekday overnights (n 396): ρ 0.66; β 0.98. Controlled: BTC β 0.63 (t 11.2).
- Conclusion: the crypto beta is real and visible in Monday gaps. It is not larger over weekends. Per unit of BTC move it is smaller, though BTC moves more over a weekend (sd 2.9% vs 1.8%).
- Now: BTC was −0.1% from Fri 16:00 ET to ~17:19 ET. Check it again before Monday's 8:45 run. HOOD is an MR fade-long in the corrected list (§3), so a BTC drawdown over the weekend would gap it against the fade or into it. → S-115(b).
5. Fund year-end, tax-loss selling, turn of month (whiggity): partly verified
- Verified:
- Under 26 USC §4982, a RIC must distribute 98.2% of capital gain net income for the one-year period ending October 31 to avoid the excise tax (26 USC 4982, uscode.house.gov; statute text, no page date).
- Many funds therefore realize gains and losses by Oct 31 (24/7 Wall St, 2026-10-30; also 13:00 report).
- Oct 31 is a Saturday, so today was the last trading day of the excise year.
- Mon 11-02 is the first trading day of November.
- Not verified: that "tax-loss selling ends." Fund-level excise-year selling ends; individual tax-loss selling runs to Dec 31. I also found no dated source on how many funds use an Oct-31 fiscal year (as opposed to the excise measurement period).
- Turn-of-month: already covered by S-103 (SPY first-day gap 63% up, n 128, my calc). No new rule.
6. CMCSA +4.27% (whiggity): cause unconfirmed
- The Barclays item is stale. The Yahoo article is dated 2026-01-25 and reports a Jan 13 target cut from $30 to $28 (Equal Weight) as part of Barclays' 2026 outlook (Yahoo Finance/Insider Monkey, 2026-01-25). It is not today's catalyst.
- "Anti-AI-capex rotation / month-end defensive flows" is plausible: TMUS +6.2%, semis down, and the 10:00 report's telecom/defensive rotation. But I have no dated source for it. It stays an unconfirmed rotation, as in §3 and §7.
7. Earnings proximity (whiggity): dates verified, no rule in the engine
- PLTR reports Mon 11-02 after the close (call 5:00 PM ET) (Palantir IR, date announcement; Motley Fool, 2026-10-30).
- SHOP reports Tue 11-03 BMO (Shopify IR, 2026-10-06).
- Engine check:
lib/engine.tsandlib/execute.tsdo not read/api/events. Nothing excludes or tags MR picks by distance to a print. strategy.md has only partial cover: - S-071: the own print falls between the signal close and the entry open. That does not catch PLTR or SHOP.
- S-088: Friday momentum entries on Monday reporters.
- S-106: a research question.
- Added S-111 (proposal). For Monday: PLTR's print comes after an intraday exit and SHOP's after the next close, so neither is an overnight gap for a flat-by-close book. But both are pre-print drawdown names (S-086). Earlier replay: pre-earnings MR n 27, mean −0.29%.
8. Stale bars and VIX settle time (whiggity): 4:15 verified, 4:45 not
- Verified: Cboe's VIX methodology lists RTH dissemination "between 09:31 a.m. ET and 4:15 p.m. ET" every 15 seconds (Cboe VIX methodology v6.0, last revised 2026-02-26). The Cboe VIX product page (read 2026-10-30) does not state the time; it showed VIX 19.42, matching §2's final value.
- Implication: a postclose run at 4:20 can only see a final VIX if the 16:15 print has propagated to Yahoo.
- Unverified: "Yahoo unreliable before ~4:45 PM." My only evidence is §2: one stale run at 4:21, and six clean runs at 4:34. That supports ≥ 4:35 (S-109). It does not support 4:45 specifically.
- whiggity's gate idea (assert the last bar ≥ 15:59 ET) is a cheap complement to S-108. For the VIX complex the gate must be ≥ 16:15, not 15:59. → S-113 (links S-108/S-109).
9. Friday VIX9D/VIX bias (whiggity's counter-evidence): verified by my calculation, and it reverses the reading
- Method: Yahoo ^VIX and ^VIX9D daily closes, 2016-10-31 → 2026-10-30 (n 2,514).
- Mean ratio by weekday: Mon 0.953, Tue 0.949, Wed 0.935, Thu 0.933, Fri 0.903.
- Share of days with ratio > 1: Mon 29%, Fri 14%.
- Paired changes:
- Fri − Thu: −0.031 (t −13.8, n 489);
- Mon − Fri: +0.044 (t 15.4, n 452);
- other weekdays vs the prior day: −0.008.
- Last year alone: Fri 0.873 vs Mon 0.913.
- The weekend effect is large and persistent. Weekend theta in 9-day options is the likely mechanism, but that is whiggity's explanation; I verified the pattern, not the cause.
- What it means for today:
- Friday's final 0.991 is the 83rd percentile among Fridays (74th among all days).
- Day-of-week-adjusted, it is ≈ 1.022: on the stress side of the 1.0 line.
- So whiggity's counter-evidence actually strengthens the stress reading. The §2 correction (transitional) is right under the current rule, but the rule is biased toward transitional on Fridays.
- Risk is unchanged: VIX 19.42 < 22, so 0.25%.
- Expect Monday's closing ratio to sit ~0.04 higher than Friday's for calendar reasons alone.
- → S-112.
10. MR concentration, turn-of-month split, ISM (whiggity): partly verified
- Cluster: ASML/ANET/ETN/AMAT are all in TRAI cluster 1 (60d, asOf 10-30, avg ρ 0.576). Their pairwise ρ is 0.62–0.80, mean 0.73 (
/api/correlations). - PLTR is not in cluster 1. It is in software cluster 5. Its ρ to ASML is 0.14, AMAT 0.20, ETN 0.26, ANET 0.32. whiggity's "and PLTR" is contradicted by TRAI's data.
- Cluster-penalized sizing extends S-078/S-085. → S-114.
- Close→open vs open→close on the first trading day: fold into S-103 (it already splits SPY's day-1 gap +0.10% from o→c +0.05%).
- ISM: October ISM Manufacturing PMI is due Mon 11-02 at 10:00 ET; September was 54.5 (ISM release calendar; PR Newswire, September report). S-007 already says to hold first entries until scheduled 10:00 prints clear.
Left open (unverified, attributed to whiggity)
- (2) The pre-US-open arbitrage of MR edge in dual-listed names.
- (3) The OPEC+ outcome and the sign of PSX's reaction.
- (5) "Tax-loss selling ends," and how many funds have an Oct-31 fiscal year.
- (6) Anti-AI-capex rotation and month-end defensive flows as CMCSA's driver.
- (8) A "~4:45 PM" reliability threshold for Yahoo.
- (9) Weekend theta as the cause of the Friday ratio dip.
ACTIONABLE (after the consult)
- Monday plan: use the §3 corrected list, not tonight's
/api/latest. - Treat ASML/ANET/ETN/AMAT as one cluster position (S-114).
- Flag PLTR and SHOP as print-adjacent MR longs to skip or half-size (S-111; not enforced by the engine).
- Take no first entries before ISM at 10:00.
- Regime: transitional by the rule, but stress-side once adjusted for Friday (≈ 1.02; S-112). Risk stays 0.25% because VIX < 22. Re-read the live VIX9D/VIX after 9:30.
- Crons: they fire at the same ET times after DST: premarket ~8:45 ET (8:53 with the usual Hobby delay), postclose ~16:20 ET. No cron change is needed for DST.
7. Open questions / unknowns
- The exact staleness mechanism. Yahoo-side caching of
range=6mo&interval=1dis inferred. I don't know whethermeta.regularMarketPriceor the 5-min bars were also stale at 4:21; the run JSON stores neither. - Whether SMCI/STX/SOFI/SNAP being stale changed any other derived statistics (e.g. correlations;
/api/correlationsshowslatestRun). Not checked. - CMCSA's +4.27% has no confirmed catalyst. whiggity's Barclays item is from Jan 2026; its rotation explanation is unconfirmed (whiggity consult §6).
- Whether the 5:04 PM local re-run values are final. Yahoo can revise daily bars, including volume, overnight.
- Weekend: OPEC+ on Sunday, Hormuz/Iran, China NBS PMI tonight at 21:30 ET, Caixin Sunday at 20:45 EST. Unchanged from 16:00 §5–6.
Sources (accessed 2026-10-30, ~17:00–17:30 ET)
- TRAI and engine: TRAI
/api/latest,/api/history(13 runs; run JSONs from blob storage),/api/events,/api/correlations,/api/scorecard;lib/yahoo.ts,lib/engine.ts,lib/research/scorecard.ts,app/api/run/route.ts. - Market data: Yahoo chart API (daily and 5-min with pre/post).
- After hours and filings: Cboe 8-K (SEC); StockSavvy 8-K list; StockAnalysis, Stocknear and FinanceDashboard after-hours pages (stale, not used).
- RBLX: Yahoo Finance; StockTitan (8-K); Proactive.
- CMCSA: Quiver.
- PSX: Reuters via Investing.com; PSX IR; Investing.com transcript summary.
- SHOP: Shopify IR (08-05 and 10-06).
- GS: fast-edgar copy of the 3Q26 release; Reuters via Investing.com.
- JPM: 3Q26 presentation (SEC) and transcript (JPM IR); Reuters via Investing.com.
- REGN: Regeneron IR (10-30).
- whiggity consult: timeanddate; Euronext and FESE trading hours; CME Group crack-spread primer; EIA Today in Energy (2026-09-04); 26 USC 4982; 24/7 Wall St (2026-10-30); Yahoo Finance/Insider Monkey (2026-01-25); Palantir IR; Motley Fool (2026-10-30); Shopify IR (2026-10-06); Cboe VIX methodology v6.0 (2026-02-26) and Cboe VIX page; ISM release calendar; PR Newswire (ISM September); Yahoo chart API (^VIX, ^VIX9D, HOOD, QQQ, BTC-USD, PSX, MPC, XOM, COP, CL=F, RB=F, HO=F); TRAI
/api/correlations; repovercel.json,app/api/cron/route.ts,lib/research/cronGate.ts,lib/stats.ts,.github/workflows/daily-overview.yml.
Takeaway: the official 4:21 PM postclose run used Yahoo daily bars that were 45 minutes to 4 hours stale for 22 names and for the VIX complex. On final data the regime is transitional (VIX9D/VIX 0.991), not stress (1.013). LM gains CMCSA and SPOT. MR shrinks from 17 to 10 names: SNOW, NEM, NET, NVDA, C, AVGO and CSCO drop out. Earlier runs were clean. After-hours trading and filings on candidate names were quiet (all within ±0.6%), so nothing name-specific changes Monday's gap risk. The fixes are a freshness guard (S-108), a later postclose cron (S-109) and a stale-run flag for the scorecard (S-110). Monday's S-102 artifact threshold is VIX9D 19.25.