5/03/2026

Argos, Second and Final Ticker: XOM

A week ago Argos published its first ticker call. Today, as promised, the second and final of the pair: ExxonMobil. Spot $152.75. The Argos call is HOLD with negative skew. The Monte Carlo base case sits 17% below today’s quote, the bull tail just barely reaches above it, and the disagreement with Street is no longer where it looked a week ago.

This piece walks through what the engine sees, where it disagrees with consensus, and why the call lands at HOLD rather than SELL despite 86.6% of the simulated paths closing below the print. Then a meta-observation on the two published calls, a note on what’s next, and a longer note on what won’t be in the next post.

Xom Argos Full 2026 05 03
2.3MB ∙ PDF file
Download
Download

The data the call is sitting on

Before the numbers, the disclosure: the engine runs on financials retrieved from SEC EDGAR. The most recent retrieved filing is the FY2025 10-K (period 2025-12-31, filed 2026-02-18). XOM publicly released Q1 2026 results on its corporate IR site earlier this week, but the structured 10-Q with XBRL-tagged financials had not yet filed on EDGAR as of the run date. The engine consequently does not pick up Q1 2026 actuals. The Y1 anchor extrapolates from FY2025 actuals plus drift, not from Q1 2026 reported numbers.

Re-run is queued for the moment the 10-Q files on EDGAR, expected around 2026-05-05.

This matters more for this call than for the prior one. Q1 is a real test, and the call is genuinely contingent on it. If revenue prints +17% in line with Street’s FY26 expectation, the MC base case re-prices toward $145 to $160 and the HOLD becomes a missed opportunity. If revenue prints in line with the model’s $336B Y1 anchor (roughly flat year-over-year), Street’s +15% revenue gap collapses toward us and the HOLD with negative skew is the right call. Either outcome will be testable within days of this article going out.

Subscribe now

The distribution Argos sees

The Monte Carlo base case is $127.55. That’s a 16.5% gap to the $152.75 spot. 86.6% of 10,001 simulated paths over a 7-year forecast horizon terminate below today’s price. The P10 to P90 band runs from $101.36 to $156.76, and that detail matters: Bull P90 just barely reaches above spot. Roughly 13% of the simulated paths land at-or-above today’s quote. That’s not nothing.

The DCF sanity check sits at $125.74, inside the MC interquartile range ($113.50 to $142.41). DCF and MC are aligned methodologically. The MC base of $1.81 above DCF reflects right-tail optionality the deterministic single-path DCF cannot price. Y1 EBIT in MC is $41,992M (12.6% margin); Y1 EBIT in DCF is $43,246M (12.9% margin). Both are anchored on FY2025 LTM $41,871M actual.

Now the shape. The MC distribution itself is near-symmetric around its own base: distance from base to P10 is $26, distance from base to P90 is $29. But the distance from spot to P10 is $51, and the distance from spot to P90 is just $4. That asymmetry, structural negative skew versus the market, is what the call is built on. Most outcomes are below spot, the bull tail reaches above, but the bear tail extends much further down than the bull tail extends up.

For comparison: Street median target $165.50 (n=22, mean rec 2.36 / “buy”, split 4 SB / 7 B / 13 H / 1 S). Street is roughly 30% above the MC median. That’s a real disagreement, and it isn’t where you might first guess.

The disagreement with Street is on revenue, not margins

The instinctive first read for an integrated oil major trading at an FY25 EBIT margin of 12.6% with Street targets implying a much richer profitability path would be that the disagreement is about margins. It isn’t.

Street FY26E revenue is $389B. The model’s Y1 anchor is $336B. That’s a +15% revenue drift differential at the top line. Flowed through at an FY24-style 14% EBIT margin (which is roughly what the model’s calibrated forward path supports by Y7), the revenue gap alone produces about $12B more EBIT than the model, which closes much of the gap between the $127.55 MC base case and the Street’s $165.50 target.

The terminal multiple is not the source of disagreement either. The model’s blended exit at 6.73x EV/EBITDA is sector-aligned: Damodaran sector average is 6.30x, live peer median is 7.16x (CVX 11.26x, SHEL 11.54x, COP 7.16x, BP 4.30x, TTE 5.63x). XOM trades at 12.12x trailing today, which is the elevated print, but the model isn’t penalizing the equity for staying at 12x. The exit assumption is that XOM normalizes to a sector-aligned multiple over the forecast horizon. Street isn’t disagreeing with that.

