Price −1.2% ($96.84 → $95.68), so almost nothing happened to the shares. Three things happened to the analysis, and two of them are downgrades.
First, I changed the valuation anchor. The last report anchored Rio on a clean trailing P/E against a guardrail-capped 15×, which read 0.90 and "fair". The framework's mining rule is P/NAV first, with an earnings multiple demoted to a cross-check (SKILL L570). Re-struck on P/NAV the ratio is 1.307 — the Full band. That is a methodology correction, not a re-rating: the shares fell 1.2% while the measured band moved from Fair to Full because I am now measuring the right thing. §4 sets out the whole construction, what it depends on, and what breaks it.
Second, I recomputed the driver from its components rather than carrying it forward, and it is worse than I had it. The last report described a live iron-ore downtrend qualitatively. This run has it quantified from settled futures closes: iron ore is below both its 50- and 200-day averages with a falling 50-day line and all three momentum windows negative. Aluminium — 20% of first-half earnings, and a sleeve the last report called "firm" — has also rolled over. Copper, 36% of earnings, is the cleanest uptrend in the complex. Weighted by actual earnings contribution the driver is −3 to 61 on the medium horizon.
Third, and this is the one that moved the signals: the independent audit caught an error in my timing score. I had scored the catalyst layer 60 on a "one clear catalyst in 30 days" reading. That contradicted this report's own §8 table, which flags four relevant high-impact events, and it sits outside the band the framework's clustering table assigns to two catalysts inside a fortnight (20–49). Corrected to 45, and a second audit round then applied the −15 overhead-resistance penalty the framework requires, taking Timing to 52 — Neutral. A High-quality, Fair-valued name with Neutral timing is a HOLD on every horizon.
Signals: Short HOLD → WAIT (the §8 event override ahead of the 19 August FOMC Minutes). Medium BUY → HOLD. Long STRONG BUY → HOLD — over-determined: the base is HOLD and HOLD never amplifies, and the Full band would have barred amplification anyway. Entry conviction Half-Size → Wait: on a NAV of $73.23 the Fundamental entry path no longer fires, and neither Technical nor Catalyst is met. Scores: Valuation −17 to 46 (the anchor change), Timing −6 to 52, Driver −3 to 61, Economic Alignment +4 to 72 (XLB medium upgraded O → SO and the Copper/Industrial-Metals asset line upgraded to O/O/SO), Quality flat at 79.
Rio Tinto is one of the world's largest diversified mining groups. It digs up and processes the raw materials that build and electrify the modern economy: iron ore from its tier-one Pilbara operations in Western Australia and the new Simandou mine in Guinea, copper from Oyu Tolgoi in Mongolia and Kennecott in Utah, aluminium from Canada and Australia, and a growing lithium business in Argentina and Quebec. What distinguishes it from peers is the cost position of its orebodies — bottom-of-the-cost-curve assets that keep generating cash deep into a commodity downcycle — and the fact that copper, aluminium and lithium together now contribute more than half of group earnings, where a decade ago iron ore was almost the whole story. The group is dual-listed: Rio Tinto plc trades in London, Rio Tinto Limited in Sydney, and this report prices the New York ADR line. Its fortunes rise and fall with the prices of four commodities it does not control.
totalDebt is lease-inclusive: I have not used it. The 14.061 figure is Rio's own, from the 29 July release.The framework requires me to rule on each armed macro tail rather than wave at "the tails". There are four in the 12 August macro report and two of them are live.
1. S&P concentration / AI earnings-quality unwind — armed, trigger receding. Rio does not inherit it. Cohort membership requires earnings or a multiple levered to the AI trade, or reported earnings inflated by non-operating gains. Rio is a 13×-trailing miner whose non-operating income is 9.2% of net income (6.6% of pre-tax) and no AI exposure. "It is in the index" is not sufficient, and breadth is broadening anyway (RSP +3.6% vs SPY +2.8% over a month).
2. Private-credit crack — building, not armed. Inheritance requires an armed tail, so this one does not qualify on the rule alone. It would be close to irrelevant here regardless: net debt/EBITDA 0.47× and 17.8× interest cover mean Rio is not a refinancing story.
3. Hormuz closure escalation — LIVE, not triggering. Brent is $88.52 on the batch's settled commodity pull — the 12 August macro report of record carries $88.58, and I quote the pull rather than the report because the pull is the dated series — against a trigger of $100 sustained. It matters to Rio twice: diesel and shipping are direct input costs across the Pilbara and the seaborne trade, and an oil spike into a weak consumer is the classic route to an industrial-metals demand shock. It sits in the bear case in §11, not in the base.
4. September Fed hike — LIVE, ~44% implied, three hawkish July dissents. This is the one that actually binds this report. A hawkish read of the 19 August minutes raises the real rate that sits inside my 9.13% discount rate, which cuts the NAV directly, and it tends to lift the dollar, which is a headwind for every dollar-priced commodity Rio sells. It is the §8 override and it is why the short horizon is WAIT rather than HOLD.
Lifecycle & sector: mature cash-cow diversified miner, GICS Materials. The metric lens is therefore P/NAV, FCF yield, EV/EBITDA at normalised prices, unit costs against the cost curve, ROCE and dividend sustainability — not revenue growth and not a P/E on a cyclical peak.
The half-year print on 29 July was the strongest Rio has delivered in years, and the strength came from the part of the business that is not iron ore. Underlying EBITDA US$14,826m, +28%. Free cash flow US$3,834m, +75%. Underlying ROCE 17%, up three points. Net debt US$14,061m, down 2% despite US$5,037m of capital investment in the half. The interim dividend was raised 43% to 211.0 US cents at an unchanged 50% payout — the payout ratio did not move, the earnings did. Rio's own framing is that copper, aluminium and lithium now contribute more than half of underlying EBITDA, and the segment table bears that out.
| Segment | Underlying EBITDA | vs H1 2025 | Share of segment total |
|---|---|---|---|
| Iron Ore | US$6.8bn | −1% | 43% |
| Copper | US$5.7bn | +84% | 36% |
| Aluminium & Lithium | US$3.3bn | +38% | 21% |
| Reportable segments total | US$15.8bn | +28% | 100% |
These weights — three segment rows covering four commodities — are the arithmetic the whole driver section runs on. Iron ore is still the largest single sleeve, but it is a minority of the group — and it was the only one that shrank, even though it shrank by just 1% while the price was falling, which is the cost curve doing its job.
| Sub-signal | Value | Sector reference | Score | Read |
|---|---|---|---|---|
| Revenue trajectory | H1 revenue US$31,028m, +15% YoY | Mid-single-digit is normal for a major | 82 | Price plus copper and aluminium volume; well above miner norm |
| Profitability | Underlying EBITDA margin ~48%; operating margin 27.3%; net margin 19.6% | >30% EBITDA margin is good | 80 | Top tier and expanding on the copper mix shift |
| Cash generation | FCF US$3,834m H1 (+75%); FCF/EV 4.52% on the rebuilt EV of US$169.7bn (see §4) | 5%+ attractive | 60 | Genuinely strong in the half, but capex of ~US$11bn a year holds the trailing yield down |
| Balance sheet | Net debt US$14,061m; 0.47× EBITDA; interest cover 17.8×; current ratio 1.42 | <2.0× healthy | 88 | De-levered further while spending heavily. Very healthy |
| Returns on capital | Underlying ROCE 17% (was 14%); ROE 19.3% on Yahoo's return_on_equity, or 18.4% computed on FMP's period-end equity of $40.47/share — both bases named because they differ | >10% healthy for a major | 80 | Top quartile among diversified majors, and rising with the Oyu Tolgoi ramp |
| Productivity | US$870m of productivity gains in H1; US$1.8bn year-end run-rate target | — | 78 | Self-help that is showing up in the numbers rather than the slides |
Rio does not disclose a group AISC, so the honest version of this benchmark is cost-curve position by sleeve. Pilbara iron ore is a first-quartile operator at unit cash costs in the low-to-mid US$20s per tonne against a US$95.17/t benchmark price — a margin far above the 40%-of-spot threshold that scores 90+. Oyu Tolgoi is a first-quartile copper mine ramping toward an average ~500kt a year over 2028–2036 with rising head grades. The aluminium book is mid-curve and the weakest link, which is why the Tomago power agreement matters (below). Benchmark score 84/100. The evidence that this is real rather than asserted: iron ore EBITDA fell only 1% while the ore price fell through the half.
Average 57.6, rounded to 58. The moat is asset-based — durability and cost position — not pricing power. That is the correct shape for a miner and it is also the reason the driver pillar carries so much weight in this report: Rio cannot set the price of anything it sells.
Rio competes as one of four diversified majors. The threat is not share loss in the usual sense — nobody switches supplier for a benchmarked commodity — it is supply, and this year Rio is on both sides of that. Simandou, which Rio operates and part-owns, is itself one of the largest new sources of seaborne iron ore supply in a generation, into an end market that is shrinking. Rio gains the volume and helps depress the price it earns on the other ~300Mt a year it ships from the Pilbara.
| Rival | Threat type | Share trajectory | Moat-erosion vector |
|---|---|---|---|
| BHP | Direct peer in iron ore and copper, larger group | Stable — both tier-one Pilbara | None acute. But BHP's shares returned −2.4% over three months against Rio's −10.8%, and +21.6% vs +2.7% over six — Rio is the laggard of the pair |
| Vale, Fortescue | Seaborne iron-ore supply | Stable volumes; Rio at record Pilbara shipments | Price competition, not share loss. Vale's shares are −15.5% over three months — the whole iron-ore complex is being marked down |
| Simandou consortium (incl. Baowu, Winning) | New supply Rio helped create | Rio gains volume, loses price | The self-inflicted vector. 60Mtpa capacity, 27Mtpa Rio share, into a contracting Chinese steel market |
| Freeport, Glencore, Antofagasta | Copper | Rio gaining via the Oyu Tolgoi ramp | Rio is adding low-cost copper volume while Antofagasta cut its 2026 production guidance on 13 August. Advantage Rio |
| Alcoa, Norsk Hydro, Chinese smelters | Aluminium | Stable; Rio mid-curve | Power cost is the whole game. The Tomago agreement announced 12 August 2026 removes a closure risk that was live: Tomago Aluminium commits A$1.1bn through 2038 (including A$100m for decarbonisation) under a 10-year power agreement that commences 1 January 2029, immediately after the existing electricity contract expires on 31 December 2028, with 100% renewable supply from 2033 |
| Albemarle, SQM | Lithium | Rio entering via Rincon, Arcadium, Nemaska | New entrant into an oversupplied market. Lithium is 1% of EBITDA, so this is optionality, not defence |
Net effect on the moat: Cost Advantage held at 84 — the cost-curve position is intact and the Oyu Tolgoi ramp is improving it. Switching Costs neutral at 50, unchanged, because there is nothing to switch. Pricing Power trimmed to 32 from the mid-30s: Simandou is a case of the company adding to the supply that sets its own realised price, which is the opposite of pricing power. Share trajectory: stable (gaining in copper, losing price in iron ore). Threat level: moderate.
Capex guidance is unchanged at up to US$11bn in 2026 and 2027, easing to about US$10bn from 2028 in real 2025 terms, of which sustaining capital is around US$4bn a year (CFO, H1 2026 results call). Fitch, affirming Rio at A/Stable on 15 May 2026, put annual growth capex at US$2–3bn across 2026–2028. That leaves roughly US$4bn a year of replacement spend — Western Range, Brockman, Hope Downs 2 — which is what keeps Pilbara volumes flat rather than growing them. The split matters enormously to the valuation and I use it directly in §4.
The record itself is disciplined: 50% payout maintained through a 43% dividend increase, no share issuance, net debt down while spending US$5bn in a half. Management declined the US aluminium-smelting tariff offer last quarter and has put Jadar into care and maintenance rather than force it. Chief Executive Simon Trott took over in 2025. The one open question is whether US$2–3bn a year of growth capex into Simandou, Oyu Tolgoi and lithium earns its cost of capital — that is a 2028–2030 verdict, not a 2026 one.
The framework's primary multiple for a producing miner is P/NAV, with FCF yield secondary and EV/EBITDA at normalised prices tertiary (SKILL L570). The Materials guardrail line is a P/NAV of 1.5×. The previous report anchored Rio on a clean trailing P/E capped at 15× and read 0.90 — that was the wrong lens for this sector, and correcting it is most of the change in this report. I have kept the earnings multiple below as a cross-check, which is what it is.
The construction, in full, so you can break it:
Declare the deviation, because it is the choice that sets the band. The framework's general anchor is a two-stage formula that ends in a perpetuity. Run it literally on my own recorded inputs — r 9.13%, g_near 0, g_term 0 — and the factor is 10.9529, not 9.0446, giving a NAV of $88.68 and a ratio of 1.079 — the Fair band, where amplification would be permitted. I do not use it, and the reason is not convenience: a perpetuity is the wrong shape for a depleting asset. An orebody is consumed by mining it, which is why the framework separately specifies P/NAV over a mine plan for miners, and why sell-side mining NAVs are struck on a finite life. But the truncation from perpetuity to twenty years is my instantiation, not the framework's arithmetic, and this report is the only place you can see that. The independent auditor raised it; the fix is to say so plainly rather than to describe the result as the framework's own output.
The guardrail, applied by hand: the deterministic linter carries the Materials line as an EV/EBITDA of 8× and cannot evaluate a P/NAV basis, so it skips that arm. I have applied it myself: the SKILL's P/NAV line is 1.5× and the actual is 1.307×. No guardrail breach. On the EV/EBITDA arm, 6.30× against the same 8× line is also clear.
| Weighted mine life | Annuity factor | NAV per share | P/NAV | Band |
|---|---|---|---|---|
| 15 years | 7.9992 | $64.76 | 1.477 | Expensive — Gate 3 would fire |
| 20 years (used) | 9.0446 | $73.23 | 1.307 | Full — amplification barred |
| 25 years | 9.7200 | $78.70 | 1.216 | Full |
| 30 years | 10.1564 | $82.23 | 1.164 | Fair — amplification would be permitted |
| Perpetuity, two-stage at g_near=0 and g_term=0 — my choice of terminal growth | 10.9529 | $88.68 | 1.079 | Fair — disclosure only; wrong shape for a depleting asset |
| Perpetuity, two-stage at g_near=0 and g_term=3% — the framework's own stated reference | 14.732 | $119.28 | 0.802 | Attractive/Fair edge — disclosure only; two bands from where this report lands |
Why 20 years — the argument that actually discriminates. The asset lives I could source this run cluster in the twenties: Oyu Tolgoi's underground plateau runs 2028–2036 with reserves beyond it, Simandou is a multi-decade orebody at 60Mtpa, Rincon carries a stated 40-year life, and the Pilbara has been kept running for 60 years by exactly the replacement capital this model already charges — against Kennecott, scheduled only to 2032–33. That evidence spans roughly 20 to 25 years, and both ends read Full (1.307 and 1.216). The band only breaks outside a range the sourced evidence does not support. That is the honest defence of 20, and it is a better one than an earlier draft gave — that flat nominal earnings are a real-terms decline. They are, but that conservatism applies just as much at 25 years, so it never discriminated between the two in the first place.
I am not going to pretend this is settled. The band is robust across 20–25 years, across any plausible risk-free rate, across all three share counts, and to a 9% cut in the earnings base. It breaks at a 15-year life (Expensive, which would gate every horizon to HOLD) and at 30 years or a perpetuity (Fair). If you think Rio's weighted economic life is nearer 30 years, the honest reading is that this report has the valuation one band too dear. I could not source a group reserve-life figure this run — web search was unavailable — and the Valuation confidence carries a 15-point haircut for exactly that.
| Lens | Rio | Reference | Read |
|---|---|---|---|
| P/NAV (primary) | 1.307× | Guardrail 1.5×; Full band 1.20–1.40 | Full — the anchor |
| FCF yield (secondary) | 4.52% reported | 5%+ attractive; 3–5% fair | Fair. This is after ~US$11bn of capex including growth |
| EV/EBITDA (tertiary) | 6.30× on the FY2026E consensus EBITDA of US$26.93bn; 7.27× on a trailing statutory EBITDA of US$23.35bn (H1-2026 US$12.75bn + H2-2025 US$10.60bn, summed from the two reported half-years). The two are not like-for-like: the 6.30× is struck on an underlying-basis consensus figure — the same basis as the US$14.83bn Rio reported for H1 and as Gate 1's US$29.65bn annualisation — while the 7.27× is statutory. Both sit under the 8× line either way | Miner rich line 8× | Not expensive — and this is the honest tension in the section |
| Sector median (Reference 1) | NOT SCORED | Normally 20% of this pillar | No sourced peer-multiple table was obtainable this run. Rather than estimate one and present it as data, I have dropped the lens and renormalised its 20% across the anchor (40→50%), own-history decile, PEG and analyst consensus. Flagged by the independent auditor |
| Clean trailing P/E (cross-check only) | 12.98× | — | Cheap on the surface. Reported and clean are the same number: non-operating income is 9.2% of net income (6.6% of pre-tax), under the ~15%-of-net-income restatement line on either basis |
| Forward P/E (FY2027 consensus $8.30) | 11.5× | — | Cheap — but consensus EPS then falls to $6.91 by 2030 |
| P/B | 2.36× on attributable equity of $40.47/share | High for a miner | Supported by an ROE of 18.4–19.3% depending on basis (§3), but the upper half of Rio's own range |
| PEG (Reference 3, weight increased by the renormalisation) | 0.75 on the trailing basis | <1.0 usually cheap | Shown, but I do not lean on it. 0.75 pairs the 12.98× clean P/E with a trailing growth rate. This report's own consensus EPS path is $8.34 → $8.30 → $8.13 → $8.30 → $6.91 by 2030 — flat, then down 17%. A PEG built on trailing growth flatters a name whose forward earnings consensus declines, so it is carried at low weight and named as flattering rather than quietly counted |
| Own-history decile (Reference 2, weight increased by the renormalisation) | ~6th of 10 | Decile 4–6 = fair | Mid-to-upper of Rio's own range, consistent with a P/B at 2.36× against a 5-year band that has run roughly 1.5–2.8×. Weakly sourced and flagged as such: no sourced 5-year multiple series was obtainable this run (web search unavailable), so this is an estimate from the data I could reach, not a computed decile. It is part of why Valuation confidence is 63 |
| Dividend yield | 4.86% on US$4.65 trailing | — | Attractive, and the interim was genuinely raised 43% |
Two respectable lenses disagree about this stock and I am not going to average them into mush. On EV/EBITDA and P/E, Rio screens cheap. On P/NAV struck at the framework's own required return, it is in the Full band. The difference is entirely about what you capitalise and for how long. The earnings multiples divide today's price by earnings that contain a copper price at cycle highs and an iron-ore price that consensus expects to fall to US$85–90 by 2027; the NAV discounts a flat version of those earnings over a finite mine life at 9.13%. An independent third party reached the same split on 11 August: Simply Wall St's write-up on the London line noted a DCF pointing to a premium while earnings-based multiples screen relatively cheap. The framework says P/NAV is the anchor for a miner, so that is what sets the band, and the cheap-looking multiples explain why the score sits mid-band at 46 rather than at the bottom of it.
The implied read. At $95.68 you are paying for mid-cycle attributable earnings of about US$17.35bn, against the consensus five-year mean of US$13.28bn. That is +30.7%. The market is pricing a copper-led step up in earnings that the sell-side has not yet put in its own numbers. That may well be right — Oyu Tolgoi going from today's output to an average 500kt a year is exactly such a step — but you are paying for it now.
Because the NAV charges only the capital needed to hold volumes flat, everything the US$2–3bn a year of growth capex is buying sits outside it:
Applied tilt: +2 points, inside the Full band's 40–49 range — reduced from +4 after the independent audit made a fair point. The NAV excludes the US$2–3bn a year of growth capex and the volumes it buys, which is internally consistent; but crediting the shareholder with the pipeline's upside while that spending never appears as an outflow anywhere in the model is the generous side of the ledger. A smaller tilt is the honest size. And note the counterweight — if you believe the growth pipeline is worth a great deal, you should also accept that Simandou's own volume is part of what is pushing the iron-ore price down.
FMP consensus $105.50 (median $113.00, high $120.00, low $83.50) — +10.3% from $95.68, which is the "within 10–20% below consensus" band and scores 70–84 on its own. Yahoo's independent panel gives mean $105.85, median $107.50, high $125.00, low $88.00 across eight analysts, so the two agree and the endpoint is not degenerate. Grades are more cautious: 12 Buy / 13 Hold / 6 Sell, no Strong Buy — 38.7% bullish and a "Hold" consensus, which scores 45–64. There have been no grade actions at all in the last 30 days; the most recent were downgrades, JP Morgan to Neutral on 9 March and Barclays to Equal Weight on 24 February. FMP's own health rating is A− (4/5), with DCF, ROE and ROA all scoring 5 and only P/E and P/B scoring 2 — which is, in miniature, the same split this section is about.
Primary driver: a basket of four commodity prices Rio does not control — and the whole point of this section is that the basket is no longer moving together. I recomputed this driver from its components this run rather than carrying the previous score forward, because the last report's 64 was struck on 31 July, before the settled data below existed.
Raw closes, auto_adjust=False. Iron ore and copper come from the batch's central commodity pull and
I independently reproduced both to the cent from yfinance before using them. Aluminium is my own
pull and is not from the central series — flagged because it carries a caveat.
| Commodity | Last | 50-DMA | vs 50 | 200-DMA | vs 200 | 50-slope | 4wk | 6wk | 8wk |
|---|---|---|---|---|---|---|---|---|---|
Iron ore TIO=F | $95.17/t | 98.66 | BELOW | 103.94 | BELOW | FALLING | −3.75% | −3.13% | −6.03% |
Copper HG=F | $6.60/lb | 6.35 | ABOVE | 5.87 | ABOVE | RISING | +6.10% | +7.93% | +1.82% |
Aluminium ALI=F | $3,355.50/t | 3,554.55 | BELOW | 3,276.47 | ABOVE | FALLING | −4.92% | −1.76% | −9.77% |
Aluminium caveat, stated up front so a challenge to it cannot unwind the
conclusion: ALI=F is the COMEX contract, which is premium-inclusive and distorted by US
Section 232 tariffs; Rio realises LME plus regional premia. I use it as a directional proxy only, and I set
it against the company evidence pulling the other way — Aluminium & Lithium EBITDA was +38%
in the half. So the aluminium sleeve is a business that has been earning well into a price that has now turned down.
That is a fair description whichever benchmark you prefer.
At $95.17/t iron ore sits roughly four times Rio's Pilbara unit cash cost. Nobody is going out of business. But the framework's Step 2b exists precisely to stop a high level being reported as a clean tailwind while the price falls, and iron ore now fails every trend test at once: below its 50-day line, below its 200-day line, 50-day line falling, and negative across four, six and eight weeks. It gapped from $98.00 on 31 July to $93.66 on 3 August and has not recovered the level.
And the forward is worse than the spot. Investment-bank consensus for 2026 is US$94–96/t — so today's price is already at consensus, not below it — falling to US$85–90 for 2027. Two structural forces drive that: Chinese crude steel output is contracting again in 2026, and Simandou is ramping toward a project peak of about 120Mtpa of new high-grade supply — Rio operates the 60Mtpa Simfer half of that, of which its own share is 27Mtpa — into that shrinking market. Chinese iron-ore imports were still up 5.9% over the first seven months, but July pulled back as steel margins squeezed.
So the Step-2b short cap fires: a live downtrend in the largest single sleeve removes short-horizon amplification. It also promotes the iron-ore bear from a distant tail to a live near-term risk, which is where it sits in §11 and in the thesis-invalidation rule in §12. This is the dial flashing now, not later.
The weights are the first-half EBITDA shares from §3 — iron ore 43%, copper 36%, aluminium and lithium 21% — not a guess at which commodity is more interesting to write about.
| Sleeve | Weight | Short | Medium | Long | Basis |
|---|---|---|---|---|---|
| Iron ore | 43% | 45 | 48 | 49 | Level scores ~82 against the cost curve; the live downtrend caps the short, the US$94–96 → US$85–90 consensus path caps the medium, and contracting Chinese steel plus Simandou supply cap the long |
| Copper | 36% | 78 | 82 | 87 | Above both averages on a rising 50-day line with all three windows positive; structural deficit; Oyu Tolgoi to ~500kt/yr over 2028–2036 at rising grades |
| Aluminium & lithium | 21% | 42 | 52 | 63 | Below a falling 50-day line and −9.8% over eight weeks, though still above the 200-day; Tomago secured to 2038; lithium (1% of EBITDA) still in surplus |
| Weighted driver | 56 | 61 | 66 | 0.43×45 + 0.36×78 + 0.21×42 = 56.3 · 0.43×48 + 0.36×82 + 0.21×52 = 61.1 · 0.43×49 + 0.36×87 + 0.21×63 = 65.6 | |
Short 56 — Neutral. No amplification. The Step-2b cap on iron ore does the work, and aluminium now reinforces it rather than offsetting it.
Medium 61 — Neutral, below the 65 bar. No amplification, and this is a second, independent reason from the valuation band. A 43% sleeve on a falling price plus a 21% sleeve on a falling price is more than a 36% sleeve on a rising one can carry.
Long 66 — Tailwind, and it does still clear the 65 bar — but it no longer matters. Copper at 87 over three to five years, on a structural deficit and a mine going to 500kt a year, is enough to drag the weighted number over the line even with iron ore at 49. The driver is not what removed the long horizon's STRONG BUY. Two other things did, independently: the base signal is now HOLD on Neutral timing, and HOLD never amplifies in either direction; and even on a BUY base the Full valuation band would bar amplification. So the driver clearing its bar is, this run, a fact with no consequence — and an earlier draft of this report described the valuation band as the single cause, which was true of that draft but is not true of this one.
Against the last report: 64 → 61 on the medium horizon, and roughly 70 → 66 on the long. The headline move is small. The change in composition is not: iron ore's downtrend went from a qualitative caveat to a measured fact, and aluminium moved from the supportive column to the deteriorating one.
Thesis-invalidation floor: iron ore holding below US$85/t — the bottom of the 2027 consensus band — at the same time as copper losing its 200-day average at US$5.87/lb. That combination flips the weighted driver to a net headwind on every horizon and breaks the case. Iron ore is currently 12.0% above that line and copper 12.4% above its.
Driver confidence 55: base 70, less 15 because commodity prices are inherently volatile and forecast reliability is low. The aluminium benchmark caveat is a further reason to treat the 21% sleeve's score as the softest of the three.
Rio does not appear in the macro report's Economic Watchlist Forecast, so I map its GICS sector. XLB (Materials) reads O / SO / SO in the 12 August report — Outperform short, Strong Outperform medium and long, the strongest sector row in the matrix. The Copper / Industrial Metals asset line reads O / O / SO, upgraded from N / N / O in the 30 July report, which is a direct improvement for 36% of Rio's earnings. The regime is described as energy-shock stagflation with Fed cuts priced out and the live debate hike-versus-hold; real assets are favoured in that regime, so a long position here is riding the economic trend rather than fighting it. Stance Trend-Following, pressure Tailwind on all three horizons, conviction 72, up from 68 on the sector and asset-line upgrades. Did it amplify anything? No, and it could not have. Amplification requires a base BUY or SELL — HOLD never amplifies — plus a Tailwind pressure, a driver at or above 65, and a valuation ratio below 1.20×. This run fails two of those independently: the base signal is HOLD on all three horizons, and the ratio is 1.307×. So the sector tailwind, real as it is, left the signal exactly where the fundamental pillars put it. The honest caveat: the same macro report has US demand cracking — July retail sales −0.6%, Michigan sentiment 51 — and China's steel sector, which is what actually sets iron-ore demand, is not in XLB's favour at all.
Source: sector-map · Macro report 2026-08-12
Composition. Materials is a High macro-sensitivity sector, so the timing score is MTF trend 30% + risk-reward 20% + macro 20% + sentiment 15% + catalysts 15%.
Rio went ex the $2.11 interim dividend on the ADR line on 14 August. That single session fell $2.52, from $98.20 to $95.68, so $2.11 of it is the distribution and $0.41 is price — the 14 August bar is very nearly flat once you adjust for it.
That is the whole of what the dividend explains, and an earlier draft of this report overstated it. The session before was real damage with no distribution in it: 12 August $101.22 → 13 August $98.20, a fall of $3.02 or 3.0%. Over the two sessions together the stock went $101.22 → $95.68, down $5.54, of which $2.11 is dividend — leaving $3.43, or 3.4%, of genuine decline. From the 10 August close of $101.91 it is 4.1% ex-dividend. The indicators corroborate that rather than the benign reading: RSI fell 62.0 → 53.2 → 47.1 across those three sessions and the MACD histogram collapsed from +1.00 to +0.24. So the tape did weaken last week. I have scored the daily timeframe accordingly below.
What the dividend does still explain is the moving-average test. The framework requires raw, unadjusted closes for any price-versus-average comparison, so price reads 0.7% under the 50-day line partly because the stock paid out 2.2% in cash on the measurement date. I run the test on raw price because that is the rule and because an adjusted series would shift the averages too — but I do not score the same $2.11 twice.
| Sub-signal | Weight | Read | Score |
|---|---|---|---|
| Multi-timeframe trend | 30% | Monthly uptrend, price far above every monthly average (80); weekly uptrend but under the 20-week average with a negative MACD histogram (70); daily "weakening" — below a falling 50-DMA, above a rising 200-DMA, RSI down 15 points in three sessions (44). The hourly and 15-minute frames are excluded — see the note below | 64 |
| Risk-reward | 20% | The stop at $89.50 is 2.65 ATR away, in the framework's unfavourable band (>2.5 ATR) — base 35. Then the −15 proximity penalty: the weekly level at $96.37 sits 0.72% above the price, inside the 3% window. The analysis tool lists it as weekly support, but price has closed below it, so for an entry test it is overhead resistance — and the framework's rule is two-sided (+15 within 3% of support, −15 within 3% of resistance). Zero was not an available answer and an earlier draft took it. Position-risk 35−15 = 20, blended with relative strength at 50 | 35 |
| Macro overlay | 20% | Sector regime favourable — XLB reads O/SO/SO, the strongest row in the macro report. Fed direction unfavourable — hiking risk live at ~44%. Demand data deteriorating — July retail sales −0.6% against +0.1% expected, Michigan 51.0 against 54.5 | 55 |
| Sentiment | 15% | No grade actions at all in 30 days; the last two were downgrades in Feb–Mar. Hold consensus, 38.7% bullish. News flow quiet and mildly positive — the Tomago power agreement of 12 August is the only company item of substance | 52 |
| Catalysts | 15% | Corrected from an earlier draft. Four high-impact print days fall inside ten: Building Permits and Housing Starts (18 August), the FOMC Minutes (19 August), CB Consumer Confidence (25 August) and Core PCE (26 August). Per the §8 table only two of those are stock-relevant for a diversified miner — the Minutes and Core PCE; the housing and confidence prints are flagged Medium there. So the count that drives the band is two, and the framework's clustering table puts "2–3 catalysts within 14 days" in the noisy band at 20–49, with a 30–50% size reduction. Read the wider way — four inside ten — the band would be 0–19 and timing would fall to ~48: still Neutral, still HOLD, so the reading is generous but immaterial. An earlier draft scored this 60 on a "one clear catalyst" reading that contradicted this report's own §8 table | 45 |
64×0.30 + 35×0.20 + 55×0.20 + 52×0.15 + 45×0.15 = 51.75, rounded to 52.
The hourly and 15-minute series returned by the analysis tool are timestamped 17 August — they consist entirely of the session this report deliberately does not price off, because it had not settled when I pulled the data. Using them in §9 while pricing everything else at the 14 August close would be incoherent, so I reallocate to Monthly 35% / Weekly 30% / Daily 35% — my judgement, not the framework's instruction, since that reallocation rule is written for intraday data being unavailable and here all five frames returned. §9 sets out the test and why it is immaterial. Both frames also returned a volume ratio of zero, which is a second reason not to lean on them.
The disclosure that goes with that, because it cuts against this report: on the unsettled 17 August print of $97.21 the stock is above its 50-day average of roughly $96.20. Had I priced at that session instead, the Technical entry group's trend condition would flip from unmet to met on the price leg, and the timing read would be better than the one below. I price at the last settled close because that is the rule and because it keeps this ticker coherent with the batch's commodity data, which is also dated 14 August — but you should know the very next print went the other way.
52 sits below the Improving threshold of 55, so timing is Neutral (40–54). The Decision Matrix row, quoted as it is actually written, is "High (≥65) | Fair (40–64) | Neutral/Weak | HOLD (watch for valuation entry)" — a single row covering both a Neutral and a Weak timing score, and this name sits on its Neutral leg. That is why the report reads HOLD on medium and long rather than BUY, on all three horizons. The row immediately above it — "High (≥65) | Fair (40–64) | Improving (≥55) | BUY" — is the one three points of timing would reach.
It is close, and you should treat it as close — and one of these numbers IS a judgement of mine, which an earlier draft of this paragraph denied. The catalyst cluster at 45 comes straight off the framework's table. Risk-reward at 35 does not, quite: the >2.5-ATR stop-distance band is mechanical, but applying the −15 rather than the +15 rests on my reading that the weekly level at $96.37 — which the analysis tool itself lists as support, and which §9's table still shows as support — is functionally overhead resistance now that price has closed below it. I think that is right: you do not get an entry-zone bonus for sitting just under a level you have just lost. But it is a call, not a lookup, and it is the most consequential one in this report.
So here is where each branch lands, because you should not have to reverse-engineer it:
| Reading of the $96.37 weekly level | Position-risk | Risk-reward | Timing | Signal on medium & long |
|---|---|---|---|---|
| Overhead resistance, −15 (published) | 20 | 35 | 51.75 → 52 | HOLD — Neutral row |
| Neither bonus nor penalty | 35 | 42.5 | 53.25 → 53 | HOLD — still Neutral |
| Support, +15 (the tool's own label) | 50 | 50 | 54.75 → 55 | BUY — reaches the Improving row |
The middle branch changes nothing. The third one does: take the tool's label at face value and timing computes 54.75, which rounds to the 55 threshold and puts medium and long back to BUY. It sits on a rounding convention at the exact boundary, and on a 50/50 blend of position-risk and relative strength that the framework never specifies — so I would not call it the better answer. I would call it the reason this report is a close-run HOLD rather than a confident one, and the reason the two-point gap in the paragraph above is worth as much of your attention as the headline signal.
Both came out of the audit, and both moved against an earlier draft of this report. That draft scored the catalyst layer 60 and published BUY on medium and long off a timing score of 56 — 60 is outside the band the framework's own clustering table assigns, and the first independent auditor caught it. A second auditor then found that the proximity rule is two-sided and that taking neither the bonus nor the penalty was not an available answer; applying the penalty took timing from 53 to 52. Neither error was self-caught. The scores below are the corrected ones and the signals moved with them.
| Indicator (14 Aug, raw closes) | Value | Read |
|---|---|---|
| Price vs 50-DMA | $95.68 vs $96.36 | 0.7% below, and the 50-DMA is falling (97.65 on 3 Aug → 96.36 on 14 Aug) |
| Price vs 200-DMA | $95.68 vs $90.90 | 5.3% above, and the 200-DMA is rising |
| RSI(14) | 47.1 | Neutral. Was 62.0 on 12 Aug |
| MACD(12,26,9) | 1.286, signal 1.042, histogram +0.244 | Still positive, but the histogram has shrunk from +1.29 on 10 Aug |
| ATR(14) | $2.33 — 2.43% of price | Normal for a large-cap miner |
| 52-week range position | 67.6% ($60.37 – $112.58) | Upper-middle. 15.0% below the 13 May high |
| Beta | 0.66 | Defensive against the index — relevant given the concentration tail |
Measured on dividend-adjusted (total-return) series, which is the correct basis for a performance comparison even though the moving-average tests above use raw price.
| Window | RIO | SPY | XLB | BHP | Read |
|---|---|---|---|---|---|
| 1 month | +7.84% | +3.41% | +3.24% | +7.52% | Beating both benchmarks and level with BHP |
| 3 months | −10.78% | +4.03% | +2.06% | −2.42% | Behind both benchmarks and well behind BHP |
| 6 months | +2.66% | +14.56% | +0.27% | +21.62% | Ahead of the sector, far behind the index and its closest peer |
A month of leadership sitting inside a quarter of lagging. That is what a name recovering from a sharp de-rate looks like, and it is why this sub-signal scores 50 rather than either extreme. The comparison against BHP is the more informative one: same two commodities, same Pilbara, and Rio has been the weaker share over three and six months. Vale, the purest iron-ore read of the three, is −15.5% over three months — the market is marking down iron-ore exposure specifically, not mining generally.
| Date | Event | Impact | Forecast | Previous | Relevant? | Why |
|---|---|---|---|---|---|---|
| 2026-08-18 | Building Permits / Housing Starts (Jul) | High | 1.37m / 1.35m | 1.374m / 1.427m | ⚠ Medium | US construction demand — a steel and aluminium end-market read |
| 2026-08-19 | FOMC Minutes | High | — | — | ✅ Yes | The binding event. ~44% implied odds of a September hike after three hawkish July dissents. A hawkish read lifts the real rate inside the 9.13% discount rate and the dollar with it. Fires the §8 WAIT override |
| 2026-08-25 | CB Consumer Confidence (Aug) | High | — | 90.8 | ⚠ Medium | Follow-through on the 14 August Michigan collapse |
| 2026-08-26 | Core PCE Price Index MoM (Jul) | High | 0.3% | 0.1% | ✅ Yes | The Fed's preferred gauge. A 0.3% print hardens the hike case |
| 2026-09-01 | ISM Manufacturing PMI (Aug) | High | 55.0 | 55.6 | ✅ Yes | The most direct global-industrial-demand read for a diversified miner |
| 2026-09-16 | Fed Interest Rate Decision + Projections | High | — | 3.75% | ✅ Yes | The resolution of tail 4. Beyond this report's next update |
| Date | Event | Actual | Forecast | Surprise | Impact |
|---|---|---|---|---|---|
| 2026-08-12 | CPI YoY (Jul) | 3.4% | 3.4% | In line | Neutral — inflation is sticky but not accelerating |
| 2026-08-12 | Core CPI YoY (Jul) | 2.5% | 2.5% | In line | Mildly helpful — core disinflating from 2.6% |
| 2026-08-13 | Producer Price Index MoM (Jul) | 0.0% | 0.2% | Below | Helpful — pipeline cost pressure easing |
| 2026-08-14 | Retail Sales MoM (Jul) | −0.6% | +0.1% | Well below | Negative. A demand-side crack; industrial metals feel a consumer contraction with a lag |
| 2026-08-14 | Michigan Consumer Sentiment (Aug) | 51.0 | 54.5 | Well below | Negative. Corroborates the retail-sales miss rather than offsetting it |
| 2026-08-11 | Existing Home Sales (Jul) | 4.06m | 4.05m | In line | Neutral |
Materials carries High macro sensitivity, which makes this section binding rather than informational. The FOMC Minutes on 19 August are high-impact and inside three trading days, and that combination fires the §8 WAIT-FOR-EVENT override on the short horizon regardless of composite score. It is also why the next update is scheduled for 20 August rather than the default fortnight.
The last week's data cut both ways and I am not going to pretend otherwise. Inflation came in on consensus and PPI came in soft, which is the helpful half. The unhelpful half is larger: retail sales fell 0.6% against an expected rise, and Michigan sentiment dropped to 51.0 against a 54.5 forecast, from a prior reading of 55.2 (get_economic_calendar previous field). For a company selling iron ore, copper and aluminium into global industrial demand, two consecutive consumer misses are a genuine headwind, and they landed on the same day the stock went ex-dividend. Confidence on the Timing pillar takes the standard 10-point penalty for a high-impact release inside seven days in a high-sensitivity sector.
| Timeframe | Trend | Direction | RSI | MACD | Key S/R | Breakout | Vol |
|---|---|---|---|---|---|---|---|
| Monthly | Uptrend ↑ | Bullish | 63.5 | +9.27, rising | S 80.5 / R 101.5, 112.6 | Resistance breakout | 0.37× |
| Weekly | Uptrend ↑ | Bullish | 53.5 | +2.00, histogram −1.06 | S 96.4, 86.7 / R 101.5 | Resistance breakout | 0.18× |
| Daily | Weakening → | Neutral | 47.1 | +1.29, histogram +0.24 and fading | S 93.3, 92.5, 90.0 / R 101.8, 102.8 · 50-DMA 96.36 | — | 0.86× |
| Hourly (excluded) | Strong downtrend ↓ | Bearish | 46.9 | −0.13, histogram turning up | S 95.2, 95.6 / R 97.2, 98.4 | — | 0.00× |
| 15-min (excluded) | Recovering → | Neutral | 47.6 | +0.13, flat | S 95.6, 95.7 / R 96.9, 97.2 | — | 0.00× |
| Confluence: Mixed — higher timeframes up, daily weakening · MTF Score 64 on three frames (the tool returns "bullish" on five — see note) | |||||||
Computed MTF score 64 = monthly 80×0.35 + weekly 70×0.30 + daily 44×0.35, on the three-frame weighting the framework specifies when the intraday frames are not used. Declare the deviation: that rule is written for intraday data being unavailable, and here all five frames returned — I am excluding two of them on contamination grounds instead, which is my judgement and not the framework's instruction. It also happens to raise the score, so it needs a test rather than an assertion, and it needs to be immaterial. It is: on the original five-frame weighting MTF is 58.58 → 59, timing is 50.12 → 50, and every signal in this report is unchanged — 52 and 50 are both Neutral (40–54), the same Decision Matrix row. Be straight about the size of it: the exclusion is worth five MTF points (64 against 59) and two timing points (52 against 50), not the three and one an earlier draft implied. That draft printed a five-frame MTF of 61, which is not reachable from the sub-scores disclosed above — it silently carried the withdrawn daily score of 50 instead of the 44 this report actually uses. Recomputed on the real inputs (monthly 80, weekly 70, daily 44, hourly 12, 15-min 58 at 30/25/25/12/8): 24.00 + 17.50 + 11.00 + 1.44 + 4.64 = 58.58. The deviation is bigger than I said, and it still does not change a signal. The hourly and 15-minute rows are shown above but excluded from the score: both are timestamped 17 August — entirely the unsettled session this report does not price off — and both returned a volume ratio of 0.00. I have left them visible rather than deleting them, because an excluded row you can see is more honest than one you cannot.
Why the monthly and weekly frames are kept, since the tool also stamped those with the 17 August print — and this raises the score, so it deserves a test rather than an assertion. The test is whether the trend classification changes between the two prices. It does not, on either frame. Monthly: the highest monthly average is the 20-period EMA at $83.44, and both $95.68 and $97.21 sit far above it, so the frame reads uptrend either way. Weekly: the 20-week SMA is $98.77, and both prices sit below it while both sit above the 50-week SMA at $87.15 — again the same reading either way. The hourly and 15-minute frames fail that test for a different reason: they do not merely carry the unsettled print as a final value, they consist of nothing but that session, so there is no version of them that describes the period this report actually prices.
The daily frame is scored 44, mid-band for "weakening", not the 50 an earlier draft carried. The independent audit was right that the 13 August session — $101.22 → $98.20, 3.0%, with no dividend in it — was real damage, and RSI falling 62.0 → 47.1 with the MACD histogram collapsing from +1.00 to +0.24 across three sessions corroborates it.
The textbook read is a higher-timeframe uptrend with a short-term pullback — monthly and weekly both in uptrends with resistance breakouts, the daily consolidating just under a 50-day line it lost partly to a dividend. What stops that being a clean buy-the-dip is the 50-day line itself: it is now falling, from $97.65 on 3 August to $96.36 on 14 August, having rolled over after the May high at $112.58. A pullback into a rising average is a dip; a pullback into a falling one is a lower high until proven otherwise.
Levels that matter. The reclaim trigger is a daily close above $96.36 on volume above 1.5× the 20-day average — only 0.7% away, which is why the Technical entry path is close rather than remote. The buy-the-dip zone is $92.50–93.30 (the daily support cluster). Below that, $90.90 is the rising 200-day average and the last line that keeps the structure intact.
NYSE:RIO daily closes, 2 February – 14 August 2026 (135 sessions), raw unadjusted prices, with the 50-day simple moving average in orange. The May peak at $112.58, the July trough at $83.15, the recovery through early August to $101.91, and the 12–14 August fall from $101.22 to $95.68 — $5.54, of which $2.11 was the interim dividend going ex on 14 August and $3.43 was price. Final close $95.68 against a 50-DMA of $96.36.
12-month path, +30.6% from $95.68. Copper extends on the structural deficit while Oyu Tolgoi's ramp is visibly ahead of the 2028–2036 plateau schedule; iron ore stabilises in the $95–100 band as China stimulates rather than contracts; Simandou reaches the top of its 5–10Mt 2026 sales guidance and the market starts paying for the 60Mtpa capacity behind it; the Fed holds in September and the discount rate falls rather than rises. On those inputs mid-cycle earnings move toward the US$17.35bn the price already implies, the NAV rises with them, and the shares re-rate to the top of the analyst range — $120 at FMP, $125 at Yahoo. Falsified by: copper losing $6.35 (its 50-day line) or Simandou sales guidance being cut.
12-month path, +7.7% from $95.68. The most likely outcome is that the split in the commodity basket persists rather than resolving. Copper stays firm, iron ore drifts down the consensus path toward US$90 as Simandou volume lands, aluminium normalises off its tariff-inflated peak, and group EBITDA holds roughly flat around the US$27bn consensus. The return is then mostly the 4.86% dividend plus modest volume growth, and the shares drift up toward but not through the $105.50 consensus. This is a hold-and-be-paid outcome, not a re-rating — which is consistent with both a Full-band valuation and a HOLD signal: the base case is positive and the report still says HOLD, because a 7.7% drift plus a dividend is not what the framework calls an entry. Falsified by: either tail below arriving.
12-month path, −20.6% from $95.68 — and this is a live risk, not a distant tail. Three routes, and they are correlated. (1) Iron ore breaks $85 as Simandou volume meets a Chinese steel market contracting faster than expected — the price is already at the 2026 consensus, only 12.0% above the 2027 consensus floor, and below both moving averages. (2) Copper mean-reverts on a global growth scare — July retail sales at −0.6% and Michigan at 51 are exactly the demand-side crack that does it, and copper is 12.4% above its own 200-day line, so there is room to fall before anything structural breaks. (3) The Fed hikes in September (~44% implied): a higher real rate cuts the NAV directly and a stronger dollar hits all four commodities at once. A fourth, lower-probability route is Hormuz escalating past $100 Brent, which raises Rio's diesel, shipping and smelter energy costs while crushing the demand for what it sells. On any two of these, group EBITDA compresses toward US$22bn and the shares trade back to roughly the NAV plus a small premium — about $76. The bear is 25% weighted, not 20%, and that is a deliberate increase from the last report.
Probability-weighted 12-month value: 0.25 × $125 + 0.50 × $103 + 0.25 × $76 = $101.75, or +6.3% from $95.68 before the 4.86% dividend. That is a total return in the low double digits for a name whose NAV, discounted at 9.13% over a 20-year mine life, sits at $73.23. Both statements are true at once, and the gap between them is the difference between what the market will pay and what the cash flows are worth at that required return. It is also why the framework reads HOLD rather than BUY: a positive base case is not the same thing as an entry.
Forecast: Rule Forecast — when each condition is likely to be met.
Technical group — days to two weeks, Moderate confidence. Price needs $96.36 and sits at $95.68, a gap of 0.7%. Against a 14-day ATR of $2.33 that is well inside a single session's range, and the 50-day line is falling toward the price at roughly $0.14 a day, so the two converge from both directions. The volume condition is the harder half — 14 August traded 0.86× the 20-day average and Rio has not printed 1.5× since the 29 July results — which makes this catalyst-dependent: the FOMC Minutes on 19 August are the nearest event capable of producing the volume. Confidence is Moderate rather than High because a hawkish read moves the price the wrong way, and because reclaiming a falling average is a weaker signal than reclaiming a rising one. One disclosure that cuts against this report: on the unsettled 17 August print of $97.21 the stock is already above its 50-day average, so on that session the price leg of this condition would be met. I price at the last settled close, but you should know the next print went the other way.
The pullback branch — $92.50–93.30, Moderate. That is 2.5–3.3% below, just over one ATR. On the current tape it is at least as reachable as the breakout, and it is the better entry of the two: a tested higher low off that cluster with the 200-day at $90.90 underneath would satisfy the Technical group on the branch the framework prefers.
Fundamental group — Unlikely without a material fall or a materially better NAV. Price would need to reach $73.23, which is 23.5% below and below every scenario in §11 except a deep bear overshoot. The realistic route is the other one: the NAV rising to meet the price. It would take consensus mid-cycle earnings moving from US$13.28bn toward US$17.35bn — which is what an Oyu Tolgoi ramp ahead of schedule would do — or a weighted mine life nearer 30 years. Neither is a next-quarter event. Watch the Q3 operations review in mid-October for the first evidence either way.
Catalyst group — Unlikely before 24 February 2027. There is no earnings event to produce a >5% move until FY-2026 results. The mid-October Q3 operations review reports volumes only and rarely moves a diversified major 5% in a day.
The honest summary: zero of three paths are open, so the ladder reads Wait. The nearest path is Technical and it is close — but it is gated behind the same FOMC Minutes that put the short horizon on WAIT, so the sequencing is: see the minutes, then see whether the 50-day line is reclaimed on real volume.
Forecast: Strongest live trigger: none → recommended action Hold.
Stop-loss — Unlikely in four to six weeks. $89.50 is 6.5% below, 2.65 ATR, and below the rising 200-day average. Getting there needs a genuine break, not drift.
Thesis invalidation — the one to watch, and it is the nearer of the two. The iron-ore leg is only 12.0% above its line and is already below both its moving averages with all three momentum windows negative. Consensus itself has iron ore at US$85–90 for 2027, which means the forecast path touches the invalidation level inside eighteen months. The reason this is not already an exit is the conjunction: copper is 12.4% above its own line and in a clean uptrend, and the rule requires both. If copper turns, this moves quickly.
Profit target — Unlikely. $113 needs +18.1% with RSI above 70; RSI is 47.1 and the 50-day average is falling.
What you are risking. Zero of three entry paths are open, so you would be buying without a mechanical reason to. Specifically: you would be paying 1.307× a NAV discounted at the framework's own required return; buying 0.7% under a falling 50-day average rather than a rising one; and buying two trading days before the FOMC Minutes, with ~44% implied odds of a September hike — which is the single event most capable of cutting both the NAV and the commodity prices at once. Underneath that sits the structural risk: 43% of first-half earnings come from a commodity below both its moving averages whose consensus 2027 price is 10% below spot, and a further 20% from one that has fallen 9.8% in eight weeks. The bear case is $76, and I have weighted it at 25%.
What you are gaining. You start collecting a 4.86% dividend immediately, from a payout that was just raised 43% at an unchanged 50% ratio — the earnings did the work, not the policy. You own 36% exposure to the cleanest uptrend in the metals complex, in a business whose copper EBITDA rose 84% in the half and whose flagship copper mine is heading to roughly 500kt a year. You own the optionality outside the NAV entirely for free: Simandou's ramp beyond 5–10Mt, Rhodes Ridge, Resolution, the lithium book. And the balance sheet means you are not exposed to the refinancing risk that would normally accompany this much capex — 0.47× net debt to EBITDA, 17.8× interest cover. Risk-reward to the base case is about 1.2:1; to the probability-weighted value of $101.75 it is roughly 1:1.
The read: waiting materially improves this deal, and the wait is short. Two trading days gets you past the minutes; a further 0.7% gets you a 50-DMA reclaim on volume, which opens the Technical path; a 2.5–3.3% dip into $92.50–93.30 opens it on the better branch. There is no urgency here that justifies acting ahead of a dated, high-impact event in a High-sensitivity sector, with two more inside a fortnight behind it. This is the same conclusion the signal reaches by a different route: HOLD on all three horizons is the framework saying good business, wrong entry. That is an assessment of the entry, not a verdict on the business.
What you are giving up. The base case is $103 and the probability-weighted value is $101.75, both above today's price, and the dividend adds 4.86% on top while you wait. You would be selling a business with a 17% underlying ROCE, first-quartile cost positions in its two largest sleeves, and a copper division that grew EBITDA 84% in a half. You would also be selling below every published analyst target except the $83.50 low. And you would be selling the optionality — the Oyu Tolgoi plateau, Simandou's capacity beyond the current ramp, Rhodes Ridge — none of which is in the NAV you would be crystallising.
What you are protecting. No exit rule is live. Not one. The stop is 6.5% below, thesis invalidation needs iron ore under $85 and copper under $5.87, and the profit target needs +18.1% with RSI above 70. What you would be protecting is a judgement, not a trigger: that 63% of earnings sit on falling commodity prices, that the valuation is in the Full band on the framework's own mining lens, and that a September hike would compress the multiple and the commodity deck together.
The read: there is no mechanical reason to sell. This is a hold, and this run the signal says so on every horizon. The framework distinguishes between "not a good entry today" and "a reason to exit", and this name is firmly the first — a HOLD here means sit, not sell. If you already own it, the dividend is doing the work while the commodity split resolves one way or the other.
Position sizing is not computed as a portfolio percentage — no allocation or portfolio role was specified for this name, and the framework's instruction is to omit sizing rather than invent a default. What I can give you is the constraint set.
The §12 Conviction Ladder reads Wait — zero of three entry paths open, which is consistent with a HOLD on every horizon — which carries a ladder factor of 0×. In the sizing formula that is not "a small position", it is "no entry edge today; watch the levels instead". The levels are a daily close above $96.36 on volume above 1.5×, or a tested higher low in $92.50–93.30.
Volatility context for anyone already holding. ATR(14) is $2.33, or 2.43% of price — an ordinary daily range for a large-cap miner. Beta is 0.66, so Rio moves about two-thirds as much as the index; a 5% position behaves roughly like a 3.3% position in market-risk terms, which is unusual for a cyclical and is a genuine argument for holding it through macro noise. The 52-week range is $60.37 to $112.58 — an 86% spread, and the drawdown from the May high to the July low was 26%. That is what you are signing up for. Catalyst clustering scores 45, which is the framework's noisy band and carries an explicit 30–50% size reduction for anyone entering here — two high-impact events inside a fortnight is compounded path risk even when the directional view is right. An earlier draft of this section said the score was 60 and that no reduction applied; 60 was the withdrawn number, and carrying it here inverted a framework requirement in the one section whose job is sizing. The 19 August minutes are also a reason to tighten stops rather than add.
{
"ticker": "RIO",
"company": "Rio Tinto Group",
"brand": "Rio Tinto",
"currency": "USD",
"reporting_currency": "USD",
"exchange": "NYSE",
"exchange_ticker": "NYSE:RIO",
"isin": "US7672041008",
"api_ticker": "RIO",
"finder_ticker": "RIO",
"finder_exchange": "\ud83c\uddfa\ud83c\uddf8 NYSE",
"analysis_status": "on-going",
"gics_sector": "Materials",
"sector": "Materials",
"section": "Diversified Metals & Mining",
"country": "United States (ADR; UK-domiciled group)",
"lifecycle_stage": "mature_cashcow_diversified_miner",
"date": "2026-08-17",
"version": "v6",
"user_horizon": null,
"user_allocation_pct": null,
"portfolio_role": null,
"price_at_rating": 95.68,
"price_asof": "2026-08-14 settled close on the NYSE ADR line. The 17 August session was still in progress at pull time (last $97.21, day range $95.88-$97.29 on 2.02m shares against a 2.68m average), and no claim in this report uses it. This also keeps the ticker coherent with the batch's settled commodity pull, which is dated 2026-08-14.",
"eps_trailing": 7.37,
"eps_trailing_basis": "Diluted, trailing twelve months = H1-2026 $4.06 + H2-2025 $3.31. Rio reports half-yearly, so FMP's 'Q2' period is the six months to 30 June. Basic TTM is $7.43. Yahoo's 7.50 is not used; nor is its trailing_pe of 12.96, which is computed off the unsettled 17 Aug price.",
"trailing_pe": 12.98,
"shares_out_bn": 1.627,
"shares_basis": "Combined dual-listed company count (Rio Tinto plc + Rio Tinto Limited). Reconciles: market cap $158.151bn / $97.21 = 1,626.9m, against FMP weighted-average basic 1,625.8m. The NYSE ADR is 1:1 with a Rio Tinto plc ordinary share, so no ADR-ratio adjustment applies.",
"signal_short": "WAIT",
"signal_medium": "HOLD",
"signal_long": "HOLD",
"primary_signal": "HOLD",
"composite_short": 56,
"composite_medium": 59,
"composite_long": 65,
"quality_score": 79,
"valuation_score": 46,
"timing_score": 52,
"driver_score": 61,
"driver_score_short": 56,
"driver_score_medium": 61,
"driver_score_long": 66,
"driver_label": "Neutral (medium 61) - short 56 Neutral, long 66 Tailwind",
"moat_score": 58,
"quality_detail": {
"industry_benchmark_name": "Cost-curve position (mining)",
"industry_benchmark_value": "First quartile in iron ore and copper; mid-curve in aluminium",
"industry_benchmark_score": 84,
"moat_score": 58,
"moat_pricing_power": 32,
"moat_network": 50,
"moat_switching": 50,
"moat_cost_advantage": 84,
"moat_intangibles": 72,
"roic_percentile_vs_peers": 78,
"capital_allocation": 80,
"management_skin_in_game": 55,
"underlying_ebitda_h1_2026_usd_m": 14826,
"underlying_ebitda_change_pct": 28,
"segment_ebitda_iron_ore_usd_bn": 6.8,
"segment_ebitda_copper_usd_bn": 5.7,
"segment_ebitda_alu_lithium_usd_bn": 3.3,
"segment_ebitda_total_usd_bn": 15.8,
"segment_weight_iron_ore_pct": 43,
"segment_weight_copper_pct": 36,
"segment_weight_alu_lithium_pct": 21,
"segment_weights_source": "Rio Tinto 2026 half year results, 29 Jul 2026 - underlying EBITDA by product group",
"fcf_h1_2026_usd_m": 3834,
"net_debt_usd_m": 14061,
"net_debt_source": "Rio Tinto H1 2026 release, 29 Jul 2026 (NOT FMP totalDebt, which is lease-inclusive)",
"underlying_roce_pct": 17,
"capital_investment_h1_2026_usd_m": 5037,
"capex_guidance": "Up to $11bn in 2026 and 2027, ~$10bn from 2028 in real 2025 terms; sustaining ~$4bn/yr (CFO, H1 2026 call); growth $2-3bn/yr (Fitch, 15 May 2026)",
"productivity_gains_h1_usd_m": 870,
"dividend_interim_2026_us_cents": 211.0,
"shares_out_basic_m": 1625.8
},
"valuation_detail": {
"nav_basis": "P/NAV - the Materials/Miners primary multiple per SKILL L570. NAV = present value of consensus attributable net income, held flat in nominal terms over a 20-year weighted mine life, discounted at the framework's own required return of 9.13%. Net income is the base rather than a cash-flow build because D&A of $8.1bn annualised is almost exactly the sustaining ($4bn) plus replacement (~$4bn) capital needed to hold volumes flat - so net income already charges the right capital and the sustaining-vs-growth split does not have to be guessed. The remaining $2-3bn/yr of growth capex is excluded and treated as embedded optionality, so nothing is double-counted. Because the base is net income (already after interest), net debt sits inside it and is not deducted again.",
"nav_earnings_base_usd_bn": 13.279,
"nav_earnings_base_source": "Mean of consensus attributable net income FY2026-FY2030 from get_analyst_estimates: 13.7095, 13.8480, 13.9186, 13.6008, 11.3191. The five-year mean is used rather than the FY2026 point because consensus itself sees earnings flat to 2029 then falling 17% into 2030, and capitalising FY2026 alone would capitalise a copper price at cycle highs.",
"nav_mine_life_years": 20,
"nav_mine_life_basis": "ASSUMPTION, not a sourced group reserve life - flagged as the report's largest single swing factor. Anchored on the asset lives I could source this run: Oyu Tolgoi ~500kt/yr over 2028-2036 with reserves beyond, Rincon a stated 40-year life, Simandou a multi-decade orebody at 60Mtpa, Kennecott to 2032-33, and a Pilbara kept alive for 60 years by exactly the replacement capital this model already charges. Paired deliberately with FLAT NOMINAL earnings, which is a ~2%/yr real decline - the offset to a 43% sleeve facing a shrinking end market. Web search was unavailable this run; a group reserve-life figure could not be obtained.",
"nav_annuity_factor": 9.0446,
"nav_total_usd_bn": 120.1,
"nav_shares_diluted_bn": 1.640167,
"nav_shares_basis": "Rio's own H1-2026 weighted-average DILUTED count (1,640.167m), not the 1.627bn implied by market cap - the market-cap figure is struck at the unsettled 17 Aug price, and a diluted count is the right partner for an earnings numerator. Changed after independent audit. Alternatives: 1.627bn -> NAV $73.82, ratio 1.296; consensus-EPS-implied 1.6435bn -> NAV $73.08, ratio 1.309. All three land in the FULL band.",
"nav_per_share_usd": 73.23,
"nav_sensitivity": "At 1.640167bn diluted shares. Mine life 15yr -> NAV $64.76, P/NAV 1.477 = EXPENSIVE (Gate 3 would fire). 20yr -> $73.23, 1.307 = FULL (used). 25yr -> $78.70, 1.216 = FULL. 30yr -> $82.23, 1.164 = FAIR. PERPETUITY, i.e. the SKILL's literal two-stage formula at g_near=g_term=0 -> factor 10.9529, NAV $88.68, 1.079 = FAIR. The sourced asset lives span roughly 20-25 years and BOTH ends read Full, which is the defence of 20; the band only breaks outside a range the evidence does not support. Earnings-base sensitivity at 20yr: a 9% cut still reads Full. Risk-free sensitivity immaterial (4.63/4.68/4.70% all give 1.31).",
"nav_formula_deviation": "DECLARED, after independent audit. The SKILL's general anchor is a two-stage formula ending in a perpetuity (L451-453). On this report's own recorded inputs (r 9.13%, g_near 0, g_term 0) that formula gives a factor of 10.9529, NAV $88.68 and a ratio of 1.079 = the FAIR band, where amplification would be permitted. This report uses a 20-year TRUNCATION instead, factor 9.0446. The reason is that a perpetuity is the wrong shape for a depleting asset - an orebody is consumed by mining it, which is why L490 separately specifies P/NAV over a mine plan for miners. But the truncation is an INSTANTIATION CHOICE, not the framework's arithmetic, and it is the single choice that sets the band. An earlier draft described the result as 'a NAV struck at the framework's own required return', which overstated it: r is the framework's, the 20-year horizon is mine.",
"nav_guardrail_applied_manually": "The SKILL's Materials guardrail is P/NAV >= 1.5x (EV/EBITDA >= 8x). Actual P/NAV 1.307x and EV/EBITDA 6.30x on FY2026E - NEITHER breaches. Recorded explicitly because scripts/lint_report.py carries the Materials line as an EV/EBITDA of 8.0 and cannot evaluate a P/NAV basis, so it emits FW-GUARDRAIL-SKIP rather than running the arm. The arm was run by hand and is clear.",
"implied_midcycle_earnings_usd_bn": 17.35,
"implied_note": "At $95.68 the price implies mid-cycle attributable earnings of ~$17.35bn against the consensus five-year mean of $13.279bn - a premium of 30.7%. The market is pricing a copper-led step-up (Oyu Tolgoi to ~500kt/yr) that the sell-side has not yet put in its numbers.",
"ev_ebitda_fy2026e": 6.3,
"ev_ebitda_ttm": 7.27,
"ev_ebitda_provider": 7.08,
"ev_usd_bn": 169.732,
"ev_basis": "REBUILT after independent audit. Market cap at the price of record (1.627bn shares outstanding x $95.68 = $155.671bn) PLUS Rio's own reported net debt of $14.061bn = $169.732bn. An earlier draft carried the provider EV of $177.628bn, which (a) is struck at the unsettled 17 Aug price of $97.21 - falsifying this report's own claim that nothing uses that price - and (b) does not reconcile to the report's inputs, almost certainly because it carries lease-inclusive debt and/or non-controlling interests, i.e. the very input section 15 says was deliberately not used. This basis excludes leases and NCI and says so. Both corrections make the stock look CHEAPER, and neither lens is the anchor, so no signal moves.",
"fcf_yield": 4.52,
"fcf_yield_basis": "H1 2026 FCF $3,834m annualised to $7.668bn over EV $169.732bn. After all capex including growth.",
"forward_pe_fy2027": 11.5,
"pb": 2.36,
"pb_basis": "Price $95.68 over attributable shareholders' equity of $40.47/share. FMP's 2.385x uses book including non-controlling interests ($44.33/share); Yahoo's 2.414x is computed off the unsettled 17 Aug price.",
"dividend_yield_pct": 4.86,
"historical_valuation_decile": 6,
"consensus_eps_path": "FY2026 $8.34 -> FY2027 $8.30 -> FY2028 $8.13 -> FY2029 $8.30 -> FY2030 $6.91",
"optionality_tilt_applied": 2,
"optionality_note": "+2 within the Full band's 40-49 range, reduced from +4 after independent audit: the NAV excludes the growth capex AND the volumes it buys, so crediting the pipeline's upside while the spending never appears as an outflow is the generous side of the ledger. Simandou beyond the 5-10Mt 2026 sales guidance against 60Mtpa built capacity; Oyu Tolgoi to the ~500kt/yr 2028-2036 plateau; Rhodes Ridge (first ore ~2030); lithium (Rincon 60ktpa/40yr, Nemaska, Sal de Vida); Resolution and Winu. All sit outside the NAV because the NAV charges only the capital needed to hold volumes flat. Counterweight stated in-report: Simandou's own volume is part of what is depressing the iron-ore price.",
"prior_basis_withdrawn": "The 31 July report anchored on clean trailing P/E 13.5x against a guardrail-capped warranted 15.0x, ratio 0.90, band 'fair'. That basis is WITHDRAWN, not merely updated: SKILL L570 gives P/NAV as the primary multiple for a producing miner and demotes an earnings multiple to a cross-check. On today's numbers the withdrawn basis would read 12.98/15.0 = 0.87, still 'fair' - so the band change from fair to full is a METHODOLOGY correction, not a market re-rating. The shares moved -1.2%."
},
"timing_detail": {
"mtf_confluence": 64,
"mtf_tool_headline": "bullish (tool); scored 64 on the framework L687 three-frame reallocation (Monthly 35 / Weekly 30 / Daily 35 = 80x.35 + 70x.30 + 44x.35). The hourly and 15-min frames are EXCLUDED: both are timestamped 17 Aug, the unsettled session this report does not price off, and both returned volume_ratio 0.00.",
"risk_reward_score": 35,
"position_risk_score": 20,
"position_risk_basis": "Stop $89.50 is 2.65 ATR away = the >2.5-ATR unfavourable band (base 35), THEN the -15 proximity penalty: the weekly level $96.37 sits 0.72% ABOVE the price, inside the 3% window. The MTF tool lists it as weekly SUPPORT, but price closed below it, so for an entry test it is overhead RESISTANCE and SKILL L818-820 is two-sided (+15 near support / -15 near resistance). Zero was not an available answer; an earlier draft took zero and round-2 audit caught it. 35-15 = 20, blended with relative strength 50 -> risk_reward 35.",
"relative_strength_score": 50,
"sentiment_score": 52,
"macro_overlay_score": 55,
"catalyst_clustering_score": 45,
"dynamic_macro_weight": 0.2,
"rsi14": 47.14,
"macd": 1.286,
"macd_signal": 1.042,
"macd_hist": 0.244,
"sma50": 96.36,
"sma50_slope": "FALLING - 97.65 on 3 Aug to 96.36 on 14 Aug",
"sma200": 90.9,
"sma200_slope": "RISING - 89.53 on 3 Aug to 90.90 on 14 Aug",
"atr14": 2.327,
"atr_pct": 2.43,
"beta": 0.66,
"range_52w_position_pct": 67.6,
"high_52w": 112.58,
"low_52w": 60.37,
"ex_dividend_note": "CORRECTED after independent audit - an earlier draft overstated what the dividend explained. The stock went ex the $2.11 interim dividend on the ADR line on 14 Aug 2026, and that explains the 14 Aug SESSION only: $98.20 -> $95.68 is -$2.52, of which $2.11 is distribution and $0.41 is price. It does NOT explain the session before, which carried no dividend: 12 Aug $101.22 -> 13 Aug $98.20 = -$3.02 / -3.0%. Over 12-14 Aug the stock fell $101.22 -> $95.68 = -$5.54, of which $2.11 is dividend, leaving -$3.43 / -3.4% of GENUINE decline; from the 10 Aug close of $101.91 it is -4.1% ex-dividend. Corroborated by the indicators over the same three sessions: RSI 62.0 -> 53.2 -> 47.1 and MACD histogram +1.00 -> +0.66 -> +0.24. The earlier draft's claim that 'the tape did not break down last week' was not supportable and has been withdrawn; the daily MTF sub-score was re-scored 50 -> 44 as a result. What the dividend DOES still explain is the moving-average test, which uses RAW closes per the price-data hygiene rule - so price reads 0.7% below the 50-DMA partly because 2.2% was paid out on the measurement date. The same $2.11 is not scored twice.",
"threshold_fragility": "Timing 52 sits BELOW the Improving threshold (55), so timing is Neutral (40-54) and the Decision Matrix row - quoted as written - is 'High (>=65) | Fair (40-64) | Neutral/Weak | HOLD (watch for valuation entry)' (SKILL L1274), on its NEUTRAL leg, on all three horizons. Three points would return medium and long to BUY, so this is genuinely close and is disclosed as close in section 7. Of the two sub-scores doing the work, catalysts 45 comes straight off the framework's clustering table, but risk-reward 35 does NOT reduce to a lookup: the >2.5-ATR stop-distance band is mechanical, while applying the -15 rather than the +15 rests on reading the $96.37 weekly level - which the MTF tool itself labels SUPPORT - as overhead RESISTANCE now that price has closed below it. That is a judgement, and the single most consequential one in the report; an earlier draft of this field and of section 7 claimed neither number was chosen, which was wrong. Section 7 now carries the three-branch sensitivity: -15 as published -> timing 52 -> HOLD; no adjustment -> 53 -> HOLD; +15 on the tool's own label -> 54.75 -> 55, which REACHES the Improving row and would put medium and long back to BUY. SIX audit rounds have now moved this pillar or this field, and no error was self-caught: round 1 found catalysts scored 60, outside the band its own section-8 table implies, which had published BUY on medium and long off a timing of 56; round 2 found the proximity rule is two-sided and that taking neither bonus nor penalty was not available, taking timing 53 -> 52; round 4 found this field still asserting the withdrawn 'rather than judgement' claim and the withdrawn risk-reward of 42; round 5 found the five-frame immateriality figure carried the WITHDRAWN daily sub-score of 50, correcting a published timing number from 51 to 50 at three sites, and found the branch table showing 53.15 where 42.5 x 0.20 gives 53.25. round 6 then found THIS SENTENCE still saying FOUR - the third time this field has been graded for being one round behind, which is why the audit-trail fields are now swept as a CLASS at the close of every round rather than per-finding. And round 6 is itself in this count: correcting the sentence for round 5 made it stale for round 6 the moment it was written, which is the recursion the class sweep exists to close. It terminates when a round finds nothing."
},
"val_band": "full",
"actual_multiple": 1.307,
"warranted_multiple": 1.0,
"warranted_ratio": 1.307,
"val_multiple_basis": "P/NAV - the Materials/Miners primary multiple per SKILL L570 - with NAV discounted at the framework's 9.13% required return over a 20-year mine life. The DISCOUNT RATE is the framework's; the 20-year truncation is this analyst's mining instantiation and is declared as a deviation in nav_formula_deviation. Warranted P/NAV is 1.0 by construction: a NAV discounted at the required return IS the warranted equity value, so the warranted multiple of it is one. No P/E is used as the anchor; clean trailing P/E 12.98x appears only as a tertiary cross-check.",
"discount_rate_r": 9.13,
"risk_free_10y": 4.63,
"risk_free_source": "FRED DGS10 at 2026-08-13 = 4.63%, the batch's stated risk-free input. The 14 Aug print was 4.68% and the 12 Aug macro report carries 4.70%; both run as sensitivities in section 4 and raise it to 1.311 and 1.313 respectively - a higher risk-free cuts the NAV and RAISES P/NAV. The 4.63% figure is NOT attributed to the macro report.",
"g_near": 0.0,
"g_term": 0.0,
"anchor_growth_basis": "Both zero, deliberately. A mining NAV discounts a finite mine plan at a flat deck; there is no two-stage growth to model, and inserting one would be the exact 'feed the hype growth' move the framework bans. The flat NOMINAL stream is itself a ~2%/yr real decline, which is the conservatism that pairs with the 20-year life. Growth from Simandou, Oyu Tolgoi and lithium sits outside the NAV as embedded optionality.",
"clean_pe": 12.98,
"clean_peg": 0.75,
"clean_pe_note": "Reported and clean are the SAME number here and I say so rather than manufacturing a difference: non-operating income was $612m = 9.2% of NET income ($6,663m), or 6.6% of pre-tax ($9,311m); step 7b's line is ~15% of NET income, which both bases clear. Stated on the net-income basis here because that is what the threshold and the calibration key use. Below the line at which step 7b forces a restatement. PEG 0.75 on the FMP trailing basis flatters the name - consensus EPS is flat to 2029 and then falls 17% into 2030, so there is no durable growth in the earnings stream the multiple capitalises.",
"nonop_pct_of_net_income": 9,
"nonop_basis_note": "9.2% = $612m of non-operating items over $6,663m of NET income, which is the basis the field name states. An earlier draft stored 7, which was the PRE-TAX percentage (612/9,311 = 6.6%) - a value on a different basis from the one the key declares. Both clear the ~15% line at which step 7b forces a clean-earnings restatement, so nothing downstream moves; section 2 quotes the pre-tax figure and now labels both.",
"fcf_yield": 4.52,
"dividend_yield_pct": 4.86,
"dividend_ttm_usd": 4.65,
"dividend_action": "RAISE, verified. Interim 2026 of $2.11 declared 29 Jul 2026 (ex 14 Aug, pay 24 Sep) is +42.6% on the $1.48 interim declared 1 Aug 2025 - a genuine increase, not a same-amount re-declaration. TTM = $2.54 (FY2025 final, declared 19 Feb 2026) + $2.11 = $4.65. TRAP CAUGHT: FMP dividendPerShareTTM of $3.583 does not reconcile - it sums the two interims and omits the final. Rio pays semi-annually, so the trailing TWO payments are the trailing twelve months, not the trailing four.",
"roe_pct": 19.3,
"net_debt_ebitda": 0.47,
"interest_coverage": 17.8,
"current_ratio": 1.42,
"competitive_share_trajectory": "stable",
"competitive_threat_level": "moderate",
"competitive_note": "Gaining in copper via the Oyu Tolgoi ramp while Antofagasta cut 2026 guidance (13 Aug); losing price, not share, in iron ore. The distinctive vector is self-inflicted: Simandou, which Rio operates and part-owns, is one of the largest new sources of seaborne supply in a generation entering a contracting Chinese steel market. Pricing Power trimmed to 32 for that reason. Against its closest peer Rio is the laggard: BHP -2.4% vs RIO -10.8% over three months, +21.6% vs +2.7% over six, on total-return series.",
"economic_alignment_stance": "Trend-Following",
"economic_alignment_conviction": 72,
"economic_alignment_pressure": "Tailwind",
"economic_alignment_source": "sector-map",
"economic_alignment_short": "Tailwind",
"economic_alignment_medium": "Tailwind",
"economic_alignment_long": "Tailwind",
"economic_alignment_amplified": false,
"economic_alignment_note": "MacroDriver-state-20260812: XLB O/SO/SO (the strongest sector row) and the Copper / Industrial Metals asset line O/O/SO, upgraded from N/N/O on 30 July - a direct improvement for 36% of Rio's earnings, and the reason conviction rose 68 -> 72. RIO is not in the Economic Watchlist Forecast, so the GICS sector map was used. Pressure is Tailwind on all three horizons and it amplified NOTHING: amplification also requires a warranted ratio below 1.20x, and 1.307x fails it on every horizon.",
"macro_report_date": "2026-08-12",
"driver_commodity_trend": "RECOMPUTED FROM COMPONENTS THIS RUN, not carried forward. Weights are the H1-2026 segment EBITDA shares (iron ore 43%, copper 36%, aluminium & lithium 21%), not a narrative judgement. Raw settled closes at 2026-08-14, auto_adjust=False. IRON ORE TIO=F 95.17/t: BELOW its 50-DMA (98.66) AND its 200-DMA (103.94), 50-DMA FALLING, 4/6/8wk -3.75/-3.13/-6.03% - fails every trend test; the Step-2b short cap FIRES. Level is fine (~4x Pilbara unit cash cost); direction and forward are not - bank consensus $94-96/t for 2026 (spot is AT consensus, not below it) falling to $85-90 for 2027, on contracting Chinese steel output plus Simandou ramping toward a ~120Mtpa project peak (Rio operates the 60Mtpa Simfer half, 27Mtpa Rio share). COPPER HG=F 6.60/lb: ABOVE both averages, 50-DMA RISING, 4/6/8wk +6.10/+7.93/+1.82% - the cleanest uptrend in the complex; Oyu Tolgoi to ~500kt/yr over 2028-2036. ALUMINIUM ALI=F 3,355.50/t: BELOW a FALLING 50-DMA (3,554.55), above the 200-DMA (3,276.47), 4/6/8wk -4.92/-1.76/-9.77% - NEWLY on the deteriorating side and a change from the last report, which called this sleeve firm; caveat that COMEX aluminium is premium-inclusive and tariff-distorted while Rio realises LME plus premia, so it is a directional proxy only, set against Aluminium & Lithium EBITDA +38% in the half. NET: 63% of H1 earnings sit on commodities below a falling 50-DMA against 36% on a rising one. Per-horizon: short 0.43x45 + 0.36x78 + 0.21x42 = 56 (Neutral, no amplification); medium 0.43x48 + 0.36x82 + 0.21x52 = 61 (below the 65 bar, no amplification - a SECOND and independent reason from the valuation band); long 0.43x49 + 0.36x87 + 0.21x63 = 66 (Tailwind, and it DOES still clear 65). IMPORTANT, AND CORRECTED AFTER AUDIT: the driver is NOT what removed the long horizon's STRONG_BUY, and an earlier draft of this calibration said it was. Two other things did, independently: the base signal is now HOLD on Neutral timing (52) and a HOLD never amplifies in either direction; and even on a BUY base the FULL valuation band (1.307x) would bar amplification. So the long driver clearing its 65 bar is this run a fact with no consequence. Prior: 64 medium, ~70 long - the headline move is small, the change in composition is not.",
"driver_thesis_invalidation_floor": "Iron ore sustained below US$85/t (the 2027 consensus floor; currently $95.17, 12.0% above) AND copper sustained below its 200-DMA at US$5.87/lb (currently $6.60, 12.4% above). The conjunction flips the weighted driver to a net headwind on every horizon.",
"overall_confidence": 63,
"confidence_quality": 78,
"confidence_valuation": 63,
"confidence_timing": 65,
"confidence_driver": 55,
"confidence_econ": 70,
"analyst_consensus_target": 105.5,
"analyst_target_high": 120.0,
"analyst_target_low": 83.5,
"analyst_target_median": 113.0,
"analyst_target_upside_pct": 10.3,
"analyst_target_crosscheck": "Yahoo panel (n=8): mean $105.85, median $107.50, high $125.00, low $88.00. Not degenerate; both endpoints pulled and both agree.",
"analyst_grades_consensus": "Hold",
"analyst_bullish_pct": 39,
"analyst_coverage_count": 31,
"recent_upgrades_30d": 0,
"recent_downgrades_30d": 0,
"fmp_rating": "A-",
"fmp_overall_score": 4,
"relative_strength_vs_spy": -14.81,
"relative_strength_vs_sector": -12.84,
"relative_strength_note": "3-month total return (auto_adjust=True, the correct basis for a performance comparison; the moving-average tests elsewhere use RAW price): RIO -10.78%, SPY +4.03%, XLB +2.06%, BHP -2.42%, VALE -15.45%. So -14.81pp vs SPY and -12.84pp vs XLB over three months. Over one month RIO LEADS both: +7.84% vs +3.41% and +3.24%. A month of leadership inside a quarter of lagging - sub-score 50.",
"fair_value_est": 73.23,
"fair_value_note": "This is the NAV, discounted at the framework's 9.13% required return over a 20-year mine life, and it is 23.5% BELOW the current price. That is not a contradiction with a $105.50 analyst consensus - the two answer different questions. The Street discounts at a lower rate on a spot commodity deck; this framework discounts a flat consensus deck at risk-free + 4.5% ERP over a finite mine life. Both numbers are in the report. The consequence inside the framework is mechanical: the Fundamental entry group requires price below fair value, so it does not fire, and the conviction ladder reads Wait. Struck on 1.640167bn diluted shares; see nav_shares_basis.",
"stop_loss": 89.5,
"stop_loss_note": "Raised from $88.00 in the 31 July report because the 200-DMA has risen from $89.30 to $90.90. The stop tracks the structure, not the price.",
"target_price": 103,
"scenario_base_target": 103,
"scenario_bull_target": 125,
"scenario_bear_target": 76,
"scenario_probabilities": {
"bull": 25,
"base": 50,
"bear": 25
},
"scenario_weighted_target": 101.75,
"scenario_note": "Bear weight raised from 20% to 25% versus the 31 July report, on the quantified iron-ore downtrend plus a newly deteriorating aluminium sleeve. PROVENANCE: the 20% comes from the 31 July REPORT's section-11 bear card ('Bear $82 (20%)'), not from that run's calibration JSON, which carries the three targets but no scenario_probabilities field. Flagged by round-2 audit as otherwise unverifiable from the named artefact.",
"hard_gate_state": "caution",
"gates_triggered": [],
"gates_caution": [
"Commodity tape: 63% of H1-2026 segment EBITDA (iron ore 43% + aluminium 20%) sits on commodities trading below a FALLING 50-DMA; only copper (36%) is a clean uptrend. Caps amplification and argues for smaller size; does not cap the base signal.",
"Section-8 event blackout: FOMC Minutes 2026-08-19 is high-impact and inside three trading days for a High-macro-sensitivity sector (Materials), which fires the WAIT-FOR-EVENT override on the SHORT horizon regardless of composite score. ~44% market-implied odds of a September hike."
],
"do_not_buy_triggers": [],
"systemic_tails_ruled": "All four enumerated by name and ruled on individually. (1) S&P concentration / AI earnings-quality unwind - ARMED but trigger receding; RIO does NOT inherit it: no AI leverage, 12.98x trailing, non-operating income 9.2% of net income (6.6% of pre-tax), and 'it is in the index' is explicitly not sufficient for cohort membership. (2) Private credit - BUILDING, not armed, so it fails the inheritance test on the rule alone; also near-irrelevant at 0.47x net debt/EBITDA and 17.8x cover. (3) Hormuz - LIVE, not triggering (Brent $88.52 on the batch settled pull; the 12 Aug macro report carries $88.58 - immaterial to a vs a $100 sustained trigger); carried in the bear case as a cost-input and demand-shock route. (4) September Fed hike - LIVE, ~44% implied, three hawkish July dissents; this is the binding one - it raises the real rate inside the 9.13% discount rate and the dollar with it, and it is the Section-8 override behind signal_short = WAIT.",
"entry_groups_met": 0,
"entry_conviction": "Wait",
"short_entry_confirmed": false,
"short_hold_reason": "gate",
"short_hold_reason_underlying": "full_hold",
"short_cap_reason": "REVISED after independent audit, because the base signal itself changed. (1) THE BASE IS NOW HOLD, NOT A CAPPED BUY. Quality 79 (High) + Valuation 46 (Fair) + Timing 52 (NEUTRAL, 40-54) puts this on the Decision Matrix row AS WRITTEN - 'High (>=65) | Fair (40-64) | Neutral/Weak | HOLD (watch for valuation entry)' (SKILL L1274), on its NEUTRAL leg. The row covers Neutral AND Weak and L1423 requires it be quoted that way. On all three horizons. An earlier draft scored Timing 56 on a catalyst sub-score of 60 that was outside the band the framework's clustering table assigns, which made the base a BUY; corrected to 45 and risk-reward to 35, timing is 52 and the base is HOLD. So the short technical-confirmation cap is now moot - it only caps a BUY - though both the Technical and Catalyst entry groups are in fact UNMET (price 0.7% below a FALLING 50-DMA on 0.86x volume; the 29 July post-results move was +2.20% on 1.57x against a +5%/2x bar). (2) SECTION-8 WAIT-FOR-EVENT OVERRIDE, which is where the published WAIT label comes from - Materials is a High-macro-sensitivity sector and the FOMC Minutes (19 Aug, high-impact, interest_rates) fall two trading days out, overriding the short horizon regardless of composite score. THE HALF-SIZE QUALITY-STARTER OVERRIDE WAS RE-TESTED against the new base and still does NOT apply: it requires signal_medium AND signal_long to both be BUY-or-better, and both are now HOLD. So a full flat HOLD is correct beneath the section-8 WAIT. short_hold_reason stays 'gate' because the published label is the section-8 override; the underlying base reason is 'full_hold'.",
"exit_groups_live": 0,
"exit_action": "Hold",
"next_update_date": "2026-08-20",
"next_check_date": "2026-08-20",
"next_update_basis": "FOMC Minutes 2026-08-19 +1 trading day. Materials is a High-macro-sensitivity sector, which is the single case in which a recurring macro release counts as an impactful scheduling event (SKILL L1577); it also resolves the Section-8 override that put the short horizon on WAIT. The default +14d would have been 2026-08-31. The next company catalyst is the Q3 operations review in mid-October; FY-2026 results are 2027-02-24.",
"data_as_of": {
"price": "2026-08-14",
"commodity_trend": "2026-08-14",
"technicals": "2026-08-14",
"risk_free": "2026-08-13",
"macro_report": "2026-08-12",
"company_results": "2026-07-29",
"dividend_declaration": "2026-07-29",
"capex_guidance": "2026-07-29",
"analyst_targets": "2026-08-17"
},
"prior_report": "calibration-RIO-20260731-1200.json",
"prior_primary": "BUY",
"delta_vs_prior": "Price $96.84 -> $95.68 (-1.2%) in seventeen days. Signals: short HOLD -> WAIT (section-8 event override ahead of the 19 Aug FOMC Minutes), medium BUY -> HOLD, long STRONG_BUY -> HOLD. Scores: quality 79 -> 79, valuation 63 -> 46, timing 58 -> 52, driver 64 -> 61, econ 68 -> 72. Band fair -> full. entry_groups_met 1 -> 0: the Fundamental group was the single path open on 31 July and it stopped firing when fair value became the $73.23 NAV rather than the P/E-derived figure the prior report carried; Technical and Catalyst were unmet then and are unmet now. Entry conviction Half-Size -> Wait. Hard gate state clear -> caution (two cautions added: the commodity tape and the section-8 blackout). Stop $88.00 -> $89.50 on a risen 200-DMA. Scenarios: bull 122 -> 125, base 107 -> 103, bear 82 -> 76, bear weight 20% -> 25%. PORTFOLIO-WATCHLIST CONSEQUENCE: the short signal is no longer a BUY, so RIO loses grid candidacy this run. THREE DISTINCT CAUSES, which must not be conflated. (1) The VALUATION band moved because the ANCHOR BASIS changed from a guardrail-capped clean P/E to P/NAV (SKILL L570) - a methodology correction on a share price that barely moved. (2) The DRIVER moved because it was recomputed from EBITDA-weighted components on settled commodity closes rather than carried forward. (3) The SIGNALS on medium and long moved because the INDEPENDENT AUDITOR found the catalyst sub-score of 60 was outside the band the framework's clustering table assigns (two high-impact catalysts inside 14 days -> 20-49); corrected to 45, timing fell 58 -> 53, which is Neutral, and High quality + Fair valuation + Neutral timing is HOLD on every horizon. A SECOND independent audit round then took timing 53 -> 52 on the two-sided proximity rule (composite_medium 60 -> 59); the signals were already HOLD and did not move again. Cause 3 is the one that changed the published verdict, and neither timing error was self-caught.",
"self_audit_layer1": {
"1_data_provenance": "Every mandatory pull is itemised with its result in section 15 (22 entries). The one FAILED source is WebSearch - session budget exhausted at 200/200 before this ticker ran - and it is recorded as a failure, not silently omitted. Fallbacks actually used: WebFetch against riotinto.com (H1 release and key-project-updates, both returned content) and the Tavily news tool. Consequence carried into the scores: the group reserve life could not be sourced, so the NAV mine life is an assumption and Valuation confidence takes a 15-point haircut.",
"2_live_status": "Corporate status: get_company_profile isActivelyTrading=true, no halt, no M&A, no delisting; news scanned to 17 Aug 2026. Geopolitics: Hormuz treated as LIVE per the macro report of record and Brent quoted at 88.52 against the $100 trigger - NOT described as resolved, holding or normalised anywhere. Dated events re-verified this run: FOMC Minutes 19 Aug 2026 (get_economic_calendar, high impact, interest_rates); next earnings 24 Feb 2027 (get_earnings_calendar). Dividend RAISE verified from get_stock_dividends declaration dates, not from a search summary. Newest company item independently found this run: Tomago power agreement - Reuters wire 12 Aug 2026, Rio ASX release 13 Aug; a timezone artefact, stated as such in section 15.",
"3_internal_consistency": "Every directional claim reconciled against the pulled numbers. Three arithmetic defects were found and fixed BY THE AUTHOR before the independent audit (a further eight were found BY the auditor - see post_audit_fixes): iron ore's distance above the US$85 invalidation line was stated on a (spot-line)/spot basis (10.7%) while copper's used (spot-line)/line (12.4%) - iron ore is now stated as 12.0% on the same basis as copper, in all four places it appears; the 50-DMA decay rate was $0.13/day against a computed $0.143; and Simandou's 120Mtpa was the whole-project peak being used interchangeably with Rio's operated 60Mtpa Simfer half (27Mtpa Rio share), now distinguished everywhere. The narrative-over-tape guard is honoured explicitly: the iron-ore LEVEL is favourable and the report says so, but the TREND governs the score.",
"4_completeness": "All 15 numbered sections present with subtitles; builder self-assertion passed (sections=15, body-padding shell, no .container, single GA tag, Rule Forecast + Conviction Ladder + Competitive Environment present). Rendered size comfortably above the 55KB floor - the figure is deliberately not restated, because two earlier drafts quoted a size that drifted stale as the report grew. Thinnest section is 13 (position sizing), which is thin by instruction - no allocation or portfolio role was specified, so sizing is deliberately not computed.",
"5_carried_forward_diff": "Nothing material was carried forward. Quality is UNCHANGED at 79 and was nonetheless re-derived from six sub-signals on the H1-2026 print rather than copied. The DRIVER was explicitly recomputed from EBITDA-weighted components (the run's instruction) rather than carried; so was the valuation anchor, whose basis was withdrawn and replaced. Economic Alignment was re-read from MacroDriver-state-20260812 and moved 68 -> 72 on a genuine sector-row change. The moat sub-scores were re-derived from the step-7c competitive read, which is why Pricing Power moved 35 -> 32.",
"6_signal_caps": "RE-TESTED after the post-audit rebuild, because the base signal changed. (a) signal_short is WAIT, a non-BUY, so the short_entry_confirmed=false condition is satisfied trivially; entry_conviction is Wait. The half-size quality-starter override was re-tested against the NEW base and still does not apply, but for a different reason than before: the base IS now a HOLD produced by Neutral timing (52) off the L1274 row and Quality 79 >= 65 and Valuation 46 >= 40 all hold - but the override also requires signal_medium AND signal_long to be BUY-or-better, and both are now HOLD. So a full flat HOLD is correct. (b) warranted_ratio 1.307 is below 1.40, so Gate 3 does not fire; amplification is barred twice over - a HOLD base never amplifies, and the ratio exceeds the 1.20 Full-band threshold. (c) non-operating income is 9.2% of net income (6.6% of pre-tax), under the ~15%-of-net-income line on either basis, so reported and clean multiples are legitimately identical and the report says so rather than manufacturing a difference. (d) short_hold_reason 'gate' is the published label (section-8 override) with short_hold_reason_underlying 'full_hold' recorded alongside, since the enum has no value for a section-8 WAIT sitting on top of a base HOLD.",
"7_calibration_contract": "scripts/normalize_calibration.py --write then --check both exit 0. scripts/lint_report.py exits 0 across 59 checks. The two surviving warnings are FW-BASIS-MIXED and FW-GUARDRAIL-SKIP, both structural to a P/NAV basis: the linter carries the Materials guardrail as an EV/EBITDA of 8.0 and cannot evaluate P/NAV. NOT treated as a silent pass - the guardrail arm was run BY HAND (P/NAV 1.307 vs the 1.5x line, EV/EBITDA 6.30 vs the 8x line, neither breaching) and the result is recorded in valuation_detail.nav_guardrail_applied_manually and stated in section 4.",
"8_known_fragilities_disclosed_in_report": "Two, both stated in the report body rather than only here. (i) Timing 52 sits three points below the Improving threshold; at 55 medium and long return to BUY. Of the two sub-scores doing the work, catalysts 45 IS a straight lookup off the clustering table, but risk-reward 35 is NOT: applying the -15 rather than the +15 rests on reading the $96.37 weekly level - which the MTF tool labels SUPPORT - as overhead RESISTANCE now that price has closed below it. That is a judgement, and the single most consequential one in the report; section 7 carries the three-branch sensitivity and threshold_fragility says the same. An earlier draft of THIS field said both were taken from framework tables rather than judgement - the claim round 4 withdrew from section 7 - and round 5 found it still standing here, one field away, in the block a reader is told to trust. (ii) The NAV's 20-year mine life is an assumption; at 15 years the name is Expensive and would be gated to HOLD on valuation alone, at 30 years or on the framework's literal perpetuity it is Fair. Both are disclosed with their consequences rather than buried in a rounded number.",
"9_process_hazard": "The shared scratchpad is written by concurrent batch agents. An intermediate chart file written by this run was OVERWRITTEN by another ticker's series between write and read, and the first render carried a 125-point series ending at 117.76 against a stamped price of 95.68. Caught by lint_report STALE-CHART, not by eye. Fixed by inlining a ticker-scoped series with a hard assertion on length and final value."
},
"post_audit_fixes_round2": "SECOND independent auditor - a FRESH general-purpose agent, not the round-1 one and never a fork - returned FAIL with 5 MAJOR and 11 MINOR. It independently reproduced the entire chain (timing arithmetic, all five annuity factors, NAV $73.23, ratio 1.307, band-to-score mapping, composites, the L1274 matrix row, the L1894 section-8 override, the quality-starter exclusion, every scenario percentage, the whole dividend chain including the FMP $3.583 trap, the segment weights and the iron-ore tape) and confirmed NO defect flips a signal: Short WAIT / Medium HOLD / Long HOLD is the correct framework output on these inputs. All 16 applied - but see post_audit_fixes_round3: TWO of them were silently lost by a patch helper and had to be re-applied. [MAJOR] Section 13 still carried the WITHDRAWN catalyst score of 60 and told the reader 'no additional size reduction applies' - inverting a framework requirement in the one section whose job is sizing. The 20-49 band mandates a 30-50% reduction. The most consequential defect of the round because it was user-facing and actionable. [MAJOR] The proximity rule is TWO-SIDED (+15 within 3% of support, -15 within 3% of resistance) and the report took NEITHER. The weekly level $96.37 sits 0.72% above the price; the tool lists it as support but price closed below it, so it is overhead resistance and the -15 applies. position_risk 35 -> 20, risk_reward 42 -> 35, timing 53 -> 52, composite_medium 60 -> 59. Still Neutral; no signal moved. [MAJOR] The MTF intraday exclusion was applied asymmetrically - the monthly and weekly frames also carried the 17 Aug print - and was described as 'the framework's stated handling' when that rule is scoped to intraday data being UNAVAILABLE, which it was not. Now DECLARED as the author's judgement, with the retention test for monthly/weekly shown explicitly (classification identical at $95.68 and $97.21) and the immateriality stated (five-frame MTF 58.58 -> 59, timing 50.12 -> 50, same Neutral band, same signals). [MAJOR] The perpetuity disclosure row was labelled 'the framework's literal two-stage formula at g=0' - but g_term=0 is ALSO the author's choice; the framework's stated reference is 3%. At g_term=3% the factor is 14.732, NAV $119.28, ratio 0.802 = Attractive/Fair edge, TWO bands from Full. Both rows now shown, and the report no longer over-concedes either: L490 directs P/NAV over a mine plan, so the finite life is framework-directed; only the 20-year number and g_term=0 are mine. [MAJOR] Section 15 said the intraday MTF scores were 'kept in the arithmetic' while sections 7, 9 and the calibration said excluded. Corrected. [MINOR x11] Tomago PPA COMMENCES 1 Jan 2029 (31 Dec 2028 is the OLD contract's expiry - an error introduced BY the round-1 fix); Tomago source attribution inverted (Reuters 12 Aug, Rio's page 13 Aug); section-4 risk-free sensitivity was wrong in BOTH value and SIGN (a higher risk-free RAISES P/NAV: 1.311 / 1.313, not 1.302) and contradicted section 15; section 15 contradicted itself on whether the sector-median lens was estimated or unscored; section 3 still carried FCF/EV 4.3%; implied mid-cycle earnings appeared as 17.2 / 17.21 / 17.35 and is now 17.35 throughout; the trailing EV/EBITDA denominator ($23.35bn = H1-2026 $12.75bn + H2-2025 $10.60bn) was unstated; the ROE basis was unstated (19.3% Yahoo vs 18.4% on FMP period-end equity - both now named); the 12->13 Aug fall is -2.98%, not 3.1%; Brent $88.52 is the batch pull, not the macro report's $88.58, and is now attributed correctly; and the bear-weight 20% -> 25% delta is sourced from the 31 July REPORT's section-11 card, since that run's calibration carries no scenario_probabilities field. LESSON RECORDED: round 1's own Tomago fix introduced two fresh errors that round 2 caught. A fix round is unverified work, and the sections furthest from the edit site (13 and 15) are where the stale text survived.",
"post_audit_fixes_round3": "THIRD independent auditor (fresh general-purpose agent, never a fork) returned FAIL with 6 MAJOR and 2 MINOR. Its most important finding was a PROCESS failure, not an analytical one: TWO fixes that post_audit_fixes_round2 claimed as applied had never reached the artifact. Cause: the patch helper asserted on each target and raised on a miss, and because the file write came AFTER the loop, one bad assertion DISCARDED EVERY PATCH IN THAT BATCH. Silently lost: (a) the section-13 sizing fix, so the report still carried the WITHDRAWN catalyst score of 60 and told the reader 'no additional size reduction applies' - inverting a framework requirement in the one section whose job is sizing; and (b) the section-4 perpetuity g_term=3% row, which existed only INSIDE post_audit_fixes_round2 - a claim about a fix rather than the fix. The helper was rewritten to apply each patch independently and report LANDED/MISSED per patch. Other round-3 MAJORs: section 7 still called the MTF intraday exclusion 'the framework's stated handling' while sections 9 and 15 called it the author's judgement; the Tomago PPA still read 'beginning 31 December 2028' (that is the OLD contract's expiry - it commences 1 Jan 2029); stale '53' and 'two points' at four sites across both surfaces, including inside driver_commodity_trend, the very field corrected for its causal claim; a third unlabelled EBITDA basis in section 4; and the PEG and own-history-decile lenses absent from the body although the sector-median renormalisation had INCREASED their weight, with the PEG-flatters caveat living only in the calibration. All applied and verified on BOTH surfaces.",
"post_audit_fixes_round4": "FOURTH independent auditor returned FAIL with 6 MAJOR and 4 MINOR; again NO defect flipped a signal, and it independently reproduced the composite chain, every annuity factor, the timing sub-scores against their framework tables, the live price tape and the two deterministic gates. It also verified that the section-14 embedded JSON is key-for-key identical to the calibration file, which removes a whole class of two-surface drift. Applied: (1) the five-frame immateriality figure of 'timing 52.25' was computed on the WITHDRAWN risk-reward of 42; round 5 then found the replacement ALSO wrong, because the five-frame MTF of 61 carried the WITHDRAWN daily score of 50 - correct is MTF 58.58 -> 59 and timing 50.12 -> 50, fixed at four sites; (2) the withdrawn risk-reward 42 was still live in self_audit_layer1's own fragility disclosure; (3) the section-15 Tomago source attribution was inverted (Reuters is the 12 Aug wire, Rio's own release is 13 Aug) - a REGRESSION, lost in the same discarded batch as the round-3 pair; (4) the audit trail was two rounds behind the artifact, with no round-3 record and threshold_fragility still reading 'TWO audit rounds'; (5) section 7 claimed 'Neither is a number I chose' about risk-reward while, two paragraphs above, reclassifying a level the tool labels weekly SUPPORT as overhead RESISTANCE - which is precisely a judgement, and the single most consequential one in the report. That claim is withdrawn and a three-branch sensitivity table now shows where each reading lands: -15 as published -> timing 52 -> HOLD; no adjustment -> 53 -> HOLD; +15 on the tool's own label -> 54.75 -> 55, which REACHES the Improving row and would put medium and long back to BUY. That branch turns on a rounding convention at the exact threshold and on a 50/50 position-risk/relative-strength blend the framework never specifies, so it is not adopted - but it is now disclosed rather than left for a reader to reverse-engineer. MINORs: the catalyst sentence ('four high-impact print days inside ten') is reconciled to the band it applies by noting only two are stock-relevant, with the stricter 0-19 reading shown to be immaterial (timing ~48, still Neutral); a stale 151KB size claim; 'these four weights' under a three-row table; and an unsourced Michigan prior of 55.2, now cited to the get_economic_calendar 'previous' field. NOT FIXED - OUT OF BOUNDS: the auditor's MAJOR on the stale members/watchlist.html row (it still shows Q78 V60 T48 D66 E66, HOLD/BUY/STRONG BUY, Half-Size, linking to the 16 July file). This run is explicitly barred from touching watchlist.html, index.html and the grid; the row was ALREADY stale before this run (it pointed at the 16 July report while the 31 July one existed). It is escalated to the orchestrator rather than edited, and it matters: as it stands the live watchlist advertises STRONG BUY on the long horizon against a report that says HOLD.",
"post_audit_fixes_round5": "FIFTH round returned FAIL with 3 MAJOR and 3 MINOR, no BLOCKER, nothing touching a signal, gate, DNB or any number a reader acts on. Its diagnosis is the sharpest of the batch and names a blind spot in MY OWN sweeping method: round 4 edited the self-audit's fragility sentence FOR THE NUMBER (risk-reward 42 -> 35) and left the withdrawn CLAIM standing beside it. Every surviving defect was a claim about BASIS or PROVENANCE, never a value - so a value-keyed sweep was structurally blind to all three. The fix to the method: sweep for CLAIMS (is this still true?) as a separate axis from values, and diff sibling fields that must agree. [MAJOR] self_audit_layer1.8 re-asserted 'both taken from framework tables rather than judgement' - the exact claim round 4 withdrew from section 7 - while timing_detail.threshold_fragility one field away said risk-reward 35 does NOT reduce to a lookup. Two fields of one file contradicting each other, in the block a reader is told to trust. Fifth consecutive round with a one-surface miss. [MAJOR] The five-frame immateriality MTF of 61 is NOT REACHABLE from this report's own disclosed sub-scores; it silently carried the WITHDRAWN daily score of 50 (24+17.5+12.5+1.68+5.52=61.20) instead of the 44 in use. Recomputed on the real inputs - monthly 80 / weekly 70 / daily 44 / hourly 12 / 15-min 58 at 30/25/25/12/8 - five-frame MTF = 58.58 -> 59 and timing = 50.12 -> 50. Still Neutral, same matrix row, NO signal move. But this is the load-bearing number defending a DECLARED framework deviation whose whole justification is 'it raises the score, so the test must be immaterial'. As published it UNDERSTATED the deviation: 5 MTF points and 2 timing points, not 3 and 1. Restated honestly at three sites. [MAJOR] Section 7's catalyst cell named 'Personal Income, Personal Spending and Durable Goods on 26 August' as the non-relevant events - none appears in section 8 or anywhere in the report - and the count failed on its face (2 relevant + 3 non-relevant = 5, not 4). A round-4 MINOR was spliced in WITHOUT reading its neighbours. Now names section 8's actual four inside ten days: Building Permits and Housing Starts (18 Aug), FOMC Minutes (19), CB Consumer Confidence (25), Core PCE (26), of which the Minutes and Core PCE are the stock-relevant pair. Sub-score 45 unaffected. [MINOR x3] The three-branch table's row 2 showed 53.15 where risk-reward 42.5 gives 53.25 - 53.15 is 42.0 x 0.20, the withdrawn 42 a third time. The self-audit's claims about ITSELF had drifted three ways: '58 checks' when lint prints 59, '~190KB' when the file is 202KB (itself round 4's fix for a stale 151KB, drifted again - so the size figure is now removed rather than restated), and '23 entries' in section 15 where there are 22 (23 counted a CSS rule). And nonop_pct_of_net_income stored 7, a PRE-TAX percentage under a key that declares net income; corrected to 9 (9.2%) with both bases now given in section 2. WHAT ROUND 5 VERIFIED AND DID NOT FAULT: it re-derived Timing 52 from scratch against every framework band; it tested the three-branch table and confirmed the +15 branch reaches 54.75 -> 55 -> Improving -> BUY on medium and long; and it confirmed AGAINST THE LIVE TOOL that the weekly support_levels genuinely contain 96.37 with no weekly/monthly resistance within 3%. So the strictly-mechanical reading gives BUY, and the published HOLD rests on an analyst override of the tool's label - which round 5 judged FULLY DISCLOSED, defensible on the framework's own rationale, and NOT a defect. It also confirmed the driver is genuinely re-derived from H1-2026 segment EBITDA, reproduced the tape to the basis point, and reproduced NAV $73.23, P/NAV 1.307, all five annuity factors, the g_term=3% counterfactual at 0.802, composites 56/59/65, section 11, the dividend chain (+42.6%, a genuine raise) and the Yahoo target panel exactly.",
"post_audit_fixes_round6": "SIXTH round returned FAIL with 1 MAJOR and 2 MINOR - all three ONE residual, and all three in the AUDIT-TRAIL fields rather than the analysis. It confirmed all six round-5 fixes landed on both surfaces, re-derived the corrected five-frame chain (24.00+17.50+11.00+1.44+4.64 = 58.58 -> 59, timing 50.124 -> 50) and confirmed the intraday band choices sit INSIDE their cited bands (hourly 12 in 0-14, 15-min 58 in 55-69). [MAJOR] timing_detail.threshold_fragility still read 'FOUR audit rounds' and its enumeration stopped at round 4 - the THIRD time this same field has been graded for being one round behind (round 4 caught it at 'TWO'). Round 5 moved this pillar under the same convention that admits rounds 3 and 4: it corrected a published timing figure 51 -> 50 at three sites and the branch table 53.15 -> 53.25. Corrected to FIVE with round 5 appended, on both surfaces. [MINOR] audit_route_note recorded rounds 1 and 2 only; rounds 3, 4, 5 and 6 now carry their route and the reason, per report-audit.md L49. [MINOR] The round-5 nonop-basis fix reached section 2 and the stored value but not three siblings - the section-4 clean-P/E row, clean_pe_note and self_audit_layer1.6 (c) - each still comparing the PRE-TAX 6.6% against a NET-INCOME 15% line, the exact mismatch section 2 was corrected to remove. Swept 6.6% as a SUBJECT and aligned all three to the both-bases wording. No consequence: 9.2% clears ~15% too. STANDING RULE ADOPTED, and it is the most transferable thing this batch produced: THE AUDIT-TRAIL FIELDS ARE A FIXED SET - post_audit_fixes_*, audit_route_note, threshold_fragility, delta_vs_prior, next_update_basis - THAT MUST BE SWEPT AS A CLASS AT THE CLOSE OF EVERY ROUND, BEFORE THE ROUND IS DECLARED CLOSED, because they are ABOUT the round and are therefore stale BY CONSTRUCTION at the moment it ends. A per-finding sweep can never reach them: the finding that makes them stale IS the round itself. That single fact explains five consecutive rounds of the same shape. The claims axis and sibling-field diff added in round 5 are sound and demonstrably work - they caught this report's own section-7 splice on re-read - but they were being applied to a LIST OF FIELDS rather than to a CLASS OF CLAIMS.",
"post_audit_fixes_round1": "Independent auditor (fresh general-purpose agent, NOT a fork) returned FAIL with 1 BLOCKER, 3 MAJOR and 4 MINOR. All eight applied, plus two the author found separately. [BLOCKER] Catalyst sub-score was 60 on a 'one clear catalyst in 30 days' reading that contradicted this report's OWN section-8 table (four events flagged relevant) and sat outside the SKILL clustering band for 2-3 catalysts inside 14 days (FOMC Minutes 19 Aug + Core PCE 26 Aug) = 20-49. Corrected to 45. Timing 56 -> 53 = NEUTRAL, which flips the matrix row to HOLD: signal_medium BUY -> HOLD, signal_long BUY -> HOLD, composites 58/61/66 -> 56/60/65. THIS CHANGED THE PUBLISHED VERDICT. [MAJOR] The ex-dividend framing covered the wrong window - it explained the 14 Aug session but silently excluded 12->13 Aug, a -3.0% fall with no dividend in it. The genuine 12-14 Aug decline is -$5.54, of which $2.11 is dividend, leaving -3.4% real. The claim 'the tape did not break down last week' is withdrawn and the daily MTF sub-score re-scored 50 -> 44. Fixed in section 7, the section-10 caption and ex_dividend_note. [MAJOR] The NAV was described as 'struck at the framework's own required return' when the SKILL's literal two-stage formula on the same recorded inputs (r 9.13%, g=0) gives a factor of 10.9529, NAV $88.68 and ratio 1.079 = FAIR. The 20-year truncation is an instantiation choice, now DECLARED as a deviation with the perpetuity result shown as a sensitivity row. [MAJOR] ev_usd_bn was the provider figure $177.628bn, struck at the unsettled 17 Aug price - falsifying this report's own claim that nothing used that price - and not reconcilable to the report's inputs (lease-inclusive debt and/or NCI, the very input section 15 says was refused). Rebuilt as market cap $155.671bn + net debt $14.061bn = $169.732bn; EV/EBITDA 6.60 -> 6.30 (FY26E) and 7.61 -> 7.27 (TTM), FCF yield 4.32% -> 4.52%. Both corrections make the stock look CHEAPER. Also cross-referenced the two EBITDA bases (annualised H1 $29.65bn in Gate 1 vs FY2026E consensus $26.93bn in section 4). [MINOR] Sector-median lens (Reference 1, normally 20% of the pillar) was never scored, not merely 'estimated'; now declared UNSCORED with its weight renormalised across the anchor, decile, PEG and consensus. [MINOR] Tomago was announced 12 Aug 2026, not 13 Aug; the A$1.1bn is Tomago Aluminium's investment, not Rio's; the power agreement begins 31 Dec 2028 with 100% renewable supply only from 2033. All three corrected in sections 3, 7 and 15. [MINOR] Share count: the NAV denominator now uses Rio's own H1-2026 weighted-average DILUTED count of 1.640167bn rather than the 1.627bn implied by a market cap struck at the unsettled price. NAV $73.82 -> $73.23, ratio 1.296 -> 1.307. All three candidate counts land in the FULL band. [MINOR] Risk-reward derivation was not written down; now explicit - the >2.5-ATR stop-distance band applies, and NO proximity bonus applies because no weekly or monthly support sits within 3% (the nearest weekly level, $96.37, is above the price and is resistance). Score 48 -> 42. [AUTHOR-FOUND, same round] The hourly and 15-min MTF frames are timestamped 17 Aug - entirely the unsettled session this report excludes - so they are dropped and the framework's L687 reallocation applied (Monthly 35 / Weekly 30 / Daily 35); five-frame MTF 58.58 -> 64. The rows are left visible but marked excluded, and the report now discloses that on the 17 Aug print the stock is ABOVE its 50-DMA, which would flip the Technical entry group's price leg - a disclosure that cuts against this report's own verdict. [AUTHOR-FOUND, same round] Optionality tilt reduced +4 -> +2: the NAV excludes the growth capex AND the volumes it buys, so crediting the pipeline's upside while that spending never appears as an outflow is the generous side of the ledger.",
"audit_route_note": "Round 1 used a FRESH general-purpose agent (never a fork), per the standing brief. Round 2 also uses a FRESH agent rather than SendMessage to the same auditor, because the artifact was SUBSTANTIALLY REBUILT rather than patched - two of three horizon signals changed, the timing pillar was re-derived from new sub-scores, the NAV denominator and EV were restruck, and a framework deviation was newly declared. The brief specifies a fresh read in exactly that case: a returning auditor would be re-reading a different document while carrying commitments formed against the old one. ROUND 3: FRESH agent - the artifact had again been substantially rebuilt (timing pillar re-derived, two horizon signals moved to HOLD, NAV denominator and EV restruck, a framework deviation newly declared), which is the L49 case for a first-principles read. ROUND 4: FRESH agent, same reason - seven fixes had landed since, two of them recovering silently-lost patches. ROUND 5: FRESH agent, spawned by the orchestrator. ROUND 6: re-verification by MESSAGE to the round-5 auditor rather than a fresh agent, per report-audit.md L49 - the changes were three text edits with no number a reader acts on, and that auditor already held every derivation, so continuity of findings was worth more than a fresh read. Recorded here because L49 requires the route be stated so the brief and the practice cannot drift apart."
}
Recorded so the next run can compute the deltas mechanically rather than re-arguing them. Against the 31 July calibration: price $96.84 → $95.68 (−1.2%); Quality 79 → 79; Valuation 63 → 46; Timing 58 → 52; Driver 64 → 61; Economic Alignment 68 → 72. Signals: Short HOLD → WAIT, Medium BUY → HOLD, Long STRONG_BUY → HOLD. Entry conviction Half-Size → Wait. Valuation band fair → full, and the basis changed from a guardrail-capped clean P/E to P/NAV — val_multiple_basis records which, because a band change with an unchanged basis and a band change caused by the basis are very different facts and the next run needs to be able to tell them apart. The same discipline applies to the signal change: delta_vs_prior separates the three causes, and says which one actually moved the verdict. It was the timing correction, and it came from the independent audit rather than from me.
current_price of $97.21, its trailing_pe of 12.96, its market cap of $158.15bn and its enterprise value of $177.63bn are all struck at the unsettled 17 August session and are NOT used. An earlier draft of this report did use that enterprise value — and therefore, indirectly, the 17 August price — for its FCF yield and EV/EBITDA. The independent auditor caught it. EV is now rebuilt from this report's own inputs: 1.627bn shares × $95.68 = $155.671bn market cap, plus Rio's own $14.061bn net debt = $169.732bn, which excludes leases and non-controlling interests and says so.auto_adjust=False. Last settled close $95.68 on 14 August — the price of record for this report.totalDebt was deliberately NOT used — it is lease-inclusive; net debt comes from Rio's own release.dividendPerShareTTM of $3.583 does NOT reconcile — it sums the 2025 and 2026 interims and omits the $2.54 FY2025 final. Rio pays semi-annually, so the trailing TWO payments are the trailing twelve months: $2.54 (declared 19 Feb 2026) + $2.11 (declared 29 Jul 2026, ex 14 Aug) = $4.65, a 4.86% yield. The interim was a genuine raise, +42.6% on the $1.48 paid a year earlier, not a re-declaration.auto_adjust=False to the last settled bar of 14 Aug: iron ore 95.17 / 50-DMA 98.66 / 200-DMA 103.94 / 4-6-8wk −3.75, −3.13, −6.03; copper 6.60 / 6.35 / 5.87 / +6.10, +7.93, +1.82. Both matched the central series to the cent.close: null — the in-progress-bar trap — and was discarded.isActivelyTrading true.Overall confidence 63% = the minimum of Quality 78, Valuation 63 and Timing 65, per the framework's weakest-link rule. The Driver pillar's own confidence is 55 and does not enter the minimum.
Valuation carries the binding haircut, and it is honest rather than decorative. Base 80, plus 5 for hard analyst targets, plus 5 for the grades distribution, plus 3 for the ratings snapshot = 93. Then minus 15 because the NAV's weighted mine life could not be sourced — WebSearch was exhausted and Rio's group reserve life is not on the pages I could fetch — and minus 15 for the sector-median lens. That gives 63. On the second of those, the independent auditor made a fair correction to how I described it: Reference 1 (Sector/Industry Median) is normally 20% of this pillar, and I did not estimate it — I did not score it at all, because no sourced peer-multiple table was obtainable. Rather than invent one and present it as data, the lens is dropped and its 20% renormalised across the anchor (40→50%), the own-history decile, PEG and the analyst-consensus cross-check. That is now stated in the §4 table as well, so the missing lens is visible rather than silently absorbed.
The sensitivity table in §4 is the other half of the disclosure: at a 15-year life the name is Expensive and would be gated to HOLD on valuation alone; at 30 years or on the framework's literal perpetuity it is Fair. Twenty years is my assumption, the sourced asset lives support 20–25, and both of those read Full.
Timing 65: base 75, minus 10 for a high-impact macro release inside seven days in a High-sensitivity sector. No earnings penalty — results are six months away. The pillar SCORE (52, not the confidence) was corrected downward after the independent audit found the catalyst sub-score outside its framework band; that correction moved medium and long from BUY to HOLD and is documented in §7 and in post_audit_fixes.
Quality 78: base 80, minus 2 because peer-median comparisons were assembled from the peer prices and filings I could reach rather than a sourced sector table.
Driver 55: base 70, minus 15 for inherent commodity volatility. Within it, the iron-ore and copper reads are the strongest evidence in this report — settled futures closes, independently reproduced — and the aluminium read is the weakest, resting on a tariff-distorted US benchmark. That asymmetry is stated in §5 rather than hidden in an average.