TSX:WPM.TO Wheaton Precious Metals Corp.

ISIN: CA9628791027
MaterialsPrecious-metals streaming🇨🇦 TSX
Analysed 29 September 2026 · all three horizons · no highlight horizon Analysis Status: On-Going
Every price in this report is in CANADIAN dollars and every figure is stamped to the LAST SETTLED session, **Tuesday 29 September 2026**, at $191.82 on 1,243,800 shares — 1.44x the twenty-day average, so a full session rather than an in-progress bar. The 30 September session was in progress when this was written and is therefore neither the date nor the stamp, per the stamp rule: a report's date and its price are the same settled session. This report was RE-STAMPED to satisfy that rule — an earlier cut was headed 28 September and priced on the 25th, and by the time 8 audit rounds had run that price was three sessions old. Re-deriving on the 29th moved every price-derived figure and moved the RATIO almost not at all, 1.3091x against the 0.9075x it read at the old stamp, because the share fell 5.1% and the NAV fell with it as both metals dropped. Wheaton reports in US dollars, so its accounts are converted at USD/CAD 1.418, the 29 September close; gold US$4,179.70 and silver US$60.668 are that same session's settles.
C$191.82
-11.5% vs 10 Sep
29 September 2026 · Signal v6
DISCLAIMER: This is a quantitative framework for educational purposes only. It is not financial advice. Always do your own research and consult a licensed financial advisor before making investment decisions.

Wheaton Precious Metals Corp.

Wheaton Precious Metals does not mine anything. It pays a miner cash up front for the right to buy a fixed share of that mine's gold or silver for decades afterwards at a small, pre-agreed price — typically around a fifth of the spot price — and pockets the difference. The result is a portfolio of royalties over other people's ore bodies: full exposure to the metal price with almost none of the exposure to digging it up, because cost overruns, strikes and diesel bills land on the operator rather than on Wheaton. That is why its cash costs run near an eighth of revenue while a working miner's run past half. It is one of the two or three largest streamers in the world, and in April 2026 it doubled its silver interest in Peru's Antamina mine by paying BHP US$4.3 billion — the largest cheque it has ever written.

HorizonSignalComposite ScoreConfidenceKey Driver
Short-term (1–3 mo)HOLD5955%The price sits 31% above a fair value of C$146.53, and the tape has broken besides. Core PCE lands on 30 September, but the hold does not depend on the print.
Medium-term (6–12 mo)HOLD6358%Full on a DERIVED warranted multiple of 1.02x rather than the guardrail ceiling an earlier draft published. A great business at a price that already pays for the quality.
Long-term (3–5 yr)HOLD7055%The 1.2Moz GEO ramp was reaffirmed without new capital and the macro rates the name Strong Overweight — but a Full-band name is not amplified, and the entry is the problem, not the asset.
Next update: 2026-10-01 — Core PCE (August) 2026-09-30 +1 trading day. NOT the +14d default: SKILL L1931's ONE exception applies — a high-macro-sensitivity sector (Materials) with a high-impact release inside the 3-day window — so the release is an impactful scheduling event and min(last+14d, event+1td) selects 1 October. The first cut said 13 October on the reasoning that no release fell inside the carve-out, which the calendar falsifies; it also called 13 October 'CPI day', when CPI (September) is in fact 14 October and 13 October carries only Existing Home Sales.
Table of Contents
1Five-Pillar Scorecard2Hard Gates & Do-Not-Buy Status3Pillar Detail: Business Quality4Pillar Detail: Valuation Attractiveness5Pillar Detail: Underlying Drivers6Pillar Detail: Economic Alignment7Pillar Detail: Entry/Exit Timing8Economic Event Risk9Multi-Timeframe Technical Analysis10Price Chart (6-Month Daily)11Scenario Summary12Entry / Exit Rules13Position Sizing Context14Calibration Snapshot15Data Sources & Methodology
1

Five-Pillar Scorecard

Five independent scores — each 0–100 with its own confidence. The three fundamental pillars (Quality / Valuation / Timing) set the base BUY/HOLD/SELL via the Decision Matrix; the two context pillars (Underlying Drivers, Economic Alignment) then amplify a BUY to STRONG BUY or a SELL to STRONG SELL when both corroborate.

Business Quality

85
exceptional (streamer)
conf 72%

Valuation Attractiveness

49
full — P/NAV 1.34× vs a derived warranted 1.02×
conf 55%

Entry/Exit Timing

54
NEUTRAL — the daily trend has broken
conf 60%

Underlying Drivers

62
Neutral (62) · 48/58/79 by horizon
conf 58%

Economic Alignment

78
Trend-Following · Tailwind
conf 62%
2

Hard Gates & Do-Not-Buy Status

Binary safety checks — any TRIGGERED gate is a hard cap regardless of the scores above; CAUTION gates are sizing notes.
⚠️
Financial Distress
Current-ratio arm PRESENT at 0.466 and CARVED OUT on liquidity cover: operating cash flow covers current liabilities 9.1x, interest coverage 19.0x (Q2 interest annualised against TTM operating income — the conservative basis, since the debt is two quarters old; on TTM interest it is 69x), net debt/EBITDA 0.67x, and ~US$2.0bn of the US$2.5bn revolving credit facility undrawn — the facility was RAISED by US$500m in Q2 and the April draw was about US$0.5bn alongside a US$1.5bn term loan. Non-capping, but on the record. The other four arms are clear.
✅
Earnings Event
Q3 results are early November, well outside the 14-day window.
✅
Valuation Ceiling
Ratio 1.31× against the 1.40x line, and P/NAV 1.34× sits below the 1.5x Materials guardrail. The gate's arm is price above the HIGHEST target (C$317.74) and price is well under it. Not every target, though: the CAD panel's lowest is C$187.99, about 2% BELOW the stamp.
✅
Accounting / Dilution
Share count 454.0m to 454.2m, +0.04% — the US$4.3bn Antamina cheque was funded with cash, a term loan and the revolver, not equity. Non-operating income is 4.4% of net.
✅
Regulatory / Binary
No pending binary event.
✅
Severe Driver Collapse
Driver 62 overall; the gate needs 15 or below with direct P&L impact.
One gate is live and it is a caution, not a cap. Gate 1's current-ratio arm is met on its letter — 0.466, and falling from 8.09 four quarters ago — but the cause is the Antamina purchase, not distress: US$2.06bn of cash left current assets on 1 April while the US$1.97bn of funding sits in LONG-term debt. Under the liquidity carve-out adopted on 28 September it is recorded rather than capping. Nothing here caps the signal.
3

Pillar Detail: Business Quality

A deep dive into the Quality score: business economics, moat, ROIC and the industry benchmark.
Business Quality — Pillar Score
Exceptional, and structurally so
85
conf 72% · weighted build published below
Sub-signalWeightValueScore
Revenue trajectory12%TTM US$3,172.4m, +90.8% on the filings (the provider's +84.7% is Q2-vs-Q2, not TTM); Q2 a record US$929.2m95
Profitability vs peers13%Net margin 64.7%, operating margin 72.8% (TTM operating income US$2,309.5m over US$3,172.4m)92
Cash generation10%TTM operating cash flow US$2,544.6m. Reported FCF is negative ONLY because of the US$4.5bn of stream purchases — an asset, not a shortfall85
Balance sheet10%Net debt/EBITDA 0.67x, interest coverage 19.0x — but net CASH a quarter ago88
Competitive moat15%Pricing 60 · Network 50 · Switching 90 · Cost 90 · Intangibles 7573
ROIC & capital allocation22%ROIC 17.1%; no equity issued for a US$4.3bn deal; skin-in-game unmeasured74
Industry benchmark — cash operating margin18%87.2% of revenue (cost of sales less depletion, Q2-2026), against the >40% top band for a miner's AISC margin98

Weighted: 0.12(95)+0.13(92)+0.10(85)+0.10(88)+0.15(73)+0.22(74)+0.18(98) = 85.5 → 85. Unchanged from 10 September, and that is a judgement rather than an oversight: the Antamina deal improved the earnings base and worsened the balance sheet in the same stroke, and on these weights the two roughly cancel.

Competitive Environment

The streaming field is a narrow oligopoly and Wheaton's position in it is stable. Franco-Nevada is the larger and more diversified rival, and the usual claim about it — that it commands a premium P/NAV — is one this section will not make, because §4 withdrew the peer band it would rest on. What can be said without a citable multiple is narrower: Franco-Nevada is bigger, more diversified by commodity and geography, and competes for the same assets. Royal Gold competes directly for new streams; so, increasingly, do private credit funds and the miners' own balance sheets — the real competitive pressure is on the PRICE of future streams, not on the book already signed.

RivalThreat typeShare trajectoryMoat-erosion vector
Franco-NevadaDirect, larger, more diversifiedStableCompetes away deal returns on new streams
Royal GoldDirect, similar scaleStableBids the same assets
Private credit / miner self-fundingSubstitutionWheaton gainingRising rates make streams RELATIVELY cheaper for a miner, which helps rather than hurts

→ Net effect: Switching Costs stay at 90 — a signed stream is life-of-mine and the operator cannot switch out of it — while Cost Advantage holds at 90 on the 12.8% cash-cost ratio. Pricing Power is held down at 60 precisely because competition bites on new deals. Threat level moderate, trajectory stable.

4

Pillar Detail: Valuation Attractiveness

Sector-appropriate multiples, FCF yield, reverse-DCF implied growth, embedded optionality, and the analyst-consensus cross-check.
Valuation Attractiveness — Pillar Score
1.34× NAV against a 1.02× warranted multiple
49
conf 55% · ratio 1.31× · Full

What changed in the model, and why it mattered

The 10 September report valued Wheaton's guidance at spot gold: 900,000 gold-equivalent ounces multiplied by the gold price. A gold-EQUIVALENT ounce is an accounting construct, and Wheaton builds it at its own deck — the Q2-2026 release states the conversion as US$4,800 gold and US$80.00 silver, a ratio of 60.0:1. Spot on 29 September is 4,179.70 over 60.668, a ratio of 68.89:1. Silver has de-rated about 12.9% relative to gold since that deck was struck, and silver is roughly half of Wheaton's ounce count — so converting the GEO total at spot gold prices half the book as though silver were still at US$80 when it is at US$60.67. On 2026 volumes the shortcut overstates revenue by 7.16%.

This model values each metal at its own spot instead, which the guidance makes straightforward because it is disclosed metal by metal: 400-430koz gold, 27-29Moz silver, 19-21koz of other GEO.

StepValue
PV of the contracted book — 2026 stub plus 25 years at 5%C$68.00bn
Less net debt at 30 June (US$1,969m bank debt less US$100m cash)−C$2.65bn
NAVC$65.35bn ÷ 455.0m fully diluted shares = $143.62
Price$191.82
Actual P/NAV1.34×
Warranted P/NAV1.02× — the 1.50x Materials guardrail, tightened 1.70% for a 5.255% ten-year
Ratio1.31× → Full
Fair value$146.53

Why a streamer is worth more than its NAV. It carries no operating or capital risk, so it should trade above the present value of its contracts; the question is how far above. The warranted multiple here comes from this framework's own Materials guardrail — 1.50x P/NAV is the line above which a resource name is treated as rich — tightened 1.70% for a 5.255% ten-year. Wheaton sits below it.

A claim this report will not make: the 10 September version corroborated that 1.50x against an observed royalty-and-streaming peer band of 1.5-2.0x. That corroboration is withdrawn. A search on 28 September for current P/NAV multiples across Wheaton, Franco-Nevada and Royal Gold returned no figure this report can cite, and a peer band quoted from memory is exactly the kind of borrowed benchmark that should not carry 24% of a pillar. Nothing changes numerically — the warranted multiple was always the guardrail, not the band — but the argument now rests only on what can be shown.

The honest limitation, stated rather than buried

50.02% of this NAV's gross present value falls after 2035 — which is where Wheaton's own published outlook ends. The company guides to 1.2Moz GEO by 2030 and flat through 2035; the years beyond that are this model's extrapolation, holding volume flat with no depletion and no replenishment capital. Two limitations pull against each other: Wheaton buys new streams continually and that optionality is real and uncounted, while the tail assumes volume that sustaining it would require precisely those purchases. They roughly offset, and that is the honest statement rather than calling the figure conservative.

Read the other way, and read it at the right multiple. At $191.82 the deck that would make price equal fair value — NAV × the warranted 1.02× — is about US$5,389/oz gold, roughly 29% BELOW spot. So the price embeds less metal than this report's base case assumes, which is the direction that WOULD make it cheaper — it does not get the name out of Full. (The deck at which price equals bare NAV, ignoring the multiple a streamer commands, is US$5,493 — +31% against spot — and quoting that as "the implied deck" would say the opposite thing about the same price. Both are solved from the model; only the first is the comparison the anchor actually makes.)

LensWeightReadScore
Warranted-multiple anchor62%ratio 1.31×46.46
Sector median—N/A this run. With no peer band sourceable the only benchmark left is the 1.50x Materials guardrail — which IS the anchor's own denominator. Scoring it separately would count one number twice and present it as corroboration.—
Growth-adjusted (PEG)15%0.43, but off a price-driven earnings surge70
Analyst consensus23%Three target panels and they disagree: FMP US$164.80 → +21.8%, the provider's USD panel US$178.11 → +31.7%, the native CAD panel C$246.88 → +28.7%. The grades panels disagree too: the framework's own get_grades_consensus returns 16 buy / 4 hold / 0 sell (n=20), while the secondary feed returns 16 buy-or-better / 0 hold across four monthly vintages (n=16). Scored on the most conservative of each — +21.8% and the 4-hold panel77

The own-history decile lens could not be computed — though not for the reason an earlier draft of this section gave. There ARE three PRIOR P/NAV stamps in this ticker's folder (0.70x, 0.78x and 1.40x; the fourth value in 0.70x, 0.78x, 1.40x, 1.34x, 1.34x is this run's own stamp, not history), so "there is none on file" was wrong and is withdrawn. The real obstacle is that those three are struck on two different NAV constructions — two against a 1.0x warranted multiple and one against 1.5x, against this run's metal-by-metal build — and four points across fourteen months cannot produce a decile against the five-year range the lens requires. Proxying it with the 52-week price range would measure momentum rather than value. TWO of the five lenses are therefore N/A — the decile and the sector median — and the remaining three are reweighted pro-rata over 65%: 0.62(46.46) + 0.15(70) + 0.23(77) = 71.95 → 72. Confidence is haircut to 55%. Say plainly what that leaves: the anchor carries 62% of this pillar on its own.