What Street is doing, in effect, is taking a higher oil deck or a faster Upstream/Energy ramp than the model’s peer-anchored drift priors allow. The drift priors are: Upstream 3.5% (anchored on XOM’s own 2024 Investor Day +4.3%/yr volume guide, with a -0.5pp transition haircut), Energy Products 1.0% (refining-capacity-vs-demand compression risk), Chemical Products 2.5% (industry +3% mid-cycle from IHS/WoodMac), Specialty Products 2.5% (blended mature 1.5% with high-growth specialty chemistry 3-4%). Reasonable analysts can disagree on these calibrations. Q1 will pressure-test them.

Share

Why this is a HOLD and not a SELL

86.6% probability that the long-run trajectory ends below today’s quote sounds like a SELL. It isn’t, and the reason matters.

First, the bull tail. Bull P90 $156.76 reaches above spot. About 13% of the 10,001 paths terminate at-or-above today’s price. Those paths require Upstream margin sustained near 71% with continued Permian and Guyana ramp, Chemical mid-cycle reversion to 8-10% SOI, and Specialty Products 2x earnings target on track. All credible state-of-the-world combinations, not a tail of fantasies. You cannot short a megacap when one in eight of your own modeled paths reaches the strike.

Second, the floor. ExxonMobil’s balance sheet is fortress-grade by every standard credit metric. Altman Z-Score 4.67, deep Safe, and the highest among integrated majors (CVX 3.40, SHEL 3.03, COP 3.26, TTE 2.19, BP 1.76). Interest coverage 69x. Net-debt-to-EBITDA 0.6x. AA-equivalent credit. The Beneish M-Score is -2.75 (Unlikely category for earnings manipulation, 8 of 8 indicators valid). Distress probability is 0.0% across all 7 forecast years. The recovery floor at $9.19 a share is never invoked in any of 10,001 paths.

Third, the carry. XOM returns approximately $16B annually to shareholders through dividends and buybacks. Dividend yield is 2.7%. While the gap to fair value closes, the equity holder is paid to wait.

Put together: 86% of paths below spot is real, and is the basis for the negative-skew designation. But the structural reasons not to be short, credible upper tail and fortress credit and $16B annual capital return, are enough to disqualify a confident SELL on a megacap. The default action is HOLD: trim if overweight versus benchmark, defer new money until either Q1 2026 10-Q resets the Y1 anchor or spot pulls toward the $127 to $130 region. Bull tail is where the upside lives if Street is right; balance sheet is what protects the floor if the model is right.

What XOM taught the engine

XOM was harder than the first ticker. Different business model, different segment structure, different reporting conventions, different XBRL conventions, different capital-allocation history. The engine had to flex.

A few specific lessons that translated into code:

The first ticker reported D&A folded inside COGS. XOM reports D&A as its own income statement line. This sounds trivial; it is not. It changed the EBIT identity check in the engine, the COGS extraction logic, the Yearly_BS_PnL Excel formulas in two locations, the Yearly_CFS aggregation, and the DCF and MC display layers. A new per-ticker config flag, da_separate_from_cogs, now wires the right EBIT formula across all of those touch-points based on filer convention.

XOM uses different revenue concepts across years. The custom XBRL tag xom:TotalRevenuesAndOtherIncome doesn’t exist in 2019 to 2021 filings, where the company tagged revenue as us-gaap:Revenues. Pre-ASC 606 filings (2016) require adding us-gaap:ExciseAndSalesTaxes to the COGS sum. The pension expense tag changed naming convention between FY2018 and FY2019. None of this is exotic. It’s the normal reality of financial reporting evolving over time. But it’s the kind of thing that silently corrupts a calibration if it isn’t handled.

The Yearly_CFS tab was aggregating quarterly data by calendar year while Yearly_BS_PnL was aggregating by fiscal year. Both calendar-year and fiscal-year are December for the first ticker (and for AAPL, MSFT, WMT) so the bug was silent on those filers. XOM is also a December fiscal-year filer, so the bug was still silent here, but the audit caught it. It would have shown up loudly the next time we hit a non-December filer. Caught, fixed, and the audit harness now runs end-to-end after every report build.

The segment SOI extraction was reading parent-only NetIncomeLoss + Tax for FY25 ($44.8B), but the Note 3 segment SOI total in the 10-K is $46.2B, which includes NCI and interest. Adding NetIncomeLossAttributableToNoncontrollingInterestand InterestExpense to the segment SOI concepts closes the gap. Small, easy to miss, structural.

The SGA-overhead calibrator had two structural bugs that compounded. It floored quarterly overhead readings at zero, biasing theta upward (negative readings clipped, mean shifted up). And both DCF and MC projectors were seeding mean reversion from the calibrator’s own theta, which made mean reversion a no-op (margin held flat at theta for all years instead of reverting toward it). Fixed to seed from the true LTM observation. The fix lifted XOM Y1 EBIT by $2.8B / +7%.

