VLO vs XLE next-20d excess return after geopolitical oil-headline spike with positive Brent momentum
The refining-compression story doesn't survive the data. After geopolitical oil-headline spikes, with Brent already in an uptrend, VLO didn't lag XLE — it beat it by an average of 2.50% over the following 20 sessions, and underperformed in only 25% of the 60 qualifying cases. That's the opposite of the input-cost squeeze the hypothesis predicted.
The more revealing number is the baseline. VLO was already beating XLE by 2.92% on any eligible day, so the headline condition didn't add an edge — it subtracted about 0.42 points. A p-value of 0.0002 only says the +2.50% isn't zero, not that headlines caused anything.
The full breakdown, including why overlapping 20-day windows shrink the effective sample well below 60, is below.
Over the past ~3 years, when the 5-day average of Iran/Hormuz/sanctions/OPEC headline mentions is in the top quintile of its trailing 252-session distribution while Brent crude's trailing 20-day return is positive, does VLO underperform XLE over the next 20 trading sessions? I expect a geopolitical supply-shock tape to lift crude through input-cost pressure that compresses refining cracks, so VLO should lag the oil-beta sector until the risk premium fades.
How this was measured
Daily closes for VLO and XLE are built from minute bars and joined into a session panel. A geopolitical-oil headline count is constructed by scanning VLO and XLE news titles, summaries, and topics for Iran, Hormuz, sanctions, and OPEC; the daily count is averaged over five sessions. The current 5-day average is compared with the 80th percentile of its trailing 252-session distribution, shifted one session to avoid lookahead. Brent momentum is measured as the 20-session percent change of Brent daily prices forward-filled onto the equity calendar. A signal day requires the 5-day mention average to exceed that trailing 80th percentile, be strictly positive, and have a positive Brent 20-session return. For each signal day, the forward 20-session VLO minus XLE excess return is computed from close[t+20]/close[t]-1. The conditional sample is compared with an eligible baseline after the 252-session mention history becomes available and tested against zero with a one-sample t-test.
The key numbers
Reading the numbers
The key number is +2.50%: on average VLO beat XLE by that much over the next 20 sessions after these signal days, with a +3.12% median and VLO lagging only 25% of the time. The p=0.0002 says that positive average is unlikely to be random noise, and it runs opposite your underperformance thesis.
The charts
This histogram shows the 60 signal-day outcomes for VLO's 20-session return minus XLE's, with the mass mostly to the right of zero. The average is +2.50%, and outcomes range from -9.03% to +13.75%, so while there is a left tail where VLO lags, the typical result is positive. Only 25% of these events had VLO underperform XLE, which directly cuts against the refining-margin-compression thesis.
This bar chart compares the average excess return on the 60 signal days, +2.50%, with the eligible-baseline average, +2.92%. The baseline bar is slightly taller, meaning VLO did not do worse after the geopolitical signal than it did in the broader set of valid sessions; in fact it did a touch better in both cases. The implicit conditional edge versus baseline is -0.42 percentage points, so the signal itself adds no extra VLO underperformance relative to XLE.
Signal-day detail (last 20 of 60 shown)
| date | mention_5d | roll_q80 | brent_20d_ret | vlo_fwd20 | xle_fwd20 | vlo_minus_xle_fwd20 |
|---|---|---|---|---|---|---|
| 2026-03-27 | 0.6 | 0.2 | 0.7032 | -0.0628 | -0.0939 | 0.031 |
| 2026-03-30 | 0.8 | 0.2 | 0.5779 | -0.0379 | -0.0692 | 0.0314 |
| 2026-03-31 | 0.6 | 0.2 | 0.5213 | 0.0251 | -0.0303 | 0.0554 |
| 2026-04-01 | 0.8 | 0.2 | 0.4659 | 0.0558 | 0.0182 | 0.0376 |
| 2026-04-02 | 0.6 | 0.2 | 0.4405 | 0.0095 | -0.0072 | 0.0167 |
| 2026-04-07 | 0.6 | 0.2 | 0.4649 | 0.0289 | 0.0349 | -0.0059 |
| 2026-04-08 | 0.4 | 0.36 | 0.3592 | -0.0158 | -0.0201 | 0.0043 |
| 2026-04-10 | 0.8 | 0.4 | 0.163 | 0.0092 | -0.0228 | 0.032 |
| 2026-04-13 | 0.6 | 0.4 | 0.1942 | 0.022 | 0.0019 | 0.0201 |
| 2026-04-14 | 0.6 | 0.4 | 0.1747 | 0.0635 | 0.031 | 0.0325 |
| 2026-04-15 | 0.6 | 0.4 | 0.0603 | 0.0382 | 0.0325 | 0.0057 |
| 2026-04-21 | 0.6 | 0.4 | 0.0226 | 0.1256 | 0.0927 | 0.0328 |
| 2026-04-22 | 0.8 | 0.4 | 0.0463 | 0.0825 | 0.0555 | 0.0269 |
| 2026-04-23 | 0.6 | 0.4 | 0.0377 | 0.0366 | 0.0367 | 0 |
| 2026-04-30 | 0.6 | 0.4 | 0.0391 | -0.0291 | -0.0557 | 0.0267 |
| 2026-07-17 | 1 | 0.6 | 0.0583 | 0.1064 | 0.0715 | 0.0349 |
| 2026-07-20 | 1 | 0.6 | 0.0963 | 0.1095 | 0.0799 | 0.0296 |
| 2026-07-21 | 1.2 | 0.6 | 0.227 | 0.1119 | 0.0858 | 0.0261 |
| 2026-07-22 | 1.4 | 0.6 | 0.2435 | 0.1153 | 0.0688 | 0.0465 |
| 2026-07-23 | 1.2 | 0.6 | 0.461 | 0.1195 | 0.0728 | 0.0467 |
The takeaway
Your hypothesis got flipped: after geopolitical-oil headline spikes with crude already rising, VLO didn't lag XLE — it beat it. Across 60 qualifying sessions, VLO outperformed XLE by an average of +2.50% over the following 20 sessions, with a median of +3.12%, and VLO underperformed in only 25% of cases. So the direction is the opposite of the refining-compression story you expected. That said, the signal itself is doing almost nothing: the unconditional average excess return across the 442 eligible sessions was +2.92%, meaning the headline condition actually left VLO 0.42 percentage points worse off than just showing up on any random day. The p=0.0002 looks impressive, but it only tells you the +2.50% isn't zero — not that the headlines caused anything, since VLO was already beating XLE with no headlines at all. Between the overlapping 20-day windows (which shrink the truly independent sample well below 60) and the negative edge versus baseline, treat this as no real signal: the headline setup is not a VLO-underperformance trigger, and in this sample it's closer to a non-event. Practically, the takeaway is that the input-cost squeeze you were looking for didn't show up in relative performance — if anything, VLO held up better than the sector when oil was already running.
The fine print
- Headlines are proxied by keyword counts from just VLO and XLE news (Iran, Hormuz, sanctions, OPEC), so coverage and recall vary over time and aren't a clean geopolitical feed.
- Adjacent signal days share overlapping 20-day forward windows, so the effective independent sample is much smaller than 60 and the t-test is flattering.
- The condition showed no edge over the ordinary baseline, so any apparent outperformance is VLO's broad tendency, not the headline trigger.
- Single pair and a specific window — other refiners or a different geopolitical cycle could behave differently.