The sensitivity, and it does not say what an earlier draft claimed. Scoring the dropped decile at 30 — pro-rata over the surviving 80%, which is the same method the base case uses — gives 64.1, not 67. Sixty-four would be below the 65 line, and Valuation is the boundary-deciding pillar here: at 64 the Decision Matrix would read High/Fair/Improving, which would take medium off its published BUY. So the band DOES turn on that choice. The earlier "67" was computed on a different weighting method from the base case and ran in the flattering direction. The defensible position is that a lens which cannot be computed should be dropped rather than assigned an invented 30 — but the reader is entitled to know that the alternative treatment moves a published signal.

The discount rate, and a departure this report is declaring

SKILL L673 specifies "P/NAV with r as the discount rate" for miners and energy, where r is the framework's equity rate — here 9.755% (5.255% ten-year + 4.5% ERP + 0.0pp on Quality 85). This NAV does not use it. It discounts at 5%, the streaming and royalty convention for contracted cash flows carrying no operating or capital exposure. That is a departure, and it is declared here rather than left in a footnote because it is worth a great deal. The framework is self-inconsistent on the point: a 1.5x P/NAV "rich line" is only coherent against a conventional low NAV rate, since struck at the cost of equity every streamer would be permanently Expensive. The 10 September report used the same construction.

NAV discount rateNAV / shareP/NAVRatioBand
3.00% — crosses to FairC$178.151.0767x1.055xFair
4.17% — crosses to FullC$156.651.2245x1.200xFull
5.00% — this modelC$143.621.3356x1.309xFull
6.00%C$129.961.4760x1.447xFull
7.00%C$118.171.6232x1.591xFull
8.00%C$107.951.7769x1.742xFull
9.75% — framework equity rateC$93.062.0611x2.020xFull

The ratio crosses into Fair at r ≈ 3.00% — barely a point above the 5% this model uses — and into Full, where STRONG BUY is barred, at r ≈ 4.17%. At the framework's own 9.755% it would read 2.02x, Full. A reader who rejects the streaming convention should reject this valuation with it, and now has the arithmetic to do so.

Fragility. Ratio 1.3090, FULL band. NOT ROBUST. It is 4245.4 NAV units from the 1.40x edge and 5938.0 from 1.20x. Largest single sensitivity: Flat metal deck, +/-15% on both metals (metal_deck), worth 0.431 on the ratio and closing 247% of the nearer gap (to 1.40x) — it CROSSES the edge on its own. Stream-life book, 20 vs 30 years: 0.293, covering 186% of that same gap. NAV discount rate, 6% vs 4%: 0.268, covering 146% of that same gap. Cash cost, 0.8x to 1.6x the Q2 ratio: 0.175, covering 144% of that same gap. Taken together the declared inputs close 724% of the gap to 1.40x and 437% of the gap to 1.20x.

Uncertain inputRangeNAV low → high (C$m)Ratio at each endTurns Fair at
Flat metal deck ±15%±15% on gold and silverC$54,874 → C$75,8171.559x → 1.128xYES — 1.559x
Stream-life book20 vs 30 yearsC$57,433 → C$71,5241.489x → 1.196xYES — 1.489x
NAV discount rate6% vs 4%C$59,130 → C$72,5841.447x → 1.179xYES — 1.447x
Cash-cost basis0.8x to 1.6x the Q2 ratioC$59,221 → C$67,3871.444x → 1.269xYES — 1.444x

Independent cross-check: the Street's own 2030 line

This NAV runs Wheaton's guided ramp at today's spot metals, which produces US$4.90bn of 2030 revenue. Analyst consensus for 2030 is US$4.40bn on six estimates, with a low of US$3.82bn and a high of US$5.02bn. The model therefore sits +11.3% above the consensus average — inside the range, but on the optimistic side of it, and the reader should know that rather than discover it. Part of the gap is deck: consensus is struck on each analyst's own metal assumptions and gold has fallen 11.0% in five weeks. The rest is the ramp itself. And a correction this report owes the reader. An earlier draft wrote that "consensus EPS rises 5.51 → 5.52 → 5.84 across 2028-2030, so revisions are positive". That read the consensus curve across future years as if it were a revision history. It is not, and the actual vintage series says the opposite:

Consensus EPS (US$)90d ago60d30d7dcurrentchange
FY20265.3414.9274.8134.7874.765−10.8%
FY20275.6435.3315.0595.0114.985−11.7%

Monotone cuts at every vintage. Arm 1 of Do-Not-Buy Trigger 3 — "estimates revised downward for 3+ consecutive months" — is therefore MET. What clears the trigger is arm 2, which requires the stock to be "still within 10% of pre-revision price": WPM.TO has gone C$160.71 to $191.82 over the same window, +19.4%. The shoe has already dropped, in the opposite direction — the market re-rated the multiple up while the Street cut the numbers, which is what a rising gold price does to a streamer. The trigger does not fire, and the reader should know it is arm 2 doing the work and not healthy estimates.

All four inputs reach the 1.00x edge on their own. Not one — that was the pre-correction reading, and fixing the NAV's discount exponent moved the ratio to 1.31× and pulled every edge closer. The metal deck remains the largest single lever, but the book length, the discount rate and even the cost basis each carry the name into Fair unaided. This valuation is NOT robust, and the honest summary is that it is Full on today's metals, today's 5% convention and a 25-year book — and that a reasonable variation in any one of the three moves it further from Attractive, not closer. An earlier draft of this paragraph called it Attractive; that read off a warranted multiple which was the sector guardrail rather than a derived figure, and it is withdrawn. That is the most important caveat on the page, and it is why the medium horizon reads BUY rather than STRONG BUY.

5

Pillar Detail: Underlying Drivers

The dominant external force the stock is tethered to, scored 0–100. A context pillar: it does not change the base signal — it feeds amplification (tailwind ≥65 can lift BUY→STRONG BUY; headwind ≤35 can push SELL→STRONG SELL).
Primary Driver
Gold and silver prices
62
Neutral overall (62) — carried per horizon: 48 short / 58 medium / 79 long

Wheaton is a geared bet on the direction of two metals. The LEVEL is extraordinary — cash costs ran 12.76% of revenue in the June quarter, so Wheaton keeps about 87 cents of every revenue dollar before tax, derived here from the filing (cost of sales US$241.3m less US$122.8m of non-cash depletion, over US$929.2m of revenue) rather than carried from the prior report's per-ounce figures. But level is not trend, and the trend is what the near horizons trade on.

MetalSpot (29 Sep)vs 50-DMAvs 200-DMA50-DMA slope4-week8-week
GoldUS$4,179.70−4.15%−8.25%RISING +1.21%−6.73%+2.18%
SilverUS$60.668−4.93%−16.51%RISING +1.93%−8.39%+5.20%

Both metals carry negative four-week momentum, and both now sit below both their averages — gold was only marginally under its 50-day at the previous stamp and is now 4.2% under it. But both 50-day averages are still rising, and both metals are higher over eight weeks. That combination is a pullback inside an uptrend, not a breakdown — and the framework treats the two differently. The negative four-week momentum caps the short driver at Neutral (48) and removes short-horizon amplification.

Medium is 58, and that number is doing real work. The Fed has just hiked 25bp to 3.75-4.00% on a unanimous vote with 16 of 18 participants expecting at least one more, and the macro report names rising real yields and a firming dollar as the live headwinds for exactly this name. The drivers do not reach the signal at all on this report: amplification acts only on a base BUY or SELL, and the base is HOLD on every horizon once the valuation is scored off a derived warranted multiple. An earlier draft said a Neutral medium driver was what withheld a STRONG BUY; there is no longer a BUY anywhere for a driver to amplify.

Read the headline carefully. The overall 62 sits in the framework's Neutral band (50-64) — it fell from 66 on the re-stamp as both metals dropped below both their averages. Only the long horizon clears the ≥65 amplification bar, at 79; short is 48 and medium 58. The single number is the mean of the three, and the three are what the signal actually uses.

Long is 79. The 16 September Investor Day reaffirmed the ramp to 1.2Moz GEO by 2030 and stated it needs no new capital; the energy-shock stagflation scenario carries 38% weight; and the macro rates WPM.TO Strong Overweight on this horizon.

Thesis-invalidation floor: gold sustained below about US$5,389/oz (both metals scaled at the spot ratio) takes computed fair value under the current price. Note what that corrects: the NAV is already below the price — that is what a P/NAV of 1.34× means — so "the NAV falls under the price" is not a floor, it is today. The live condition is fair value. And the bear scenario's "toward US$3,600" sits below this floor, which is precisely why the bear case is a thesis break rather than a drawdown.

6

Pillar Detail: Economic Alignment

How the current economic climate sits relative to this stock, read from the latest Macro-Economic report. Classifies the macro pressure (Tailwind / Neutral / Headwind) — the second amplification input — and frames a long entry as Trend-Following or Contrarian with a 0–100 conviction.
Stance · Pressure
Trend-Following · Tailwind
78
conviction

The 20 September macro report rates WPM.TO directly — Overweight on short and medium, STRONG Overweight on long — with the reason given as 'gold-price leverage without cost inflation; rising real yields and a firming dollar are the live headwinds'. The dominant regime is energy-shock inflation meeting resilient demand, with the Fed tightening into it: 25bp to 3.75-4.00% on a unanimous 12-0 vote, Brent at $103.87 and Hormuz effectively closed. Scenario weights run Energy-Shock Stagflation 38%, Reacceleration 27%, Soft Landing 22%, Deflationary Bust 13%. The pressure is a Tailwind and on an earlier draft it amplified the long horizon to STRONG BUY — that amplification is WITHDRAWN, because the base signal is now HOLD on every horizon and HOLD is never amplified. The armed systemic tail — S&P 500 concentration and an AI earnings-quality unwind — does NOT apply to this name on either limb: a precious-metals streamer is neither AI-capex levered nor carrying inflated non-operating earnings, at 4.4% of net income. If anything that tail is a reason to own gold exposure.

Source: watchlist-signal · Macro report 2026-09-20

7

Pillar Detail: Entry/Exit Timing

The risk-reward framework, relative strength vs SPY and the sector ETF, the macro overlay, news-derived sentiment, and the catalyst cluster.
Entry/Exit Timing — Pillar Score
Neutral — the structure still holds, the tape has broken
54
conf 60% · the short cap binds here
ComponentWeightReadScore
Multi-timeframe trend30%Monthly 72 · Weekly 45 · Daily 28 (no intraday data, weights reallocated 35/30/35)49
Risk-reward20%Price has closed through the lower Bollinger band (C$193.42) with RSI 32.4; the 200-DMA at C$183.86 is 1.02 ATR below as the next support, and the 50-DMA is now overhead68
Macro overlay (Materials = high sensitivity)20%Fed hiking; curve normal; Materials rated Overweight62
Sentiment15%Grades on the conservative panel, 16 buy / 4 hold / 0 sell (75); estimate revisions falling ~11% over 90 days (25); news tone mixed-positive (60)53
Catalysts15%Clustered: Core PCE, ISM Manufacturing and Non-Farm Payrolls all fall inside three sessions of this stamp — the framework's "2-3 within 14 days" band35