In total: roughly twelve engine fixes since the first ticker, plus two new validation layers that fire at engine load (P&L identity, BS identity, CFS bridge, magnitude breaches), plus a new sector profile library that lets future filers in the same business model inherit XOM’s lessons automatically (a CVX, COP, or BP run would now load with the right tag overrides on first attempt), plus a regression harness that catches silent engine drift across runs.

Each new ticker pushes the engine harder. That is the design intent. The engine is now tangibly more robust than it was a week ago because XOM forced the issue.

Leave a comment

The third ticker we ran but won’t publish

For clarity: a third ticker, Goodyear (GT), was run through the same engine on the same public-filings-only diet as the other two. No insider input of any kind. Not in this post, not in the deck, not in the report.

I work at Goodyear, which makes publishing a public valuation call inappropriate, full stop. The methodology was identical to the other two. The decision to not publish is the only difference.

This is worth saying out loud because there’s an obvious question lurking. Has the engine been validated on three names or two? The honest answer is three. The third just isn’t visible.

Two for two, both negative-skew HOLDs

A meta-observation worth flagging.

The first ticker came back HOLD with negative bias. The second, this one, comes back HOLD with negative skew. Both sit materially below their respective Street consensus targets. Two for two on the published side, both bearish-leaning HOLDs.

There are two non-exclusive explanations.

The framework may be conservative by construction. Drift priors are anchored on peer evidence and corporate guidance with mild haircuts, not on consensus revenue projections. Cost ratios are calibrated on multi-year history and mean-revert toward calibrated theta values, not toward analyst-implied targets. Bayesian shrinkage pulls drifts toward zero in low-evidence regimes. Vasicek interest-rate dynamics give a non-trivial probability mass to higher-rate paths. None of these is wrong; all of them tilt the engine toward outputs below Street.

Or the late-cycle US tape is genuinely priced rich. Two large-cap US equities in different sectors both showing meaningful gaps to consensus is a small sample, but it is a sample. P/E re-rate compression risk shows up as a Tornado driver in this report; it isn’t an exotic concern.

Probably some of both. Worth flagging before the next run rather than after, and worth designing the next layer to pull in names where the call wouldn’t be bearish by default.

What’s next: a Graham-anchored screener

The next pillar of Argos, still unnamed, is a screening tool. It is anchored on Graham’s Intelligent Investor framework, with three updates for the world Graham did not write in.

Buybacks treated as quasi-dividends. A literal reading of Graham’s defensive-investor screen disqualifies almost every quality compounder of the last twenty years on the dividend criterion alone, because firms have rationally moved cash returns toward repurchases. A modern screen has to reflect that.

Intangibles-aware valuation. Graham’s price-to-book ceiling of 1.5x is unreachable for any asset-light business and meaningless for businesses where the assets that matter (brands, networks, software stacks) don’t sit on the balance sheet. The modernized version replaces book-value gates with EV/IC or sector-relative metrics.

Rate-regime-aware P/E thresholds. Graham’s 15x P/E ceiling was pegged to a rate world that produced earnings yields with margin over high-grade bonds. That world hasn’t existed for decades. The threshold has to flex with the ten-year yield and the equity risk premium.

On top of the Graham spine sit Argos-native overlays: Z-score, ROIC versus WACC spread, EV/EBITDA versus peer dispersion, drift-to-trailing gap, distribution width. Graham is the gatekeeper, Argos signals are the prioritization layer once a name has passed.

The point of the screener: the engine knows how to value one ticker. The next layer decides which ticker is worth the run. And, secondarily, addresses the watch-out from the previous section by pre-filtering for margin-of-safety names rather than letting the engine work on a randomly-selected late-cycle book.

Going quieter from here

A note on what to expect from this Substack going forward.

The build-in-public phase served a specific purpose. It established that the methodology exists, that the engine works on hard cases, and that the calls are reproducible by anyone with public filings and time. Two reports, two decks, one merged PDF, several thousand words of methodology trace. Mission accomplished on that front.

The next phase is shipping and seeing whether the calls hold up. Deployment of the screener and live tracking of the first two calls is targeted for the next one to two months. Results, if any are worth reporting, in six to twelve.

Less detail going forward, by design and not by accident. There are commercial reasons (a screener isn’t useful if its weights are public). There are intellectual reasons (a year of live tracking is more informative than another paper portfolio). And there are practical reasons (the build-in-public phase consumes time that ought to be spent on the build).

I’ll surface results when they exist and are honest. If the calls underperformed, that will be in the post too.


The XOM report and deck are attached to this post. The first ticker’s report is in the prior Substack post.



from Risk Premium https://ift.tt/6pGHThb
via IFTTT