Not what he owns but how he reads a quarter: decomposing an ugly headline, pricing a contract book off the company's own sensitivity table, and locating yourself in the contracting cycle.
1. Decompose an ugly headline into choice, timing and comparison artifact before reacting
The repeatable method
- Split every declining line into three buckets: a management decision (deliberately selling less), a calendar/timing effect (a maintenance outage landing in a different quarter than last year, customers electing when to take delivery), and a comparison artifact (a segment lapping an unusually strong prior-year period).
- Only what survives all three buckets is real deterioration. State up front the two things that would be real — here: "real production trouble or a crack in demand" — so the test is falsifiable rather than a rationalization.
- Check the decision against the environment: selling fewer pounds into a rising price is the opposite signal from selling fewer pounds into a falling one.
- Confirm with the unchanged lines: if production and delivery guidance are held while price guidance is raised, nothing operational broke.
Here: CCJ deliveries −18% (7.1m vs 8.7m lbs) = contracting discipline + customer-elected delivery timing; production −15% = the Cigar Lake outage moving from Q3 into Q2; the headline weakness = a Westinghouse year-on-year comparison. Nothing left in the "real deterioration" bucket.
Watch for
- A volume decline that persists after guidance is reaffirmed, or a company that cuts delivery guidance rather than just shifting it — that is the version that isn't a choice.
2. Separate an FX-driven cost revision from an operating one
The repeatable method
- When a cost guide rises alongside a revenue guide, find the currency assumption in the release and check whether it moved. A raise driven by the same variable on both sides is a translation effect, not a margin event.
- Map which side of the P&L is in which currency: costs incurred in the weaker currency, purchases transacted in the stronger one, revenue somewhere in between.
- Attribute the delta explicitly — "most of the difference in the cost of sales guide" — and only then look for anything operational left over.
- Do the same on the cost-of-sales composition: purchase mix (market purchases vs own production), non-cash revaluations (product loans marked to weighted-average inventory cost), and outage timing all inflate a unit cost without any operating problem.
Here: the FX assumption moved 1.33 → 1.35, lifting both realized-price guidance (C$91–96/lb) and the unit-cost guide (C$63.00–67.50/lb); the quarter's 26% cost jump to CAD$70.81/lb decomposed into heavier market purchases (2.8m vs 0.7m lbs), product-loan revaluation and outage timing — "a currency story more than an operating one."
Watch for
- Cost guidance rising while the currency assumption is unchanged — that residual is operational, and it is the version worth acting on.
3. Price a contract book off the company's own sensitivity table, not off spot
The repeatable method
- Find the disclosure that holds the market price flat and walks the realized price forward year by year. It isolates the contract book from any price forecast — no view on the commodity is required to read it.
- Read the gap between the near year and the far year as the value locked inside ceiling-capped older vintages, and the slope as the roll-off schedule.
- Reframe a disappointing realized price accordingly: if the shortfall comes from ceilings, it is a countdown, not a defect — the same book at the same spot earns materially more once the old vintages expire.
- Separate the two things holding realized price below spot — volume held back by choice and ceilings on old contracts — because both unwind in the holder's favour but on different clocks.
Here: Cameco's table shows a book held flat at $100 spot realizing ~$67/lb in 2026 but ~$88/lb by 2030 — "the upside is loaded into the back years as the ceiling-capped contracts expire."
Watch for
- Each quarter's realized price closing the gap to spot as vintages roll; and the terms of newly-layered contracts (floors and ceilings, base pricing) which set the slope of the next table.
4. Locate yourself in the contracting cycle — front end or back end
The repeatable method
- Compare contracted volume against replacement rate (the volume utilities must contract simply to cover consumption). Below replacement means the buying still has to happen regardless of price.
- Ask the historical question: at previous price peaks, was the market at the back end of a contracting cycle (buying largely done, price a lagging artifact) or the front end (buying barely started)?
- Treat demand arriving while price rises as the confirmation — utilities showing up at a higher term price is what validates a structural gap rather than a squeeze.
- Read the term-price trajectory through the contract terms rather than the headline: rising floors and rising ceilings with base pricing stepping up is the mechanism by which a realized price catches up later.
Here: COO Grant Isaac's line — uranium has never traded at these levels while contracting ran this far below replacement rate; every prior comparable point came at the back end of a cycle, "whereas this time it is on the front end." Term price $97, new layers based mid-to-high $90s, interest still arriving.
Watch for
- Contracting volumes reaching or exceeding replacement rate (the signal the cycle has matured), and whether new layers keep pushing base pricing toward triple digits.
5. Trace an equity-accounted JV's economics to the actual cash date
The repeatable method
- Establish how the stake is accounted. Under equity accounting the parent books its share of production as a purchase (here at a 5% discount to spot) — so the JV's economics do not appear where an operating investor would look for them.
- Find where the benefit actually lands: separately, in equity earnings — and convert it to cash only when the JV declares a dividend.
- Write down the lag explicitly. A dividend received today typically reflects last year's performance, so this year's output is next year's cash.
- Check the intra-year distribution of the parent's allocation before extrapolating a half-year run rate.
Here: Inkai produced 5.3m lbs in H1 (100% basis) against a 10.4m full-year target; Cameco's 4.2m-lb purchase allocation delivered only 0.8m in H1 (back-end weighted); a $124m net dividend landed in April for Inkai's 2025 performance, with 2026 output becoming cash in 2027.
Watch for
- The back-half catch-up in the purchase allocation, and the timing/size of the next dividend declaration — that is the line where JV value becomes spendable.
6. Grade a project pipeline by stage, and watch backlog — not the headline count
The repeatable method
- Refuse the aggregate number until it is broken into stages: origination, front-end engineering, early-services contract, long-lead ordering, construction. The headline count is an addressable market, not an order book.
- Find the accounting line where conversion actually shows up — backlog — and compare the new-build backlog against the mature business's backlog to size the room available.
- Set the expectation to match the stage mix: mostly-origination means patience this year, with the backlog trend as the leading indicator rather than any single award.
- Track conditional government support along its own path: conditional commitment → definitive financing documents → named recipients. Only the last step is real money.
- Keep the standing caveat visible — none of the pipeline is current-year cash flow; it explains the valuation of the stake, not its earnings.
Here: Westinghouse's 91 opportunities / ~105 GW break down as 51 origination, 11 front-end engineering, 4 early services, a handful into long-lead (V.C. Summer restart, Lubiatowo-Kopalino) — against a New Plants backlog of $0.8bn vs $13.2bn in Operating Plants. The DOE's $17.5bn is still conditional.
Watch for
- The "increasingly positive trend in the backlog" management flagged; DOE loans closing and utilities being named through H2; and management's "prudent with what we put out" framing, which biases the surprise upward.
7. Ask whether a value-unlock event actually helps the holder you own
The repeatable method
- When a subsidiary files to list, resist the reflex that separation equals value. Ask instead what multiple the combined entity earns for being integrated — here, one company spanning fuel supply and reactor build.
- Refuse to model an unpriced event: with no share count and no range set, there is no valuation to anchor on — "I am not going to invent one."
- Read the incentives of the co-owner rather than the announcement (a sponsor that habitually monetizes a built-up asset will look for a route out), and check the contractual thresholds that make a listing mechanical — a stake or forced-listing right that vests at a given valuation and date.
- Flag the accounting consequence you cannot yet resolve — how a listing would change the carrying value of the stake — and hold it as a watch item instead of a conclusion.
Here: a confidential draft Form S-1 for a Westinghouse IPO; the government stake and forced-listing option vest at a $30bn+ valuation before 2029 — yet the stated preference is to keep it: "I would rather have Westinghouse stay on Cameco's book."
Watch for
- The public S-1 filing with a share count and range; any change in how Cameco carries the stake; and whether the $30bn / 2029 thresholds come into play.
8. Read the primary document — do not outsource the quarter to a summary
The repeatable method
- Read the release and listen to the call. The Q&A is where tone comes through and where the segment the market actually cares about gets the most airtime.
- Note what management declines to answer ("we can't disclose that at this time") as information about stage, not evasion.
- Weight the tone signal: readiness to commit volume, confidence in the pipeline, the willingness to be "prudent" about disclosure.
- Treat auto-generated summaries as a source of mispricing, not analysis — a headline decomposition (insight 1) is exactly what a summarizer flattens.
Here: "The quarter is a good deal stronger than it may come out if you just throw it into an AI agent and ask for a summary (of which I see a lot on Twitter/X)" — the edge on this quarter was the decomposition, not the numbers.
Watch for
- Quarters where the tape reacts to the headline within minutes on a name whose value sits in disclosures further down — the same gap recurs each reporting season.
Methods distilled from the Contrarian Codex results update (PDF linked above) for personal study. Not investment advice. © Contrarian Codex / "Mart" for source material.