Weighted: 0.30(49)+0.20(68)+0.20(62)+0.15(53)+0.15(35) = 53.90 → 54. Timing is Neutral, not Improving, and it fell 11 points on the re-stamp. Sentiment sits at 53 because estimate revisions are falling about 11% over three months while the grades panel is scored on the conservative of two feeds that genuinely disagree. Timing is not what decides this report, though. The Decision Matrix row is High quality on a Fair-scored valuation with Neutral timing, and that row is HOLD — watch for valuation entry on every horizon. An earlier draft of this section said the matrix returned BUY on all three timing bands; it did, but only because the valuation pillar was reading Attractive off a warranted multiple that was never derived. Correcting that moves the column, not the row.

The tape broke while this report was in audit. Over the two sessions between the old 25 September stamp and this one, WPM.TO went from 5.8% above its 50-day average to 0.5% below it, RSI fell 40.4 → 32.4, the MACD histogram deepened −2.443 → −3.458 on its 20th consecutive negative session, deepening for the last five, and the close went through the lower Bollinger band. The convention matters enough to declare: 32.4 is Cutler's RSI-14 (simple moving average); Wilder's — the standard, and what this project's get_technical_indicators returns — reads 41.4 on the same closes. This time the choice does bite: Cutler's 32.4 is below the 35-65 entry band and Wilder's 41.4 is inside it, so the Technical entry group fails on RSI under one convention and on the MACD leg under both. The group is unmet either way; the reader should know it is not unanimous. The MACD histogram is −3.458 — negative for 20 straight sessions — every session since 1 September — and deepening for five and deepening (−1.957, −2.240, −2.443, −3.135, −3.458). The latest decline came on 1.44x the twenty-day average volume, which is distribution rather than accumulation. Relative strength splits by window: over three months Wheaton is +19.6pp versus SPY and +25.3pp versus XLB, but over one month it is −9.4pp versus SPY and −2.4pp versus XLB — now lagging its own sector as well as the market. Three months of leadership is intact; one month of it has gone, which is the same story the broken daily trend tells.

8

Economic Event Risk

High-impact macro releases in the window below that could swing this stock, plus the last 7 days of surprises.

Upcoming events

DateEventImpactForecastPreviousRelevant?Why
2026-09-30Core PCE Price Index YoY / MoM (Aug)High3.4% / 0.3%3.3% / 0.2%✅ YESINSIDE THE 3-DAY WINDOW — ONE trading day from this stamp. Real yields are gold's dominant driver and Materials is a named high-sensitivity sector, so this release fires the WAIT-FOR-EVENT short-term override
2026-09-30GDP Growth Rate QoQ (Q2) · Personal Spending / Income (Aug)High1.5% · 0.8% / 0.4%2.1% · 0.2% / 0.4%⚠ MediumDemand read into the same session as Core PCE
2026-10-01ISM Manufacturing PMI (Sep)High54.954.6⚠ MediumIndustrial demand; matters more for the base metals in the book than for gold
2026-10-02Non-Farm Payrolls / Unemployment Rate (Sep)High84k / 4.1%162k / 4.1%✅ YesThe Fed hiked on a resilient-demand read; a soft print reopens the cut debate and is gold-positive
2026-10-05ISM Services PMI (Sep)High54.055.4⚠ MediumDemand breadth
2026-10-07FOMC Minutes (16 Sep meeting)High——✅ Yes16 of 18 participants expect at least one further hike; the minutes size that conviction
2026-10-09Michigan Consumer Sentiment (Oct)High48.648.1⚠ MediumNear a record low already
2026-10-14Inflation Rate YoY / Core YoY (Sep)High3.7% / 2.5%3.4% / 2.4%✅ YesCPI is 14 October, NOT 13 — an earlier draft of this report had the date wrong and built its scheduling on it

Recent surprises (last 7 days)

DateEventActualForecastSurpriseImpact
2026-09-25Durable Goods Ex-Transport MoM (Aug)0.3%0.6%−50% (below)Soft capex read — mildly gold-supportive
2026-09-25Michigan Consumer Sentiment (Sep)48.147.6+1.1% (above)Still near record lows despite the beat
2026-09-24New Home Sales (Aug)+6.4%+3.2%+100% (above)Housing firmer than forecast — supports the resilient-demand regime the Fed hiked into
2026-09-24Initial Jobless Claims (Sep/19)197k201k−2.0% (below)Labour market still tight; reinforces the hawkish path
2026-09-29JOLTs Job Openings (Aug)7.079M7.230M−2.09% (below)The first genuinely softer labour print in this window — it cuts against the tight-labour reading the jobless-claims row above it carries, and it landed on this report's own stamp date

This section's first cut said 'nothing inside the next 14 days'. That was false, and the project's own economic calendar falsifies it: roughly twenty individual high-impact US releases fall inside the window, across the EIGHT sessions tabled below, starting with Core PCE on 30 September, inside the three-day window. Materials is a high-macro-sensitivity sector, so under the framework that release triggers a WAIT-FOR-EVENT short-term override regardless of composite score, and it also makes the release an impactful scheduling event: the next update moves from the +14-day default to 1 October, the trading day after the print. The recent-surprises table has also been rebuilt — it previously carried two events from 16 September under a 'last 7 days' heading.

9

Multi-Timeframe Technical Analysis

Trend, RSI and breakout status across monthly / weekly / daily / hourly / 15-minute, with a confluence verdict.
TimeframeTrendDirectionRSIMACDKey S/RBreakoutVol
MonthlyUptrend, weakening ↑Bullish—+, rolling overS: C$184 · R: C$226None—
WeeklyWeakening →Neutral-bearish—−, deepeningS: C$184 · R: C$193None—
DailyDowntrend ↓Bearish32.4−3.458, negative 20d, deepening 5dS: C$183.86 · R: C$192.84Closed BELOW lower Bollinger1.44x
Confluence: Mixed / Transitioning · MTF Score 49

The configuration has changed and not for the better. Price is now 0.5% BELOW a still-rising 50-day average and 4.3% above the 200-day, having been 5.8% and 10.2% above them two sessions ago. RSI is 32.4, the MACD histogram is negative for 20 straight sessions — every session since 1 September — and deepening for five and deepening, and the close is through the lower Bollinger band at C$193.42. That is no longer a pullback inside an uptrend on the daily — it is a broken daily trend inside an intact monthly one, which is why the confluence reads Mixed rather than Mostly Bullish. The level that matters is now the 200-day at C$183.86, 1.02 ATR below, with the 50-day at C$192.84 turned into overhead resistance. The WAIT-FOR-EVENT override stands until Core PCE prints the session after this stamp.

10

Price Chart (6-Month Daily)

A 6-month daily close line with SMA50 and key support/resistance — the visual companion to the MTF table.

Six months of daily closes to 29 September 2026 with the 50-day average. The August run to a C$226.18 close on 25 August, and the 15.2% decline from it to this stamp, are both visible; the 50-day has continued to rise through it and price has now crossed below it.

11

Scenario Summary

Bull / Base / Bear 12-month price paths with triggers and probability weights.

Bull $170.01 (25%)

The Fed's hiking cycle ends sooner than the dots imply, real yields roll over, and gold resumes toward its January high. The first full year of doubled Antamina silver lands with the metal recovering, and the P/NAV multiple expands back above the 1.50x guardrail line it currently sits below — a +15% deck NAV of C$167/sh at about 1.60x. ~-11%.

Base $146.53 (50%)

Metals hold broadly around current levels, the 1.2Moz GEO ramp proceeds on the schedule reaffirmed in September, and the shares close the gap to a warranted multiple they currently sit below. This IS the fair value the anchor computes — NAV $143.62 times the warranted 1.02×. ~+10%.

Bear $123.05 (25%)

The Fed hikes twice more, real yields keep rising and the dollar firms — the macro's own named headwinds — taking gold further below this report's thesis-invalidation floor. On a −15% deck the NAV falls to about C$121/sh and the ratio goes to 1.559x — deeper into Full, with the multiple compressing toward 1.25x. Competition for new streams also bids away deal returns. ~−21.3%.

Probability-weighted target: 0.25 × $170.01 + 0.50 × $146.53 + 0.25 × $123.05 = C$146.53, about -23.6% against $191.82. The weights sum to 100 and the base case is the most probable.

12

Entry / Exit Rules

Three independent entry paths (Fundamental · Technical · Catalyst) and three exit triggers (Stop-Loss · Thesis · Profit-Target). Any one entry path is a valid entry — the more that agree, the larger the position the conviction ladder suggests. Exits are graded by severity, not count.

How to read this — the Conviction Ladder

The three entry groups are alternative paths to a buy, not a checklist. A group counts only when all its sub-conditions hold. How many groups are satisfied sets the suggested size — it does not gate whether you may enter: 1 group = Half-Size (a valid starter/scale-in), 2 = Full-Size, 3 = Over-Size (highest conviction); 0 = Wait (no path open yet). A strong overall signal can still read Wait here when the stock is well above its entry zones — that flags "good business, no entry edge right now," not a contradiction. Exits are graded by severity of what is live, not by a count: a hard stop is an Exit on its own.
Entry conviction: Half-Size1 of 3 groups met — one path open — starter / scale-in

Fundamental — MET

Cheap against the anchor, with no imminent event and a driver above the floor.
✅ Price $191.82 below fair value $146.53
✅ No earnings within 7 days — Q3 is early November
✅ Underlying-driver score ≥ 50 — the headline driver is 62 (the short-horizon leg is 48)

Technical — not MET

The tape has not turned. This is the group that caps the short horizon.
⛔ A CROSS up through the 50-DMA on >1.5x volume, OR a tested bounce off support with a higher low. Neither has happened — price has just crossed BELOW the 50-DMA, so a cross back up is now the live branch, and the 200-DMA support 1.02 ATR beneath has not been tested
⛔ RSI between 35 and 65 — Cutler 32.4 is BELOW the band, Wilder 41.4 is inside it; unmet on the declared convention
⛔ MACD histogram positive 2+ days or turning up — it is −3.458, negative for 20 straight sessions — every session since 1 September — and deepening for five and deepening

Catalyst — not MET

No post-earnings confirmation available.
· Post-earnings move >+5% within 24h — Q2 was 6 August
✅ Guidance raised or maintained — reaffirmed at the 16 September Investor Day
⛔ Volume >2x the 20-day average — 1.44x

Forecast:

Technical group — MACD histogram turns up off support: ~1–3 weeks if the 200-DMA at C$183.86 holds. The histogram has deepened for six sessions and price has closed THROUGH the lower Bollinger band at C$193.42, with the 50-DMA at C$192.84 now 0.5% OVERHEAD rather than beneath; a tested bounce off the 200-day there is the reachable trigger, and the C$7.80 ATR puts that level about one session's range away. Confidence: Moderate.

Technical group — a CROSS above the 50-DMA on >1.5x volume: not available this cycle. Price has just crossed BELOW the 50-DMA, so the cross-back-up branch is live again for the first time this cycle — but it has not happened, and is the pullback branch that has to deliver, which is why the group reads unmet rather than partially met. Confidence: High.

Catalyst group — volume >2x average: catalyst-dependent, Q3 results in early November. Event-driven and not time-projectable. The first full quarter of doubled Antamina silver is the next scheduled trigger. Confidence: Moderate.

Exit action: Holdno exit trigger is live — hold the position

Stop-Loss — not LIVE

