ODFL
Moving with the market
- ODFL +1.34% on the last session vs SPY +0.74%: +0.6 pts of stock-specific move.
- Market backdrop (Fri): Average Hourly Earnings m/m 0.1% vs 0.3% expected (cooler); Non-Farm Employment Change 29K vs 89K expected (weaker); S&P futures +0.41%, 10-year yield -5bp in the 30 minutes after.
After each kind of event
| Event | Events | 1 day | 1 week | 1 month | 1 quarter |
|---|---|---|---|---|---|
| Any day | 1,255 | +0.1%#221 H | 0.0%#405 H | -0.1%#381 H | +1.5%#272 M |
| Big drop (-2.5% or worse) | 63 | +0.2%#201 H | -0.5%#404 H | -1.6%#483 H | +1.6%#297 M |
| Big gain (+2.5% or better) | 56 | +0.2%#204 H | +0.9%#143 H | +1.2%#260 H | +3.3%#246 M |
| Earnings beat | 16 | +1.1%#48 M | +4.1%#121 M | +5.0%#96 M | +1.6%#297 M |
| Earnings miss | 3 | +1.9%#58 L | +2.4%#66 L | +1.5%#80 L | -6.9%#171 L |
| 52-week high | 9 | 0.0%#229 M | -0.8%#354 M | -5.0%#448 M | -9.4%#434 L |
| 52-week low | 5 | -1.4%#208 L | +1.5%#94 L | +2.2%#130 L | +9.8%#86 L |
| Crossed above 200-day avg | 9 | +0.1%#231 M | +1.4%#100 M | +1.8%#223 M | +1.3%#253 L |
| Crossed below 200-day avg | 10 | +0.2%#190 M | -0.2%#305 M | -0.1%#301 M | +4.2%#220 L |
| RSI oversold | 12 | +0.7%#46 M | +1.8%#92 M | +2.1%#256 M | +2.0%#359 L |
| RSI overbought | 16 | +0.3%#227 M | 0.0%#279 M | -1.9%#344 M | +0.2%#271 M |
| Reddit spike | — | — | — | — | — |
| Analyst upgrade | — | — | — | — | — |
| Analyst downgrade | — | — | — | — | — |
| Insider buy | — | — | — | — | — |
| Insider unplanned sale | — | — | — | — | — |
Median gain from the close of the session the event was known, over each holding period; #rank among the S&P 500 stocks after the same kind of event (#1 = best). "Big" is ODFL's own: its worst / best 10% of days over the prior 2 years. Highlighted: happening in the latest session.
Crossed below 200-day avg
The close moves below its 200-day moving average.
| Holding | Events | Median (likely range) | Confidence | Rank | Up | vs SPY | Range of outcomes (worst · 25–75% · median · best) | vs S&P 500 stocks (their medians) |
|---|---|---|---|---|---|---|---|---|
| 1 day | 10 | +0.24% (-0.6 to +0.5) | Medium | #190 of 497 | 60% | -0.33% |
-2%
+2%
|
|
| 1 week | 10 | -0.18% (-3.3 to +1.6) | Medium | #305 of 497 | 50% | -1.05% |
-6%
+5%
|
|
| 1 month | 10 | -0.07% (-7.7 to +2.4) | Medium | #301 of 496 | 50% | -2.69% |
-12%
+13%
|
|
| 1 quarter | 9 ≈7 indep. | +4.25% (-9.3 to +5.6) | Low | #220 of 493 | 56% | -1.44% |
-21%
+37%
|
Range of outcomes: all of ODFL's crosses below the 200-day average in the past 5 years, from the worst to the best result over each holding period; the box holds the middle half, the tick is the median. A wide box means the median alone says little. Hover the median for the average.
Crossed below 200-day avg by trend
| When it happened | Events | 1 day | 1 week | 1 month | 1 quarter |
|---|---|---|---|---|---|
| Medium trendAbove its 50-day avg | 4 | +0.3%L vs 0.0% | +3.2%L vs -0.5% | +1.9%L vs -1.4% | +10.6%L vs -3.7% |
| Below its 50-day avg now | 6 | -0.1%L vs +0.1% | -2.9%L vs +0.3% | -3.1%L vs +1.3% | -9.3%L vs +6.5% |
| Short trendAbove its 20-day avg now | 5 | -0.6%L vs 0.0% | +2.6%L vs -0.4% | +2.4%L vs -1.5% | -6.5%L vs -2.6% |
| Below its 20-day avg | 5 | +0.7%L vs +0.2% | -2.5%L vs +0.3% | -1.6%L vs +0.9% | +11.2%L vs +4.7% |
The same event split by where ODFL stood against its 200-, 50- and 20-day averages when it happened (a dip in an uptrend vs a falling knife); "vs" is the plain any-day median in that trend; "now" marks where it stands today. Splitting halves the evidence, so watch the confidence letters: H / M / L.
Latest crosses below the 200-day average
| Event | Entry | 1 day | 1 week | 1 month | 1 quarter | |
|---|---|---|---|---|---|---|
| Sep 1, 2026 | Sep 1 @ $186.72 | -6.5% on the day | +0.5% | -2.5% | -4.6% | … |
| Dec 8, 2025 | Dec 8 @ $151.04 | -2.2% on the day | -1.8% | +3.8% | +12.8% | +24.6% |
| Jan 28, 2025 | Jan 28 @ $187.84 | -2.4% on the day | -2.2% | -3.3% | -8.0% | -21.1% |
| Dec 18, 2024 | Dec 18 @ $189.60 | -3.6% on the day | -2.1% | -5.4% | -1.6% | -11.2% |
| Oct 1, 2024 | Oct 1 @ $192.32 | -2.0% on the day | -0.6% | -1.3% | +4.7% | -9.3% |
| Aug 27, 2024 | Aug 27 @ $190.20 | -3.1% on the day | +0.7% | +1.6% | +1.4% | +16.9% |
| Jul 18, 2024 | Jul 18 @ $192.76 | -1.6% on the day | 0.0% | +5.2% | +2.4% | +4.2% |
| Apr 24, 2024 | Apr 24 @ $192.07 | -11.1% on the day | +0.8% | -6.4% | -12.0% | +5.6% |
| May 16, 2023 | May 16 @ $146.29 | -2.6% on the day | +1.8% | +1.0% | +10.2% | +36.6% |
| Aug 2, 2022 | Aug 2 @ $143.72 | -3.2% on the day | +0.5% | +2.6% | -7.7% | -6.5% |
Aftermath: entry is the close of the first session the event was fully known (the same session for price moves, the reaction session for earnings, the next session for Reddit, analyst and insider events, which are dated by day). Repeats within a few sessions count as one event. Past performance after an event says nothing certain about the next one. Not advice.