Case file: CSX — 5 August 2026
One recommendation, fully accounted for: every gate of the method as it stood that day against the values actually recorded when it ran. This evidence exists automatically for every name, every day — CSX is not a special case.
Every recommendation the system issues is traceable. This one carries:
| Recommendation | BUY CSX (CSX Corporation, Industrials) |
| Execution | manual approval required — nothing runs without the verdict |
| Recommendation id | 2b981308… — the key that links every record below |
| Pipeline run | 019fcd25… — the daily run that produced it (2026-08-05 14:24 UTC) |
| Mail received | Opportunity brief 2026-08-05 14:38 UTC · approval email 14:40 UTC — both in the send log |
| Rules in force | rules_version 39dd09a9… — the exact rule set that judged it, kept frozen on the archived method page (as of 5 August 2026) |
Every number below is copied from the production audit tables; nothing is reconstructed from memory.
Step 1 · Universe — why CSX was selected
| Requirement | Threshold | CSX recorded | Pass |
|---|---|---|---|
| In screening universe | Nasdaq-100 | member | ✔ |
| Market cap | ≥ $20 B | $94.51 B | ✔ |
| Positive earnings (TTM) | > 0 | $3.223 B | ✔ |
| Revenue growth (YoY) | > 0 | +10.1% | ✔ |
| Not on exclusion list | not STX/DASH | — | ✔ |
Where these numbers physically come from — the raw vendor payload
The system fetched this data from Yahoo Finance at 14:21:38 UTC (same pipeline run), recording: earnings_ttm 3,223,000,064 · market_cap_usd 94,513,266,688 · revenue_growth_yoy 0.101 · next_earnings_date 2026-10-22 · debt_to_equity 138.068 · free_cash_flow 1,953,250,048 · pe_ratio 30.01. The odd trailing digits are Yahoo's own floating-point representation — stored as received; the gates test signs and thresholds, which the wobble cannot affect.
Step 2 · Qualification — 100 of 100 (minimum: 80, all buckets required)
Trend — 35/35, all three gates passed (recorded prices, 2026-08-05):
| Gate | Recorded | Pass |
|---|---|---|
| Close > 50-week MA | close 51.02 > 40.36 | ✔ +12 |
| Close > 200-day MA | 51.02 > 41.36 | ✔ +12 |
| Close > 50-day MA | 51.02 > 48.42 | ✔ +11 |
These are the Trend tests as they stood on 5 August 2026. The bucket was revised on 12 August 2026 — the current method statement states the new tests and why they changed.
Business quality — 25/25 (the three universe fundamentals above, re-checked as required gates).
Relative strength — 20/20: 63-trading-day return +13.65%, beating SPY by +6.20 percentage points (required: > 0).
Momentum — 20/20 (needs ≥ 6 points): 52-week high was only 12 days ago (≤ 60 → +7) and RSI-14 = 50.69 > 50 (+6). Recorded flags — trend, business quality, relative strength, momentum — all four true.
The arithmetic behind +13.65% and +6.20 pp — reproduced to four decimals
The 63rd trading row back from 08-05 lands on 2026-05-05, close $44.8924: (51.02 − 44.8924) ÷ 44.8924 × 100 = +13.6496%. SPY over the identical window: (775.68 − 721.9102) ÷ 721.9102 = +7.4483%. Relative strength: 13.6496 − 7.4483 = +6.2013 pp — matching the recorded value exactly.
Step 3 · Buy gates — the dip and every veto, on the day
| Gate | Rule | Recorded on 2026-08-05 | Pass |
|---|---|---|---|
| Minimum pullback | ≥ 2.0% below 20-day high | 4.15% | ✔ |
| Trend intact | above 50-day and 200-day MA | 51.02 > 48.42 and 41.36 | ✔ |
| Earnings blackout | no buy within 3 trading days of earnings | next earnings 2026-10-22 (~2.5 months away) | ✔ |
| Market regime | no signals when BROKEN | regime that day: HEALTHY (SPY and QQQ both above their 50/200-day MAs) | ✔ |
| Re-entry cooldown | no re-buy within 5 trading days of an exit | no recent CSX exit on this book | ✔ |
Step 4 · Shortlist — why CSX was selected, not merely signaled
Evaluated 2026-08-05 14:34 UTC. Final score 81 → "strong review candidate" (≥ 80) · rank 1 of the day · selected.
Drop classification — the dip is orderly, not panic: on the day itself CSX was flat (−0.02%) while the market rose (+0.56%) and the sector was flat (−0.23%). The 4.15% pullback built over multiple days — classified gradual_pullback: "Controlled multi-day pullback, no sharp one-day drop." News scan over 3 days: 0 negative headlines, no red flags, hard-reject checks all clear, zero penalty points. The AI classifier's baskets (see the method statement) all came back empty here — with no headlines to read, the category came from the price context alone.
News evidence — what the scanner saw
Recorded: news_count = 0 — the 3-day scan (2026-08-02 → 08-05 14:34 UTC) found no CSX headlines; classification ran on price context alone. Reconstruction from the Finviz feed (2026-08-06) corroborates: the nearest headlines all predate the window and are positive —
- 2026-07-31 — "Higher Freight Volumes Boost CSX Shares Over 42% in a Year" (Yahoo Finance)
- 2026-07-26 — "Why Did IMAX, JPM, CSX Stocks Surge To 52-Week Highs Last Week?" (Yahoo Finance)
- 2026-07-23 — "Why Did CSX, UNP, NVCR Stocks Surge To 52-Week Highs Today?" (Yahoo Finance)
- 2026-07-23 — "CSX Q2 2026 Earnings Call Highlights: Record Revenue and Strong EPS Growth" (Yahoo Finance)
- 2026-07-22 — "CSX Reports Higher Second-Quarter Profit, Sales" (WSJ)
The dip followed a post-earnings 52-week high on no adverse news. Transparency: the system persists the headline count, not the texts; this reconstruction is from the vendor feed after the fact. Persisting full headline lists at decision time is a planned improvement.
Score decomposition (deterministic):
| Component | Points | Basis recorded |
|---|---|---|
| Fundamentals | 25 | revenue +10.1% YoY (≥ 5% = good), positive earnings |
| Cash flow | 13 | FCF positive; D/E 138% — above the "low" bar of 80 (not full points), below the 200% very-high flag |
| Valuation | 12 | P/E 30 vs own 1-year average 23, vs sector median 41 — cheaper than sector |
| Drop quality | 12 | gradual multi-day pullback, no panic signature |
| Portfolio fit | 10 | no existing CSX position on this book — no concentration |
| Technicals | 9 | RSI ~51 (above the 25–45 "oversold" band — not maximum) |
| Penalties | −0 | none |
| Final | 81 | recorded reason: "score 81: revenue growing 10% y/y; positive free cash flow; cheaper than sector median" |
Step 5 · Sizing — why $630, exactly
Pullback 4.15% falls in the 4–6% tier → 7% of available cash. The book held $9,000.00 available cash at the 14:00 UTC snapshot → 0.07 × 9,000 = $630.00 — under every cap (≤ $2,000 single purchase, ≤ 10% of cash, ≤ $3,000 total in one name), and inside the daily budget (max 3 buys, ≤ 30% of cash per brief).
Verdict status
The recommendation was issued as manual-approval-required — it executes nothing until the owner approves it. (CSX had also signaled on the three prior days — dips of 5.32%, 5.58%, 6.32% — and, per the method, simply re-signals each day it remains qualified, dipped, and unapproved.)
Where each fact lives (for audit)
| Fact | Production table |
|---|---|
| Recommendation, qualification score, all rule inputs | gold.opportunity_recommendation |
| Shortlist score, classification, news scan, sub-scores, selection | gold.drop_shortlist |
| Market regime on the day | gold.market_regime_daily |
| Cash snapshot used for sizing | silver.account_metrics |
| Every daily evaluation (including non-selected days) | gold.opportunity_log |
| The exact rules in force | rules_version hash on every row above |
Read on
Back to the method statement → or the narrative Opportunity Finder page.