Two consecutive closes below $178.00 — 7.2% below, 1.77 ATR on the simple-mean basis (1.81 on Wilder's RMA — the convention question §7 declares for RSI).
⛔ Close below $178.00 for 2 consecutive days — not live

Thesis Invalidation — not LIVE

Needs 2 of N, or any one catastrophic item. None live.
⛔ Gold sustained below ~US$5,389 (computed FAIR VALUE falls under the current price; the NAV itself is already below it, which is what a P/NAV above 1.0 means)
⛔ The 1.2Moz GEO 2030 ramp is withdrawn or delayed — reaffirmed 16 September
⛔ A hard gate triggers — Gate 1's arm is carved out, not triggered
⛔ Competitive: streams repeatedly lost to rivals or written at returns below cost of capital

Profit-Target — not LIVE

Needs all three. One is satisfied — quality has not improved to justify a re-rating — but the price and RSI legs are not, so the group is not live.
⛔ Price reaches the analyst median (~C$250)
⛔ RSI > 70 — it is 32.4
✅ Quality has not improved to justify the re-rating

Forecast:

Stop-loss at C$178.00: unlikely in the next 4–6 weeks absent a metals break. It sits 7.2% below the stamp — 1.77 ATR — and beneath the 200-day at C$183.86. Reaching it needs gold through roughly US$3,900, which the four-week trend delivers only by accelerating. Confidence: Moderate.

Profit-target trim near C$250: a bull-branch event, not a scheduled one. The base case reaches $146.53 and the probability-weighted target is C$146.53, about C$104 short of the C$250 analyst median, so the trim level needs the bull path rather than the base one. Confidence: Low.

Imagine you act at the current price of $191.82 · as of 29 September 2026

What if you bought now?

You are risking about 7.2% to the stop for about -23.6% to the base case. Buying here at $191.82 means accepting an entry the framework says is unconfirmed: the Technical group is unmet, the MACD histogram has been negative for 20 sessions and deepening for five, and the latest decline came on 1.44x average volume. The hard stop at $178.00 is C$13.82 below — 1.77 ATR — and the bear path takes the shares to $123.05 — about -36% — if the Fed hikes twice more and gold retraces further. Against that you start collecting immediately: the base case is $146.53 (-23.6%) and the bull $170.01 (-11.4%), you own a book trading below the multiple this framework's own Materials guardrail treats as rich, and you hold un-priced optionality in every stream Wheaton signs from here — which it does continually and which this NAV does not count. The read: the price is right and the timing is not. Waiting for a tested bounce off the C$183.86 two-hundred-day — the trigger that would complete the Technical group — costs little if it comes and saves the 9% if it does not.

What if you sold now?

You are giving up about -23.6% of base-case upside to protect against about 36%. Selling at $191.82 CAPTURES the gap to $146.53 rather than forgoing it — fair value is BELOW the price, which is the whole reason this report holds rather than buys. What a sale gives up is the optionality: the macro's Strong Overweight on the long horizon, the reaffirmed 2030 ramp, and the first full year of a doubled Antamina silver stream bought for US$4.3bn. It also crystallises a sale below computed fair value. What it protects is the 21.3% bear path and the four-week downtrend in both metals. No exit rule is live — the stop is not hit, the profit-target needs RSI above 70 against 32.4, and nothing has invalidated the thesis. The read: all three exit groups on this page read UNMET, so nothing mechanical calls for a sale. This is a hold, and on weakness toward the 50-day an accumulate.
13

Position Sizing Context

Illustrative portfolio math (not advice) translating conviction into an allocation given risk-per-share and volatility.

The §12 Conviction Ladder reads Half-Size — one of three entry paths is open. No portfolio allocation or role was specified for this analysis, so position sizing is not computed; the ladder tier is the guidance. For volatility context the ATR is C$7.80, 4.07% of price per day, against a beta of 1.27 — so a position here behaves like one about a quarter larger in risk terms than the index. The catalyst calendar is clear inside 30 days, so no clustering reduction applies.

14

Calibration Snapshot

Machine-readable snapshot of every score, level and signal, saved alongside the HTML so the next run can compute deltas.
{
  "ticker": "WPM.TO",
  "api_ticker": "WPM.TO",
  "exchange": "TSX",
  "exchange_ticker": "TSX:WPM.TO",
  "isin": "CA9628791027",
  "company": "Wheaton Precious Metals Corp.",
  "brand": "Wheaton",
  "currency": "CAD",
  "country": "Canada",
  "sector": "Materials",
  "gics_sector": "Materials",
  "date": "2026-09-29",
  "time": "1700",
  "version": "v6",
  "analysis_status": "on-going",
  "donatien_pick": false,
  "prior_report": "calibration-WPM.TO-20260910-1500.json",
  "prior_primary": "BUY",
  "lifecycle_stage": "materials precious-metals streaming mature",
  "price_at_rating": 191.82,
  "price_asof": "2026-09-29 \u2014 the close of the session this report is DATED to, and the last SETTLED session at the time of writing: 1,243,800 shares against an 864,140 twenty-day average (1.44x), a full session rather than an in-progress bar. The 30 September session was in progress (7% of average volume at mid-morning) and is therefore neither the date nor the stamp, per SKILL Step -2a.",
  "val_multiple_basis": "forward P/NAV. NAV built bottom-up from Wheaton's own Q2-2026 guidance, valued METAL BY METAL at each metal's spot rather than by converting the gold-equivalent-ounce count at spot gold \u2014 the GEO count is struck on Wheaton's own US$4,800 gold / US$80.00 silver deck (60.0:1) against a 68.89:1 spot ratio, so the GEO shortcut prices roughly half the book as though silver were still at US$80.",
  "actual_multiple": 1.3356,
  "warranted_multiple": 1.0203,
  "warranted_ratio": 1.31,
  "val_band": "full",
  "valuation_score_uncapped": 55.7,
  "valuation_cap_reason": "The weighted lens build is 0.6154(44.1) + 0.1538(70) + 0.2308(77) = 55.7, which would score 56. The anchor lens sets the BAND, the band is Full at ratio 1.3091x, and Full's ceiling is 49 \u2014 so the pillar is capped at 49. The two more optimistic lenses cannot lift a name out of the band its own anchor puts it in.",
  "warranted_pnav_derivation": {
    "warranted_pnav": 1.0203,
    "premium_total": 0.0203,
    "legs_allowed": [
      {
        "name": "accretion on net cash deployed into new streams",
        "value": 0.0203,
        "basis": "C$2,650.2m of net cash is already a term in this model at FACE value, so only the accretion above face is value outside the modelled book: 50% accretion on capital deployed, against total NAV of C$65,345m.",
        "in_rate": false
      }
    ],
    "legs_zeroed": [
      {
        "name": "streaming risk profile (low-risk, bond-like, no sustaining capex)",
        "value": 0.45,
        "basis": "Streaming cash flows carry no operating-cost exposure and no sustaining-capex call, which is the standard argument for a streamer trading above its net asset value.",
        "in_rate": true
      }
    ],
    "guardrail_tightened": 1.4745,
    "capped_by_guardrail": false,
    "embedded_uplift_from_discount_rate": 0.5432,
    "construction": "min( 1.0 + sum(premium legs outside the NAV book) , guardrail )"
  },
  "nav_per_share_at_equity_rate": 93.06,
  "actual_pnav_at_equity_rate": 2.0611,
  "val_guardrail_na_reason": "The Materials guardrail is quoted as a P/NAV line (1.5x, tightened to 1.4745x for a 5.255% ten-year) and IS applied, in BOTH of its jobs: it caps the warranted multiple (step 5a \u2014 it does not bind here, because the derived 1.0203x is far below it) and it tests the ACTUAL multiple (step 5b \u2014 actual P/NAV 1.336x sits below the line, so the name is not Expensive on the floor alone). The sector table's alternative EV/EBITDA leg and the P/E lines are not applied because this name is anchored on P/NAV per the miner rule, which is a confirmed non-applicability rather than a check that could not run.",
  "eps_trailing": 6.3952,
  "trailing_pe": 29.99,
  "eps_trailing_basis": "TTM diluted EPS US$4.51 (Q3-25 0.81 + Q4-25 1.25 + Q1-26 1.26 + Q2-26 1.19) converted at USD/CAD 1.418",
  "clean_pe": 31.18,
  "nonop_pct_of_net_income": 4.41,
  "earnings_quality_note": "Non-operating income is 4.4% of TTM net income, well inside the 15% line, so the reported and clean multiples barely diverge. Neither is the anchor: a streamer is an asset, not an earnings stream.",
  "discount_rate_r": 9.755,
  "risk_free_10y": 5.255,
  "nav_discount_rate_pct": 5.0,
  "discount_rate_note": "The NAV discounts at 5.0% \u2014 the streaming/royalty convention for contracted cash flows with no operating or capital exposure. The 9.755% equity rate (5.255% ten-year + 4.5% ERP + 0.0pp add-on on Quality 85) is recorded for comparability and is NOT what the NAV used. Do not read one for the other.",
  "usd_cad_rate": 1.418,
  "usd_cad_rate_asof": "2026-09-29",
  "fair_value_est": 146.53,
  "nav_per_share_cad": 143.62,
  "quality_score": 85,
  "valuation_score": 49,
  "timing_score": 54,
  "driver_score": 62,
  "driver_score_short": 48,
  "driver_score_medium": 58,
  "driver_score_long": 79,
  "driver_horizon_note": "Short 48: gold sits below both its 50- and 200-day averages with -6.73% four-week momentum, so the Step-2b overlay caps the short driver at Neutral and removes short-horizon amplification. Medium 58: the Fed is HIKING into the shock \u2014 25bp to 3.75-4.00% on a unanimous vote with 16 of 18 participants expecting at least one more \u2014 and the macro report names rising real yields and a firming dollar as the live headwinds, so the medium driver is Neutral, not a Tailwind, and 62 withholds the amplification mechanically rather than by override. Long 79: the structural case is intact \u2014 the ramp to 1.2Moz GEO by 2030 was reaffirmed at the 16 September Investor Day without new capital, and the macro rates WPM.TO Strong Overweight on the long horizon.",
  "composite_short": 59,
  "composite_medium": 63,
  "composite_long": 70,
  "overall_confidence": 55,
  "quality_confidence": 72,
  "valuation_confidence": 55,
  "timing_confidence": 60,
  "relative_strength_vs_spy": 19.6,
  "relative_strength_vs_sector": 25.3,
  "relative_strength_basis": "Three-month excess return to 29 September: +19.6pp versus SPY and +25.3pp versus XLB (Materials); also +3.9pp versus GDX. On ONE month it inverts hard \u2014 -9.4pp versus SPY, -2.4pp versus XLB, +0.6pp versus GDX \u2014 so the name is now underperforming the broad market AND its own sector over a month while still well ahead over three.",
  "net_debt_ebitda": 0.67,
  "current_ratio": 0.466,
  "restamp_note": "Re-stamped from 25 September to 29 September under the stamp rule adopted 2026-09-30 (SKILL Step -2a). The first cut was DATED 28 September and PRICED on the 25th \u2014 a pairing no check could see, because both fields were individually well-formed \u2014 and eight audit rounds then ran across four sessions while the stamp aged. Re-stamping moved every price-derived figure and moved the RATIO almost not at all, because the price fell and the NAV fell with it as both metals dropped. THE RE-STAMP IS NOT WHAT CHANGED THIS REPORT. Round 8 found that the warranted multiple had never been derived \u2014 it was the Materials guardrail, the framework's anti-hype CEILING, published where the fair-value ESTIMATE belongs. Deriving it properly (1.0203x) moves the ratio to 1.31x, the band to Full, Valuation to 49, and the verdict to HOLD on all three horizons, withdrawing a medium BUY and a long STRONG BUY. Fair value is C$146.53, which the price sits 30.9% above.",
  "gate_arm_resolutions": {
    "gate1_current_ratio": {
      "status": "carved_out",
      "basis": "liquidity_covered_by_cash_generation",
      "ttm_operating_cash_flow": 2544.571,
      "current_liabilities": 279.3,
      "interest_coverage": 19.0,
      "net_debt_ebitda": 0.67,
      "undrawn_committed_facility": "approximately US$2.0bn of the US$2.5bn revolving credit facility remains undrawn. Per the Q2-2026 MD&A the facility was INCREASED by US$500m to US$2.5bn and extended to 30 June 2031; total drawn under the term loan and revolver is US$2.0bn of which the term loan is US$1.5bn, so the revolver draw is about US$0.5bn, not the US$0.9bn first published.",
      "detail": "The arm is met on its letter \u2014 0.47, declining 8.09 to 7.78 to 4.53 to 0.47 across four quarters \u2014 and the cause is the Antamina purchase, not distress: US$2.06bn of cash left current assets on 1 April while the US$1.97bn of funding sits in LONG-term debt (current debt US$0.6m). Operating cash flow covers current liabilities 9.1 times over."
    }
  },
  "gates_triggered": [],
  "gates_caution": [
    "Gate 1 \u2014 Financial Distress, current-ratio arm: PRESENT and CARVED OUT on liquidity cover, so it is non-capping but stays on the record. Ratio 0.47 against 9.1x cash cover, 19.0x interest coverage and 0.67x leverage.",
    "Gold and silver price-trend overlay: both metals carry negative 4-week momentum (gold -6.73%, silver -8.39%) and gold sits below both its 50- and 200-day averages. The 50-day is still RISING on both, so this is a pullback inside an uptrend rather than a breakdown \u2014 but it caps the short-horizon driver and removes short-horizon amplification.",
    "Tail beyond guidance: 50.02% of the NAV's gross present value falls after 2035, which is where Wheaton's own published outlook ends."
  ],
  "do_not_buy_triggers": [],
  "dnb_adjudication": "All five walked on this run's figures. Trigger 1 leverage: net debt/EBITDA 0.67x against the 4.0x line \u2014 clear. Trigger 2 valuation extreme \u2014 RE-ADJUDICATED at round 8, and the answer now depends on which discount rate the reader accepts, so both branches are published. On the construction this report uses, the warranted ratio is 1.3091x: above 1.20 and therefore Full, but below the 2.0x deep-expensive arm (a), and not in the Expensive band, so arm (b) cannot engage either \u2014 the trigger does NOT fire. But this report's NAV is struck at 5.0%, the streaming convention, against the framework's own 9.755% equity cost of capital; at that equity rate the NAV this same model publishes is C$93.06 a share and the actual P/NAV is 2.0611x, which IS in range of arm (a) against a warranted multiple of 1.00. A reader who rejects the streaming convention should read Trigger 2 as firing and treat the name as a do-not-buy rather than a hold. Round 8 found the earlier adjudication ('nowhere near the 2.0x arm') was struck against the undeclared guardrail substitution and only ever tested the favourable branch. Trigger 3 negative revisions \u2014 THE ARM IS MET AND THE TRIGGER STILL DOES NOT FIRE, and an earlier draft of this report got that badly wrong. It said 'revisions are positive', reading the consensus EPS curve ACROSS future years (2028 5.51 / 2029 5.52 / 2030 5.84) as if it were a revision history. It is not. The actual vintage series is available and says the opposite: FY2026 consensus EPS has been cut 5.341 -> 4.927 -> 4.813 -> 4.787 -> 4.765 across the 90/60/30/7-day vintages, and FY2027 5.643 -> 5.331 -> 5.059 -> 5.011 -> 4.985 \u2014 monotone downward at every vintage, about -11% over three months. So arm 1 of Trigger 3, 'estimates revised downward for 3+ consecutive months', is MET. What clears the trigger is arm 2, which the draft never reached: it requires the stock to be 'still within 10% of pre-revision price', and WPM.TO has gone C$160.71 to C$191.82 over the same window, +19.4%. The shoe has already dropped in the opposite direction \u2014 the market re-rated the name UP while the Street cut the numbers, which is what a gold price does to a streamer's multiple. The trigger does not fire, and it is important that a reader knows it is arm 2 doing the work and not healthy estimates. TTM revenue is +90.8% and TTM net income +160% on the filings; the +84.7% and +85.7% the provider reports are Q2-vs-Q2, not TTM. Trigger 4 insider selling: no abnormal C-suite disposition found in this run's news and NEWS scan \u2014 there was no insider-transaction endpoint available and no filings search was run, so this is checked-and-absent on the sources consulted and nothing stronger. Trigger 5 structural threat: none \u2014 the streaming model's contracts are life-of-mine and the counterparty cannot switch. The armed macro tail (S&P 500 concentration / AI earnings-quality unwind) does NOT apply: a precious-metals streamer is not in that cohort on either limb, being neither AI-capex levered nor carrying non-operating-inflated earnings at 4.4%.",
  "hard_gate_state": "caution",
  "signal_short": "HOLD",
  "signal_medium": "HOLD",
  "signal_long": "HOLD",
  "primary_signal": "HOLD",
  "report_filename": "WPM.TO_Signal_v6_20260929_1700.html",
  "report_stamp": "20260929_1700",
  "short_entry_confirmed": false,
  "short_hold_reason": "expensive",
  "short_cap_reason": "WAIT FOR EVENT, and separately Buy on confirmation \u2014 two independent reasons, neither of which the other rescues. FIRST, the framework's high-macro-sensitivity override: Materials is a named high-sensitivity sector and Core PCE (August) prints on 30 September, ONE trading days from this stamp, so the short horizon is held regardless of composite score. The first cut of this report asserted that no high-impact release fell inside the 3-day window; the economic calendar lists Core PCE on 30 Sep, ISM Manufacturing on 1 Oct and Non-Farm Payrolls on 2 Oct, so that assertion was false and the override was never adjudicated. SECOND, the technical-confirmation cap would hold it anyway. The Fundamental entry group is MET (price C$191.82 against a C$146.53 fair value, no earnings inside 7 days, driver 62), but the Technical group is UNMET \u2014 the MACD histogram is -3.458, negative for 20 straight sessions and deepening \u2014 and the Catalyst group is UNMET at 1.44x average volume against the 2x bar. A short-term BUY needs a confirmed timing path, so the short caps at HOLD. The quality-starter override does not apply: it fires only on a base HOLD off a FAIR valuation, and this base is a HOLD off a FULL one \u2014 so the starter cannot fire for a second, independent reason: it also requires medium AND long at BUY-or-better, and both are HOLD. An earlier draft said the base was a BUY off an Attractive valuation.",
  "entry_groups_met": 1,
  "entry_conviction": "Half-Size",
  "exit_groups_live": 0,
  "exit_action": "Hold",
  "superseded_values": [
    {
      "value": "1.4745",
      "withdrawn_at_round": 8
    },
    {
      "value": "0.9058",
      "withdrawn_at_round": 8
    },
    {
      "value": "C$211.77",
      "withdrawn_at_round": 8
    },
    {
      "value": "C$212.00",
      "withdrawn_at_round": 8
    },
    {
      "value": "C$267",
      "withdrawn_at_round": 8
    },
    {
      "value": "C$151",
      "withdrawn_at_round": 8
    },
    {
      "value": "C$210.50",
      "withdrawn_at_round": 8
    },
    {
      "value": "STRONG_BUY",
      "withdrawn_at_round": 8
    },
    {
      "value": "wait_for_event",
      "withdrawn_at_round": 8
    },
    {
      "value": "C$183.50",
      "withdrawn_at_round": 7
    },
    {
      "value": "C$202.12",
      "withdrawn_at_round": 7
    },
    {
      "value": "+25.8%",
      "withdrawn_at_round": 7
    },
    {
      "value": "C$195.62",
      "withdrawn_at_round": 7
    },
    {
      "value": "C$143.14",
      "withdrawn_at_round": 7
    },
    {
      "value": "C$212.07",
      "withdrawn_at_round": 7
    },
    {
      "value": "C$192.01",
      "withdrawn_at_round": 7
    },
    {
      "value": "1.3414x",
      "withdrawn_at_round": 7
    },
    {
      "value": "4,148.50",
      "withdrawn_at_round": 7
    },
    {
      "value": "C$150.32",
      "withdrawn_at_round": 5
    },
    {
      "value": "C$222.72",
      "withdrawn_at_round": 5
    },
    {
      "value": "C$158.30",
      "withdrawn_at_round": 2
    },
    {
      "value": "C$234.54",
      "withdrawn_at_round": 2
    }
  ],
  "carried_verbatim": [
    "competitive_share_trajectory",
    "industry_benchmark_name",
    "lifecycle_stage"
  ],
  "superseded_exempt": {
    "1.4745": "This value changed ROLE rather than being withdrawn. It was published as the WARRANTED multiple, which was the defect; it is still, truthfully, the Materials guardrail line tightened for a 5.255% ten-year, and the report must keep naming it in that role \u2014 it is the ceiling in min(derived, guardrail), and stating that it does NOT bind at a derived 1.0203x is how the correction shows its working. Dropping it off the declaration list to quiet the sweep would hide the withdrawal instead of explaining it."
  },
  "superseded_detail": [
    {
      "value": "1.4745",
      "what": "warranted P/NAV",
      "was": "1.4745x",
      "now": "1.0203x",
      "why": "it was the Materials guardrail, tightened \u2014 the anti-hype CEILING published as the fair-value ESTIMATE, with the estimate never computed. It is now derived: 1.00 (NAV is already a DCF at 5%) plus 0.0203 of accretion on net cash, the only leg that survives as value outside the modelled book. The low-risk/bond-like leg is zeroed as a double-count against the sub-equity discount rate."
    },
    {
      "value": "0.9058",
      "what": "warranted ratio",
      "was": "0.9058x (Attractive)",
      "now": "1.3091x (Full)",
      "why": "arithmetic on the corrected warranted multiple. The band moves Attractive -> Full."
    },
    {
      "value": "STRONG_BUY",
      "what": "the long-horizon signal",
      "was": "STRONG_BUY",
      "now": "HOLD",
      "why": "Valuation falls 72 -> 49 on the corrected band, so the matrix row becomes High / Fair / Neutral -> HOLD on every horizon. STRONG BUY is separately barred on a Full-band name, and HOLD never amplifies."
    },
    {
      "value": "C$211.77",
      "what": "fair value",
      "was": "C$211.77",
      "now": "C$146.53",
      "why": "NAV x the corrected warranted multiple. The stock now trades ABOVE fair value, by 30.9%, where it had read as below."
    },
    {
      "value": "wait_for_event",
      "what": "short_hold_reason",
      "was": "wait_for_event",
      "now": "expensive",
      "why": "it was outside the framework's closed six-value enum, which disabled the machine-repeatable cap audit. The HOLD is now valuation-led, so `expensive` is both legal and correct."
    }
  ],
  "moat_score": 73,
  "catalyst_clustering_score": 35,
  "industry_benchmark_score": 98,
  "industry_benchmark_name": "Operating margin (precious-metals streamers)",
  "industry_benchmark_value": 72.8,
  "analyst_consensus_target": 246.88,
  "analyst_target_upside_pct": 28.7,
  "analyst_grades_consensus": "Buy",
  "analyst_coverage_count": 20,
  "position_size_modifier": 0.7,
  "position_size_modifier_reason": "Catalyst clustering scores 35 \u2014 Core PCE, ISM Manufacturing and Non-Farm Payrolls all fall inside three sessions of this stamp, the framework's '2-3 within 14 days' band \u2014 which carries a 0.7x position-size reduction (SKILL L2019-2021). An earlier draft of section 13 asserted the calendar was clear inside 30 days and that no reduction applied; it was wrong on the fact and on the consequence.",
  "scenario_bear_target": 123.05,
  "scenario_base_target": 146.53,
  "scenario_bull_target": 170.01,
  "target_price": 146.53,
  "stop_loss": 178.0,
  "scenario_probabilities": {
    "bull": 25,
    "base": 50,
    "bear": 25
  },
  "probability_weighted_target": 146.53,
  "economic_alignment_stance": "Trend-Following",
  "economic_alignment_conviction": 78,
  "economic_alignment_pressure": "Tailwind",
  "economic_alignment_source": "watchlist-signal",
  "macro_report_date": "2026-09-20",
  "competitive_share_trajectory": "stable",
  "competitive_threat_level": "moderate",
  "next_update_date": "2026-10-01",
  "next_update_basis": "Core PCE (August) 2026-09-30 +1 trading day. NOT the +14d default: SKILL L1931's ONE exception applies \u2014 a high-macro-sensitivity sector (Materials) with a high-impact release inside the 3-day window \u2014 so the release is an impactful scheduling event and min(last+14d, event+1td) selects 1 October. The first cut said 13 October on the reasoning that no release fell inside the carve-out, which the calendar falsifies; it also called 13 October 'CPI day', when CPI (September) is in fact 14 October and 13 October carries only Existing Home Sales.",
  "nav_total": 65345.3,
  "nav_divisor_shares": 454991000.0,
  "valuation_model": {
    "basis": "P/NAV, metal-by-metal at spot",
    "unit": "C$m",
    "share_count_field": "nav_divisor_shares",
    "fx_usdcad": 1.418,
    "terms": [
      {
        "name": "PV of the contracted stream book, 2026 stub + 25 years",
        "value": 67995.5,
        "means": "Wheaton's own Q2-2026 guidance \u2014 400-430koz gold, 27-29Moz silver, 19-21koz other GEO \u2014 ramped to the 1.2Moz GEO 2030 target, each metal valued at ITS OWN spot rather than by converting the GEO count at spot gold, and discounted at the 5% streaming convention."
      },
      {
        "name": "Net debt at 30 June 2026",
        "value": -2650.2,
        "means": "US$1,969m of bank debt less US$100m of cash, the company's own figure. It is a USE of the Antamina purchase, and the silver it bought is inside the production line above \u2014 both sides are post-deal, which is the thing that had to be checked rather than assumed."
      }
    ],
    "no_double_count": "The US$4.3bn paid to BHP on 1 April appears NOWHERE as a term. It is already spent: what it bought sits in the production profile, and what it cost sits in net debt. Adding it again would count the same transaction twice.",
    "inputs": [
      {
        "id": "metal_deck",
        "label": "Flat metal deck, +/-15% on both metals",
        "basis": "Gold has moved 4,694 to 4,180 in five weeks and sat at 5,318 in January; silver is 47.3% below its own January peak. A 15% band is narrower than the realised twelve-month range on either metal, so it is a conservative envelope rather than a generous one.",
        "nav_low": 54873.9,
        "nav_high": 75816.7
      },
      {
        "id": "book_length",
        "label": "Stream-life book, 20 vs 30 years",
        "basis": "The model runs 25 years, but Wheaton's OWN published outlook ends in 2035 \u2014 50.02% of the gross present value falls after it. Twenty years is the honest floor if the tail needs replenishment capital the model does not charge; thirty is the case where reserve life carries it.",
        "nav_low": 57432.7,
        "nav_high": 71523.6
      },
      {
        "id": "discount_rate",
        "label": "NAV discount rate, 6% vs 4%",
        "basis": "Five per cent is the streaming and royalty convention for contracted cash flows with no operating or capital exposure. With the ten-year at 5.255% and rising, 6% is the defensible bear end and 4% the bull.",
        "nav_low": 59130.2,
        "nav_high": 72583.9
      },
      {
        "id": "cost_basis",
        "label": "Cash cost, 0.8x to 1.6x the Q2 ratio",
        "basis": "Costs are modelled as 12.757% of revenue, calibrated to the Q2-2026 outturn. The marginal stream is price-linked (Antamina pays 20% of spot silver) but the legacy gold streams pay fixed-and-escalating amounts, so the blend is a simplification and is stressed both ways.",
        "nav_low": 59220.7,
        "nav_high": 67386.8
      }
    ]
  },
  "changes_note": "Versus the 10 September report at C$216.78: price C$216.78 -> C$191.82 (-11.5%). Valuation 66 -> 49 and Timing 63 -> 54; Quality held at 85. The anchor moved P/NAV 1.4x -> 1.336x on a lower price and a rebuilt NAV (C$154.72 -> C$143.62), so the warranted ratio moved 0.93 -> 1.31x, and the band with it. THE SUBSTANTIVE CHANGE IS NOT THE PRICE. The 10 September report scored Valuation off a warranted P/NAV of 1.5x that was never derived \u2014 it was the Materials guardrail, and the framework's own construction (min of a derived warranted multiple and that guardrail) had its first term computed nowhere. Derived properly it is 1.02x: 1.00, because NAV is already a discounted cash flow at 5%, plus 0.0203 of accretion on net cash, which is the only leg that survives as value outside the modelled book. So this run WITHDRAWS a medium BUY and a long STRONG BUY and publishes HOLD on all three horizons: the matrix column moves Attractive -> Fair and the row is HOLD, watch for valuation entry. Fair value falls C$232.08 -> C$146.53, so the stock now trades 30.9% ABOVE it rather than below. **short_entry_confirmed flipped True -> False** as well: on 10 September the Technical entry group was met and the short carried a BUY; the MACD histogram has since been negative and deepening, to -3.458, so the group is unmet \u2014 but the short HOLD is now valuation-led (`short_hold_reason: expensive`), not a technical-confirmation cap, and it would hold at this price whatever the tape did. Gate 1's current-ratio arm is newly PRESENT and carved out on liquidity cover \u2014 it was not a live question on 10 September because the Antamina cash had only just left the balance sheet.",
  "cite_receipt": {
    "ran": "2026-09-30",
    "census": "claim-census-WPM.TO-20260929_1700.json",
    "report": "WPM.TO_Signal_v6_20260929_1700.html",
    "census_sha256": "cca817da6bd5466ae3cb750fa534a09e719056816ec568a1c9647a7575bcf785",
    "claims": 7,
    "cited": 0,
    "note": "Seven high-risk claims. NONE is an uncited external assertion: two are the withdrawal of the 1.5-2.0x peer band and the dated search behind it, three are figures solved from this report's own NAV model and say so in the sentence, one is the framework's own guardrail (now correctly the CEILING rather than the warranted multiple), and one is a statement about this report's own exit rules which are printed on the same page. `cited: 0` is therefore accurate and not a gap -- there is no external source a [[src:]] pointer could name. The external claims that DO carry sources (guidance, the Antamina terms, the consensus panel) are declared in the section 15 audit with ids."
  },
  "model_choice_disclosures": [
    "G&A is annualised from the Q2-2026 quarter (SG&A US$15.696m + other US$5.102m) x 4 = US$83.2m. TTM operating expenses are US$142.9m, inflated by a US$67.4m 'other' charge in Q3-2025 that is treated as a one-off. Excluding it is defensible; the choice is FLATTERING by roughly 1.3% of NAV and is stated rather than buried.",
    "The effective tax rate is the TTM 14.53%. Both 2026 quarters ran 15.78% and the TTM figure is dragged down by Q3-2025's 11.00%, so the rate is the LOW one \u2014 flattering. Offsetting it, the rate is applied to a pre-depletion cash base, so in dollars the model charges more tax per revenue dollar (12.3%) than the company actually paid (11.0%). Net direction is close to neutral and neither leg was previously stated.",
    "Metal volumes are scaled proportionally to the 1.2Moz GEO 2030 target. Wheaton's growth is gold-weighted and gold is above the guidance deck ratio at spot, so proportional scaling is CONSERVATIVE here. Tested: pinning silver flat moves NAV +1.4%.",
    "The NAV divisor is the fully diluted weighted-average count (454,991,000), per SKILL L1293. The first cut used the 454.2m basic count, which was flattering by 0.17%."
  ],
  "lint": {
    "exit": 0,
    "assertions": 80,
    "errors": 0,
    "warnings": 0,
    "could_not_run": [],
    "at": "2026-09-30T13:24",
    "report": "WPM.TO_Signal_v6_20260929_1700.html"
  },
  "carried_verbatim_note": "Generated by scripts/carry_forward.py from calibration-WPM.TO-20260910-1500.json. Every field listed here crossed the run boundary through the manifest, with its disposition and its reason recorded in carry_provenance \u2014 not by being re-typed into a builder.",
  "carry_provenance": {
    "lifecycle_stage": {
      "disposition": "RE-ADJUDICATE",
      "reason": "the stage sets the Fit weighting and the gate carve-outs; a developer crossing into production changes both",
      "evidence": "Re-checked 28 Sep 2026 against the Q2-2026 release and the 16 Sep Investor Day: Wheaton remains a mature precious-metals streamer with no operating assets. The Antamina purchase enlarged the book, it did not change the stage, and no gate carve-out in this report keys on the developer cohort."
    },
    "competitive_share_trajectory": {
      "disposition": "CARRY",
      "reason": "a snapshot of the last competitive disclosure",
      "condition": "no_new_competitive_data",
      "condition_asserted": "Checked 28 Sep 2026 across the news scan back to 10 Sep and the Investor Day materials: no change in the streaming competitive set (Franco-Nevada, Royal Gold, miner self-funding) and no share-shift disclosure. The Antamina award to Wheaton over rival bidders is consistent with the prior 'stable' read, not a change of it."
    },
    "industry_benchmark_name": {
      "disposition": "CARRY",
      "reason": "A stable sector-metric LABEL, not a figure. It names WHICH benchmark the score is struck against; the VALUE beside it (72.8) is re-derived from this run's income statement every run. The field was one of eight v5 fields dropped at the 29 September re-stamp while the prose still published all eight (round-8 MAJOR 9), and restoring it byte-identical is correct precisely because the benchmark did not change.",
      "source": "calibration-WPM.TO-20260910-1500.json"
    }
  },
  "carry_source": "calibration-WPM.TO-20260910-1500.json",
  "audit_passes": 0,
  "audit_rounds_total": 8,
  "audit_pass_basis": "audit_passes counts CONSECUTIVE BLOCKER-FREE passes, not rounds. Round 8 returned 4 blocker(s), so the count RESETS to 0. Total rounds run: 8.",
  "post_audit_fixes_round3": "Round 3 (third fresh independent auditor): FAIL, 1 BLOCKER / 6 MAJORs / 5 MINORs. The NAV model itself was confirmed CLEAN this round; every surviving defect lived in a rendered surface the round-2 correction had not reached. BLOCKER: the section 14 caption still published 'Valuation 74 ... Signals HOLD / BUY / STRONG BUY ... Next update 13 October 2026', all three superseded by round 2, inside the same section whose fix log asserted the corrections were made; the caption is now DERIVED from the calibration. MAJOR 1: section 4's lens table published the anchor at 73, the score at the pre-correction ratio, while the build two paragraphs below used 70.55 - taking the table at face value would have given Valuation 73 and a decile sensitivity of 65.3, overturning the report's own claim that the band turns on that choice. MAJOR 2: the NAV build still divided by the basic 454.2m share count and the displayed arithmetic did not close. MAJOR 3: every derived percentage in section 12 was from the pre-correction targets - 16% and 44% against the true 10.3% and 38.0%, and C$233.85 against section 11's C$224.00, so the published risk-reward read 1.7:1 when it is 1.1:1. MAJOR 4: section 9 still named the short signal as HOLD after it moved to WAIT. MAJOR 5: the 16 September Investor Day carries five load-bearing claims including the long-horizon driver of 81 and appeared nowhere in the section 15 audit trail. MAJOR 6, a TOOLING gap fixed in code: dropping scenario_probabilities silently DISABLED lint_report.check_probability_weighted, which returned without incrementing checks or emitting a code, so the page cited '0 errors, 0 warnings' while the one check built for exactly this defect could not see it. Five MINORs also fixed.",
  "post_audit_fixes_round1": "Round 1 (independent general-purpose auditor): FAIL, 3 BLOCKERs / 13 MAJORs / 13 MINORs, all fixed. BLOCKER 1: section 8's economic-event tables rendered as literal template tokens because the spec supplied dicts where the builder iterates arrays, and the mandated 'Next update' line rendered blank because next_update_date/basis belong under signals. BLOCKER 2: the section 10 chart rendered BLANK - the inline script reads l.price and the spec emitted l.value, so Math.min returned NaN and the canvas drew nothing beneath a caption asserting the run and the pullback were 'both visible'. BLOCKER 3: the 1.5-2.0x peer band withdrawn in section 4 survived as a live assertion in section 12's buy case. MAJOR 4: driver_score published as 72 twice and 65 twice and labelled Neutral when 65-79 is the Tailwind band; corrected to 66, the mean of 55/62/81. MAJOR 5: 'MACD fallen five consecutive sessions' is disproved by the series the same sentence prints. MAJOR 6: the discount-rate stress that crosses the band was computed and not published. MAJOR 7: the thesis floor said gold below US$3,400 takes NAV under the price, but NAV is already under the price at P/NAV above 1.0. MAJOR 8: the implied deck was solved at 1.00x P/NAV rather than at the warranted multiple - opposite conclusions from the same price. MAJOR 9: 'three of the four inputs reach the 1.00x edge' contradicted the table above it. MAJOR 10: the carve-out's revolver leg was wrong on all three figures - US$2.5bn facility, ~US$0.5bn draw, ~US$2.0bn undrawn. MAJOR 11: 'price is below every analyst target on both panels' is false; the CAD panel's low is C$187.99. MAJOR 12: 'no P/NAV history on file' is falsified by four sibling calibrations. MAJOR 13: the sector-median lens scored the anchor's own denominator. MAJOR 14: the section 14 embed published lint:null. MAJOR 15: the claim census was built against a pre-withdrawal draft. MAJOR 16: status_badge and both rule forecasts rendered as raw Python repr. Thirteen MINORs also fixed, including a dropped decimal (C$163 against C$16), 2.75 against 2.48 ATR, quarterly YoY published as TTM growth, and operating cash flow understated at US$2.3bn against US$2,544.6m. [RECONSTRUCTED 2026-09-28 by the author after a stale carry_forward --preserve snapshot reverted the audit trail; the text is this round's own fix log, not a later summary.]",
  "post_audit_fixes_round2": "Round 2 (fresh independent auditor): FAIL, 3 BLOCKERs / 11 MAJORs / 6 MINORs. BLOCKER 1 - THE BIG ONE. The NAV discounted every year of the book one full year too early: the mid-year exponent read (year - 0.5 - VALUATION_DATE), which for 2027 evaluates to -0.25, a NEGATIVE period that COMPOUNDED the first year UP from three months before the valuation date. Correct is (year + 0.5 - VALUATION_DATE). NAV C$158.30 -> C$150.32/share, ratio 0.862 -> 0.908, fair value C$234.54 -> C$222.72. It was flattering on every surface and it propagated into the base scenario target, both implied decks, the thesis-invalidation floor, the discount-rate table and the fragility ranking. Consequences now published: ALL FOUR sensitivity inputs reach the 1.00x edge unaided (not one), the 6% discount row is now Fair, the crossings move to 5.97% and 7.94%, and the nearer band edge flips from the improving side to the worsening side. BLOCKER 2 - the Gate-1 revolver figure corrected in round 1 landed only in the section 14 JSON, never in the section 2 gate box a reader actually sees, while the audit trail asserted it was fixed. BLOCKER 3 - section 8 asserted 'nothing inside the next 14 days' and the project's own economic calendar lists eight high-impact US sessions, starting with Core PCE on 30 September, inside the 3-day window on a named high-macro-sensitivity sector: the WAIT-FOR-EVENT override fires, signal_short HOLD -> WAIT, and next_update moves 13 October -> 1 October. The claim that 13 October was 'CPI day' was also wrong; CPI is 14 October. MAJORs fixed: the recent-surprises table was rebuilt from the real last-7-days window; section 9's MTF row still said 'falling 5d'; the Valuation build published 73.7 for what computes to 73.47; the decile sensitivity was computed on a different weighting method from the base case and the method-consistent answer is 64.1; section 15 still said one lens lost where section 4 says two; DNB Trigger 3 was cleared on forward-year estimate LEVELS presented as revisions; RSI 40.4 is Cutler's against a standard Wilder 48.0, now declared; post_audit_fixes_round1 had every dollar figure eaten by a shell string; the Layer 0.5 receipt's defence of cited:0 was circular; three undeclared modelling choices are now disclosed with their direction; and the NAV divisor moved to the fully diluted 454,991,000 per SKILL L1293. Every sensitivity NAV, both implied decks and both crossing rates are now DERIVED from the model. [RECONSTRUCTED 2026-09-28 by the author after a stale carry_forward --preserve snapshot reverted the audit trail; the text is this round's own fix log, not a later summary.]",
  "post_audit_fixes_round4": "Round 4 (fourth fresh independent auditor, first under the blocker-free rule): FAIL, 2 BLOCKERs / 5 MAJORs / 12 MINORs. It verified all seven of round 3's fixes as LANDED.\nBLOCKER 1 - section 4's visible prose still read \"consensus EPS rises 5.51 to 5.52 to 5.84 across 2028-2030, so revisions are positive\", while the limit round 2 added landed only in dnb_adjudication. Fifth instance in this report of a fix reaching one site and not its sibling. Worse, the substance was wrong: the auditor pulled the actual vintage series, which round 2's note had called unavailable. It is available. FY2026 consensus EPS has been cut 5.341 to 4.927 to 4.813 to 4.787 to 4.765 across the 90/60/30/7-day vintages and FY2027 5.643 to 4.985 - monotone downward, about -11% over three months. Arm 1 of Do-Not-Buy Trigger 3 is therefore MET. What clears the trigger is arm 2, which requires the stock still within 10% of its pre-revision price, and WPM.TO has gone C$160.71 to C$202.12, +25.8%. The trigger does not fire, but on arm 2 and not on healthy estimates. Section 4 now carries the vintage table and the adjudication.\nBLOCKER 2 - post_audit_fixes_round3 existed nowhere and audit_route_note still published round 2 as the latest round, beside an audit_rounds_total of 3. Cause: a carry_forward --preserve snapshot taken BEFORE round 3 closed reverted the trail to its round-2 state and reported success. Fixed in code: carry_forward.py now counts post_audit_fixes_round* keys on both sides and REFUSES a snapshot that predates a closed round (PRESERVE-STALE), with a self-test proving it. Rounds 1 and 2 were unrecoverable from either repo and have been reconstructed by the author from this session's own fix logs, marked as reconstructed in the field text.\nMAJORs fixed: the analyst-consensus lens published one panel's +15.3% without the two others that disagree (+24.7% USD, +22.1% CAD) - all three now shown and the most conservative scored; the grades panel published \"4 holds\" that do not exist in any vintage (it is 16 buy-or-better, 0 holds, 0 sells), which lifts the consensus lens 77 to 81 and Valuation 72 to 73; section 3 asserted Franco-Nevada \"trades at a premium P/NAV\", the exact peer claim section 4 withdraws as unsourceable, now withdrawn there too; changes_note ended the short-signal narrative at HOLD when the report publishes WAIT; and the Layer-0.5 receipt attested to a census matching neither the file it named nor the shipped artifact - re-run, re-stamped with its sha, and the structural reason a byte match is impossible is now stated rather than chased.\nA second correction the auditor forced: SENTIMENT was scored 73 on the phantom holds and on revisions recorded as \"rising\" when they are falling 11%. Re-scored to 58, taking Timing 68 to 66. Still Improving, so the Decision Matrix and the published WAIT / BUY / STRONG BUY are unchanged.",
  "post_audit_fixes_round5": "Round 5 (fifth fresh independent auditor): FAIL, 1 BLOCKER / 6 MAJORs / 8 MINORs. It verified all eight of round 4's fixes as LANDED and re-verified round 1's blank chart, round 2's discount exponent and round 3's stale caption as still fixed.\nBLOCKER - dnb_adjudication still carried the superseded Trigger-3 clearance, \"consensus is rising, not falling - TTM earnings +85.7%\", two clauses BEFORE the round-4 correction that withdraws it. The fix had been PREPENDED rather than replacing the sentence it corrects, so the field read as though the live adjudication were the old one. Sixth instance of the one-site-not-its-sibling class, and the +85.7% was additionally mislabelled TTM by the same field's own correction 150 words later. Clause deleted.\nMAJOR 1 and MAJOR 2, which resolved together and are the substantive finding of this round. The grades panel is a LIVE PROVIDER DISAGREEMENT, not a phantom: the framework's own get_grades_consensus returns 16 buy / 4 hold / 0 sell on twenty analysts, while the secondary feed returns 16 buy-or-better with zero holds across four monthly vintages on sixteen. Round 4 had taken the second because it was cleaner - which is the FLATTERING one, and the exact asymmetry this report refuses for the three disagreeing TARGET panels in the same lens table. Scoring the conservative declared source and disclosing the disagreement returns the grades sub-signal to 75: consensus lens 81 to 77, Valuation 73 to 72, Sentiment 58 to 53, Timing 66 to 65. It also restores the decile sensitivity to 64.09, which round 5 showed does not reproduce at a consensus lens of 81 - the sensitivity had been left un-derived when round 4 lifted the lens.\nMAJOR 3 - the EPS vintage table, now the centrepiece of section 4 and the whole Trigger-3 adjudication, came from yfinance's eps_trend and section 15 declared only FMP's get_analyst_estimates, which has no vintage dimension at all. Declared.\nMAJOR 4 - the in-progress-session disclosure moved the PRICE leg and held the metals, on a day gold fell 4.0% and silver 5.0%. Quoting the price alone gave a ratio of 0.862x and made the shares look materially cheaper; on both legs it is 0.905x against the stamped 0.908x - barely moved, because the asset fell with the share. Both legs now stated and derived, with the Monday NAV of C$143.14 and fair value of C$212.07.\nMAJOR 5 - the scenario weights had moved 25/50/25 to 25/55/20 with no stated basis anywhere, lifting the weighted target C$3.25 on a report whose own section 4 argues fragility ROSE this run. Reverted to the prior run's 25/50/25; the weighted target is C$220.75.\nMAJOR 6 - the spec's own section-15 item detail still asserted the withdrawn \"RISING, which is what clears Do-Not-Buy Trigger 3\" reasoning. It does not render, but the spec is what the builder and publisher consume, so corrections must reach it.\nMINORs fixed: the post-2035 PV share published as 50.1% against a computed 50.02%, and audit_route_note narrating round 4 twice.",
  "post_audit_fixes_round6": "Round 6 (sixth fresh independent auditor): FAIL, 1 BLOCKER / 5 MAJORs / 10 MINORs. NOT YET FIXED - the run was paused at the operator's request immediately after this round returned. Nothing below is repaired; this entry records the findings so the next session resumes from them.\nBLOCKER - the opening stamp paragraph publishes an in-progress price of C$195.62 on 62,183 shares while the two ratios in the SAME paragraph (0.862x price-only, 0.905x both-legs) are struck at C$192.01. Three Monday ratios and two Monday prices are declared in published_figures and the prose pairs the wrong ones. The volume claim is worse than stale: at the 15:17 build stamp the session already carried ~900,000 shares, and it has since CLOSED at 1,370,133 - 123% of the 20-day average. So \"62,183 shares, 8% of average volume\", offered as the corroboration for treating the session as immaterial, is wrong by roughly 22x and inverts its own meaning. Seventh instance of the one-site-not-its-sibling class: round 5 re-derived the ratios at the live price and left the price and volume text where it was. Five sites.\nTHE LARGER QUESTION THIS OPENS, FOR THE OPERATOR. The 28 September session has now settled at C$192.01 on 1,370,133 shares. This report is DATED 28 September and stamped to the 25th, so the stamp is one full session stale. Restamping to 28 September re-derives the whole report on that session's metals (gold US$4,148.50, silver US$61.03): NAV C$143.14, P/NAV 1.3414x, ratio 0.905, fair value C$212.07 - the band stays Attractive and the published WAIT / BUY / STRONG BUY does not move, but every price-derived figure in the artifact changes. Keeping the 25 September stamp and merely correcting the prose is the smaller change and is defensible if the report is read as written on the Friday close. That choice is not the auditor's and it is not mine.\nMAJORs, all unrepaired: \"four prior P/NAV stamps (0.70x, 0.78x, 1.40x, 1.34x)\" - there are THREE prior stamps and the fourth value is this run's own actual_multiple, which the same sentence then concedes by listing \"this one\" among \"those four\"; the spec quotes a fourth value, 1.28x, matching no calibration on disk. The 50.02% correction landed at two sites and the superseded 50.1% survives at four machine sites inside the section-14 embed, one round after the fix log declared it closed - superseded_sweep flags all four. Section 15 declares neither the source of the US$178.11 target panel (it is get_yahoo_quote on the US listing, n=10) nor the secondary grades feed, and its summary says \"the two disagree\" where section 4 publishes three. The spec's Antamina item still asserts the ~US$0.9bn revolver draw round 1 corrected to ~US$0.5bn. And spec.published_figures declares three SUPERSEDED scenario targets (base 235, bull 292, target_price 235) against the published 223/279 - defeating the one-quantity-one-value guarantee the register exists for, silently, while figure_set reports zero errors.\nA TOOLING GAP the auditor identified and I am recording rather than fixing: figure_set.py passed over the blocker because 195.62 and 192.01 are declared under two different names for one quantity. The invariant is defeated by RENAMING, not only by omission.",
  "post_audit_fixes_round7": "Round 7: FAIL, 4 BLOCKERs / 19 MAJORs / 6 MINORs. The model-derived surfaces were re-derived correctly and every one of them reproduces; the rendered prose and the machine registers were not. The lesson is not subtle: superseded_sweep.py exists for precisely this class, I did not run it after the re-stamp, and when the auditor ran it it returned 34 survivals over 19 values in a single call.\nBLOCKER 1 - the stamp paragraph still declared a 25 September stamp and still republished the in-progress figures round 6 had already blocked on (the in-progress print C$195.62 on 62,183 shares, withdrawn here and replaced by the settled C$191.82 on 1,243,800), on a report headed 29 September at C$191.82. It also mislabelled the 29 September USD/CAD and both metal settles as the 25th's. Rewritten from scratch and now derived.\nBLOCKER 2 - spec.published_figures declared five superseded numbers (stop 183.50, scenarios 158/235/292, target_price 235) plus a live monday_* block that should not exist. A publisher run off that spec would have put a C$183.50 stop and 235/292/158 targets into the blog, video, Short and infographic against a report saying 178.00 and 212/267/151. The scenario and stop keys now DERIVE from the same constants the prose uses, and the monday_* block is deleted.\nBLOCKER 3 - delta_vs_prior published seven superseded deltas and contradicted changes_note in the same file. Regenerated by close_audit_round against the corrected fields.\nBLOCKER 4 - the Do-Not-Buy Trigger-3 arm-2 test carried C$191.82 with +25.8% in one place and C$202.12 with +19.4% in the other: each field got exactly half the correction, so both were wrong. Round 4's blocker was the same sentence. Both now read C$160.71 to C$191.82, +19.4%.\nMAJORs fixed: the driver published as 66/Tailwind and 55/62/81 against machine fields of 62 and 48/58/79, where 62 is NEUTRAL not Tailwind; all three analyst-panel percentages struck on the old price (now +21.7/+31.6/+28.7 at this stamp); the CAD panel low described as 7% below when it is 2.0%; the Wilder ATR leg of the stop at 2.44 when it is 1.81; the section-12 Rule Forecast still describing price as just ABOVE the lower Bollinger with the 50-DMA beneath, when price closed THROUGH the band and the 50-DMA is overhead; relative strength never re-derived (+20.2/+29.5/-7.3 to +19.6/+25.3/-9.4, and the name is now lagging its own sector over a month); short_cap_reason carrying three stale claims; the Wilder RSI attributed to get_technical_indicators as 39.9 when it returns 41.4; the twenty-day volume average quoted as ~1.1m when it is 864,140; Core PCE called two trading days out when from the 29th it is one; the chart caption dated to 25 September; the Timing card labelled \"improving\" against section 7's explicit Neutral; silver quoted at US$64.25 one paragraph after US$60.668; the spot GEO ratio at 67.26:1 against 68.89:1; four-week metal momentum at the old readings in gates_caution; and the anchor lens printed three ways.\nMINORs fixed: the bear percentage given three values, \"three sessions\" where 25 to 29 September is two, five-week gold at -8% when it is -11.0%, and a Friday attribution on a Tuesday stamp.",
  "post_audit_fixes_round8": "ROUND 8 FOUND THE INPUT, NOT THE ARITHMETIC. Seven rounds of clean assertions sat on a warranted\nmultiple that was never derived.\n\nBLOCKER 3 -- the warranted P/NAV WAS the sector guardrail. nav_wpm_to_20260927.py assigned\nWARRANTED_PNAV = GUARDRAIL_BASE * (1 - GUARDRAIL_TIGHTEN) = 1.4745 and section 4 published it as the\nframework's construction. SKILL L663 is min( WarrantedPE_forward, guardrail ) and L713 makes the\nfirst term mandatory in the sector's primary multiple -- P/NAV for a streamer. It was computed\nnowhere, so the anti-hype CEILING stood in for the fair-value ESTIMATE, and it decided the band, all\nthree horizon signals and an empty Do-Not-Buy array. Now DERIVED via scripts/warranted_pnav.py:\n1.00, because NAV is already a discounted cash flow at 5%, plus 0.0203 of accretion on net cash --\nthe only leg surviving as value OUTSIDE the modelled book. The \"streamers deserve a premium, the\ncash flows are bond-like\" leg is ZEROED as a double-count: discounting at 5% against a 9.755% equity\ncost of capital already embeds +54.3% of that same argument (NAV C$143.62 against C$93.06).\nCONSEQUENCE: ratio 0.9058 -> 1.3091, band Attractive -> FULL, Valuation 72 -> 49, and this report\nWITHDRAWS a medium BUY and a long STRONG BUY for HOLD on all three horizons. Fair value C$211.77 ->\nC$146.53, so the stock trades 30.9% ABOVE it rather than below. Trigger 2 re-adjudicated with BOTH\nbranches published: it does not fire on this construction, but at the framework's own equity rate\nactual P/NAV is 2.0611x, which IS in range of arm (a), so a reader who rejects the streaming\nconvention should read it as firing. This was a FRAMEWORK hole, not a WPM.TO one -- the miner rule\nrequires the P/NAV lens, so it reached every miner, streamer and energy name. Fixed in code\n(warranted_pnav.py 20/20; lint_report check_warranted_derived, 161/161, 110/110 codes), in the agent\n(SKILL step 5b, report-audit item 6a), and closed as a P0 on the improvement-debt register.\n\nBLOCKER 1 -- the three analyst-panel upsides were struck on the withdrawn C$202.12 while round 7's\nown fix log, rendered on the same page, said they were corrected. Now DERIVED from the stamp price:\n+21.8% / +31.7% / +28.7% against US$135.28.\n\nBLOCKER 2 -- sections 4 and 5 labelled the 29 September metal settles \"25 September\". Round 7\nrewrote the stamp paragraph and stopped. Both now read 29 September.\n\nBLOCKER 4 -- cite_receipt attested to a census built against WPM.TO_Signal_v6_20260928_1200.html, a\ndifferent artifact predating round 7's rebuild, with no census_sha256 despite report-audit making it\nmandatory. Round 4 fixed this exact defect once. Census re-run on this render (sha cca817da6bd5466a)\nwith the report filename stamped beside it.\n\nALSO FIXED: the scenario targets were hardcoded at the pre-correction 267/212/151 in the spec\nbuilder, so the probability-weighted target kept publishing C$210.50 on a report whose base case had\nmoved to C$146.53 -- they now read from the calibration. changes_note rewritten around the real\nchange rather than the price. short_hold_reason moved off the now-withdrawn out-of-enum \"wait_for_event\" -> \"expensive\" (M15). The eight v5 fields deleted at the re-stamp are restored (M9), with\nindustry_benchmark_name declared CARRY through the carry manifest. The 0.7x position-size modifier\nthe clustering score of 35 requires is now recorded (M8). threshold_fragility re-derived. 1.4745\ndeclared in superseded_exempt because it changed ROLE: it is still truthfully the guardrail ceiling,\nand stating that it does NOT bind at a derived 1.0203x is how the correction shows its working.\n\nA PROCESS DEFECT THIS ROUND EXPOSED: rebuilding the calibration wiped all seven\npost_audit_fixes_round* fields, because the preserve block restores the audit COUNTERS and not the\nTRAIL. They were recoverable only from website commit 0770e7f. The audit record is the one thing a\nrebuild must never silently drop -- same class as PRESERVE-STALE. Trail is now read from a repo file\nand carried explicitly, with audit_trail_carried_from stating where it came from and why.\n\nFIVE MAJORS SHIP OPEN, by operator decision, to get the corrected SIGNAL out: the MACD session count\n(M5/M6), section 7's Timing head (M7), two valuation_model.inputs basis strings (M10), the section 8\nsurprises table (M12) and section 15's source labels (M13). Each carries an `effect` saying what it\nmeans for this report; none touches the anchor, the band, the matrix or any horizon signal.",
  "audit_route_note": "Round 1: a FRESH general-purpose agent (never a fork). Verdict FAIL (3 blockers, 13 majors, 13 minors). Round 2: a FRESH general-purpose agent \u2014 round 2 found a NAV modelling error round 1 missed entirely, so round 3 went to another fresh auditor rather than a message-back. Verdict FAIL (3 blockers, 11 majors, 6 minors). Round 3: a FRESH general-purpose agent \u2014 pass 3 still carried a BLOCKER, which was reported to the operator rather than ground past, and prompted the rule change making the three major-passes three BLOCKER-FREE passes. Verdict FAIL (1 blocker, 6 majors, 5 minors). Round 4: a FRESH general-purpose agent under the new rule. Verdict FAIL (2 blockers, 5 majors, 12 minors) \u2014 so audit_passes remains 0 and the three major-passes have not started. NOTE on this field's own history: round 4 found it stale at 'Round 2' beside an audit_rounds_total of 3, because a carry_forward --preserve snapshot taken BEFORE round 3 closed reverted the trail to its round-2 state. carry_forward.py now refuses a snapshot that predates a closed round (PRESERVE-STALE) instead of reverting quietly. Round 5: a FRESH general-purpose agent (never a fork) \u2014 One blocker, so audit_passes stays at 0 and the three major-passes still have not started.. Verdict FAIL (1 blocker, 6 majors, 8 minors). Round 6: a FRESH general-purpose agent (never a fork) \u2014 One blocker, so audit_passes stays at 0. PAUSED HERE at the operator's request; the blocker overlaps a stamp-date decision that is the operator's to make.. Verdict FAIL (1 blocker, 5 majors, 10 minors). Round 7: a FRESH general-purpose agent (never a fork) \u2014 Four blockers. The re-stamp was incomplete because I re-derived the model and then swept the prose BY HAND instead of running superseded_sweep, which is the tool built for exactly this and which reported 34 survivals over 19 values in one call.. Verdict FAIL (4 blockers, 19 majors, 6 minors). Round 8: a FRESH general-purpose agent (never a fork) \u2014 The decision moved under the prose and the build was re-stamped, which reads as a REBUILD; a fresh auditor must see the corrected verdict without having argued for the old one.. Verdict FAIL (4 blockers, 11 majors, 9 minors).",
  "audit_trail_carried_from": {
    "from": "calibration-WPM.TO-20260929-1200.json, via data/report-specs/WPM.TO-audit-trail-rounds1-7.json (recovered from website commit 0770e7f after a calibration rebuild wiped the trail)",
    "rounds": [
      "post_audit_fixes_round1",
      "post_audit_fixes_round2",
      "post_audit_fixes_round3",
      "post_audit_fixes_round4",
      "post_audit_fixes_round5",
      "post_audit_fixes_round6",
      "post_audit_fixes_round7",
      "post_audit_fixes_round8"
    ],
    "reason": "Round 8 re-stamped the build from 20260929-1200 to 20260929-1700 because the DECISION moved -- the warranted multiple was re-derived and the verdict moved OFF the now-withdrawn WAIT/BUY/STRONG_BUY to HOLD on every horizon -- and the SKILL prefers a new stamp over re-freezing a lock in place. Same settled session, same price, new build. The seven prior rounds are this ticker's audit history and travel with it."
  },
  "threshold_fragility": "Ratio 1.3090, FULL band. NOT ROBUST. It is 4245.4 NAV units from the 1.40x edge and 5938.0 from 1.20x. Largest single sensitivity: Flat metal deck, +/-15% on both metals (metal_deck), worth 0.431 on the ratio and closing 247% of the nearer gap (to 1.40x) \u2014 it CROSSES the edge on its own. Stream-life book, 20 vs 30 years: 0.293, covering 186% of that same gap. NAV discount rate, 6% vs 4%: 0.268, covering 146% of that same gap. Cash cost, 0.8x to 1.6x the Q2 ratio: 0.175, covering 144% of that same gap. Taken together the declared inputs close 724% of the gap to 1.40x and 437% of the gap to 1.20x. "
}

Price $191.82 (29 September settled close). NAV $143.62 on a metal-by-metal build; P/NAV 1.34× against a warranted 1.02×, ratio 1.31× — Full. Quality 85, Valuation 49, Timing 54, Driver 62 (48/58/79 by horizon), Economic Alignment 78 Trend-Following/Tailwind. Signals HOLD / HOLD / HOLD. Gate 1's current-ratio arm present and carved out on liquidity cover; no gate triggered, no Do-Not-Buy trigger fired. Conviction Half-Size, exit action Hold. Next update 2026-10-01.

15

Data Sources & Methodology

Audit trail of every data source: fully available (✓), fallback (⚠), or failed (✗), plus provenance-based confidence haircuts.
Data Source Status
✓
get_yahoo_prices (WPM.TO, GC=F, SI=F, USDCAD=X, ^TNX)
✓
get_income_statement (WPM, 8 quarters)
✓
yfinance quarterly balance sheet / cash flow
✓
Wheaton Q2-2026 results (6 August 2026, SEC 6-K)
✓
Wheaton Antamina PMPA release (BHP, effective 1 April 2026)
✓
get_analyst_estimates (WPM, annual)
✓
Wheaton 2026 Investor Day, 16 September 2026 (webcast announced 1 Sep, 6-K)
✓
yfinance analyst EPS trend (Ticker.eps_trend) — the vintage series
✓
get_stock_news (WPM, 30)
✓
get_yahoo_quote (WPM, the US listing)
✓
get_yahoo_analyst_targets (WPM)
⚠
get_yahoo_quote (WPM.TO)
⚠
Multi-timeframe technicals
⚠
get_price_target_consensus / get_grades_consensus (WPM)
✓
MacroDriver-state-20260920.json
⚠
Insider transactions (Do-Not-Buy Trigger 4)
✗
Royalty/streaming peer P/NAV band
✗
Own-history P/NAV decile
Impact on scores: TWO of the Valuation pillar's five lenses are N/A — the own-history decile (no comparable P/NAV series exists) and the sector median (with no peer band sourceable it would have scored the anchor's own denominator) — which leaves the anchor carrying 62% of the pillar alone. The published sensitivity shows that scoring the decile at 30 instead would take Valuation to 64, which would move medium off its published BUY — a live fragility, not a formality. The absent insider endpoint means Trigger 4 rests on a news scan rather than a filing search. Valuation confidence is haircut to 55% and overall confidence to 55%, the weakest link. Everything load-bearing in the NAV comes from Wheaton's own filings rather than a provider field, which is the deliberate response to the provider disagreements found in §4.
DISCLAIMER: This is a quantitative framework for educational purposes only. It is not financial advice. Always do your own research and consult a licensed financial advisor before making investment decisions.