Price C$43.62 → C$48.44 (+11.1%) in ten days, and C$34.48 → C$48.44 (+40.5%) in a month. Medium and Long are cut STRONG BUY → HOLD; Short moves HOLD → WAIT. Nothing about the business deteriorated — Quality rose 70 → 72 and the copper driver rose 67 → 75. The price moved, and the valuation basis was corrected.
entry_conviction Half-Size → Wait, entry_groups_met 1 → 0. The Fundamental path closed when the corrected net asset value put the price 90.9% above fair value.
Exit action stays Hold — no exit rule is live.CA29767G1090, fails the ISIN check-digit test; it is CA2960061091.Ero Copper Corp. is a Vancouver-headquartered base-metals producer whose mines are all in Brazil. It digs and processes copper ore into concentrate at two operations — the Caraíba complex in the Curaçá Valley of Bahia, in production since 1979, and Tucumã in Pará, which poured its first concentrate in 2024 and is still ramping — and mines high-grade gold at Xavantina in Mato Grosso. Guidance for 2026 is 67,500–77,500 tonnes of copper and 40,000–50,000 ounces of gold. What distinguishes it among mid-tier copper producers is cost: Tucumã produced at a C1 cash cost of US$2.10 per pound in the second quarter and the consolidated figure was US$2.42, against a realised copper price of US$5.78. It also holds the right to earn 60% of the Furnas copper-gold project in the Carajás from Vale Base Metals, a development asset whose February 2026 preliminary economic assessment carried a US$2.0bn net present value. The trade-offs are a single-country footprint, a reserve base that supports about 12.6 years of mining at current rates before any resource conversion, and earnings geared directly to the copper price. Ero reports in US dollars but its TSX shares trade in Canadian dollars; every figure below is labelled.
totalOtherIncomeExpensesNet was +US$10.5m across the trailing four quarters against US$388.6m of pre-tax income — 2.7%, below the 15% threshold, so no clean-basis restatement is required. The quarterly line is volatile (+US$35.3m in Q1 2026, −US$39.1m in Q4 2025) because it carries foreign-exchange movement on BRL-denominated balances; it nets to near zero over a year.signal_short = WAIT and next_update_date = 2026-08-20. Recorded as a caution rather than a hard gate because it caps the Short horizon only; the Valuation Ceiling above is what caps all three.Ero is a growth-stage producer: revenue grew 73.9% year on year in the second quarter as Tucumã ramped, and the company is profitable, cash-generative and rapidly deleveraging. That is the right lifecycle box for the Mining metric profile — reserve life, all-in cost against the metal price, return on invested capital and balance-sheet strength, rather than earnings multiples, which the Valuation pillar handles.
| Sub-signal | Value | Reference | Score | Read |
|---|---|---|---|---|
| Revenue trajectory | Q2 2026 US$284.3m, +73.9% YoY; trailing-twelve-month US$1,046.0m | Tucumã contributed 8,964t of the 17,315t; Caraíba 8,351t | 88 | New-mine growth, not price alone — volumes are genuinely higher |
| Profitability | Adjusted EBITDA margin 50.6% (US$144.0m / US$284.3m); TTM EBITDA margin 56.0% | Mid-tier copper peers typically 35–45% | 82 | Top-quartile for the sub-industry |
| Cash generation | Operating cash flow US$137.9m in Q2, +50% quarter on quarter. TTM free cash flow US$153m on TTM operating cash flow US$444m | Free cash flow is suppressed by the build-out: year-to-date capital spend US$154.4m | 68 | Operating cash conversion is strong; free cash flow is a capital-cycle story, not a quality problem |
| Balance-sheet health | Net debt US$452.7m, 0.8× adjusted EBITDA (2.6× at the start of 2025); interest cover 12.43×; liquidity US$181.7m | Mining comfort zone is under 2.0× | 85 | The single clearest improvement in the file. US$60m of revolver repaid through July, US$95m left |
| Reserve life index | 12.6 years consolidated on copper contained in proven and probable reserves | Benchmark for a producer is over 8 years | 62 | Adequate, not long. Caraíba 15.9 years, Tucumã 9.1, Xavantina 10.2 — see the table below |
| Cost position | Consolidated copper C1 US$2.42/lb in Q2 (Caraíba US$2.76, Tucumã US$2.10); 2026 guidance US$2.15–2.35 | Costs rose on lower planned grades, input inflation and a stronger real | 72 | Tucumã is genuinely low-cost; Caraíba is mid-curve and drifting up |
| Reserve base (company disclosure) | Proven & probable | Grade | Contained metal | 2026 guidance | Reserve life |
|---|---|---|---|---|---|
| Caraíba (eff. 31 Dec 2024) | 73,058 kt | 0.90% Cu | 654 kt Cu | 35.0–40.0 kt Cu | 15.9 yr |
| Tucumã (technical report 31 Aug 2021) | 43,052 kt | 0.83% Cu | 356.6 kt Cu | 32.5–37.5 kt Cu | 9.1 yr |
| Xavantina (eff. 30 Jun 2025) | 2,096 kt | 6.92 g/t Au | 466.2 koz Au | 40–50 koz Au | 10.2 yr |
| Consolidated copper | — | — | 1,010.6 kt Cu | 67.5–77.5 kt Cu | 12.6 yr |
Reserve life is contained metal divided by contained metal mined per year at the guidance midpoint, grossed up for recovery (91% Caraíba, 89% Tucumã, 92% Xavantina), giving 80.5 kt of contained copper mined per year. Measured and indicated resources are far larger — Caraíba alone holds 161,083 kt at 0.91% for 1,465 kt of contained copper, 2.24× its reserve — and Caraíba has been mined continuously since 1979 on a reserve life that has never been long. That conversion history is credited explicitly in the §4 net-asset-value build rather than waved at here.
Moat score: 49/100 — the average of the five. A low-cost mine is a genuine advantage; it is not a franchise, and it depletes.
| Direct competitor | Threat type | Share trajectory | Moat-erosion vector |
|---|---|---|---|
| Freeport-McMoRan (FCX), Southern Copper (SCCO) | Scale incumbents | Ero gaining — both are supply-constrained by grade decline and permitting | None direct. They set the marginal cost curve Ero is measured against; their capital discipline is what keeps the deficit open |
| Hudbay Minerals (HBM), Capstone Copper, Lundin Mining | Mid-tier peers competing for capital and for M&A assets | Stable — Ero screens better on cost, worse on jurisdiction diversity | Competes for the same generalist copper dollar; a peer with a longer reserve life can win the flow |
| Vale Base Metals | Partner and counterparty on Furnas — and the owner of the asset until the earn-in completes | Ero has the right to earn 60%; Vale currently owns 100% | The most concrete competitive dependency in the file. Ero does not yet own the project it is spending to earn |
| Chinese smelter capacity | Buyer-side concentration | Deteriorating for all concentrate sellers | Treatment and refining charges are set by smelter overcapacity. Ero has no leverage over the terms it realises |
Net effect on the moat: Switching Costs held at the neutral 50 (nothing to switch), Cost Advantage trimmed to 62 on the named grade and currency pressures, Pricing Power held at 30 on the smelter-terms read. Overall competitive threat level: low — nobody is taking Ero's market; the risk is that the market itself reprices. That propagates to the §11 bear (a copper de-rating, not a share-loss story) and to the §12 thesis-invalidation rule (Tucumã's cost advantage failing to hold).
Quality 72 (was 70). Up two points, and the two points are the balance sheet: 0.8× leverage from 2.6× in eighteen months, with Tucumã now demonstrably running rather than promising to. Held back by a moat of 49, a 12.6-year reserve life that is adequate rather than long, and a cost base the company itself says is under inflationary and currency pressure. Country risk is deliberately not scored here — it belongs to the driver and the bear case, and double-counting it would corrupt the pillar.
| Step | Input | Source / discipline |
|---|---|---|
| Discount rate r | 9.13% = 4.63% + 4.50% + 0.00% | Risk-free is the 10-year Treasury at 4.63% (FRED DGS10, 13 Aug 2026); equity risk premium is the framework's fixed 4.50%; the risk add-on is 0.0% because Business Quality is 72 (≥65). Checked rather than assumed: beta is 1.586, below the 1.60 add-on trigger, and market capitalisation of US$3.70bn is not micro-cap. At r = 9.20% (the macro report's 4.70% risk-free) the net asset value is C$25.26 and the ratio 1.92 — inert. |
| Commodity deck | US$6.00/lb copper, US$4,000/oz gold | US$6.00 sits between copper's 200-day average of US$5.87 and its 50-day of US$6.35 — a mid-cycle figure in the sense L570 asks for, and the same absolute deck applied to Barrick one day earlier in this batch. The spot-deck answer is published below as a sensitivity, and it matters: see the load-bearing note. |
| Realisation | Copper ×0.938 = US$5.63/lb · gold ×0.8646 = US$3,458/oz | Both are now derived like-for-like, from a period average rather than a spot price. Copper: Ero realised US$5.78/lb in Q2 against the Q2 2026 HG=F average of US$6.1618/lb (62 sessions, computed from the same series this report uses for momentum) → 0.938. The gap is treatment and refining charges, payability and provisional pricing. Gold: realised US$3,903/oz against the Q2 2026 GC=F daily average of US$4,514.03/oz (62 sessions, the same window and session count as copper) → 0.8646 — a deeper discount because Xavantina sells into a Royal Gold precious-metals purchase arrangement. |
| Volumes | 72.5 kt copper (159.83 M lb) · 42 koz mined gold | Copper at the 2026 guidance midpoint. Gold at the low end of the 40–50 koz range, which is where management guided it on the Q2 call. The 11,860 oz of historic stockpile recovery inside Q2's 20,553 oz is a one-off and is excluded. |
| All-in sustaining cost | Copper US$3.38/lb · gold US$2,700/oz | Gold AISC is the top of the company's own updated 2026 guidance (US$2,200–2,700). Copper AISC is estimated: C1 at the top of guidance (US$2.35) plus US$1.03/lb of sustaining capital, being US$165m of an assumed US$190m life-of-mine sustaining spend. Ero publishes copper C1 and gold AISC but no copper AISC — independently confirmed this run against the Q2 release — so this is the softest input in the report. Its band boundaries are published below. |
| Corporate | US$80m general and administrative plus expensed exploration · US$22m net interest | Q2 selling, general and administrative was US$13.2m annualising to US$53m; the balance is expensed exploration. Net interest declines as the revolver is repaid; US$22m is the life-of-mine average. Not included: the CFO's Q2-call guidance of a further US$20–25m of currency- and inflation-driven capital-expenditure pressure — noted here because it bears directly on the estimated sustaining figure above. |
| Tax | 19% | Trailing effective rate 18.93%, held by the SUDENE regional incentive against a 34% Brazilian statutory rate. Using it flat for 17.9 years is generous, since the incentive has expiry dates. |
| Mine life | 17.9 years | Reserves (1,010.6 kt contained copper) plus 50% of each producing mine's incremental measured-and-indicated resource — Caraíba 811 kt × 50% = 405.5 kt, Tucumã 55.1 kt × 50% = 27.6 kt — over 80.5 kt of contained copper mined per year. Reserves alone give 12.6 years; a mine operating since 1979 with a resource 2.24× its reserve is not a 12.6-year asset. Note the asymmetry is smaller than it looks: Tucumã's measured-and-indicated is only 1.15× its reserve, against Caraíba's 2.24×. Annuity factor at r = 9.13% is 8.6663. |
| Net asset value build (base-case deck) | US$m | C$/share |
|---|---|---|
| Copper margin — 159.83 M lb × (US$5.628 − US$3.38) | 359.3 | — |
| Gold margin — 42,000 oz × (US$3,458 − US$2,700) | 31.9 | — |
| Less corporate G&A and expensed exploration | (80.0) | — |
| Less net interest | (22.0) | — |
| Pre-tax annual cash flow | 289.2 | — |
| Tax at 19% | (54.9) | — |
| After-tax annual cash flow | 234.2 | — |
| Present value of operations (× 8.6663) | 2,029.7 | 26.59 |
| Furnas — 60% earn-in right on a US$2.0bn PEA net present value, risked at 30% | 360.0 | 4.72 |
| Less net debt at 30 Jun 2026 | (452.7) | (5.93) |
| Net asset value | 1,937.0 | 25.38 |
| Sensitivity — every variant that could plausibly change the answer | NAV C$/sh | P/NAV | Band |
|---|---|---|---|
| Central — deck US$6.00/US$4,000, AISC US$3.38, life 17.93 yr, Furnas 30% | 25.38 | 1.91 | Expensive |
| Full spot deck US$6.60 / US$4,380.40 | 34.92 | 1.39 | Full — the one variant that changes the signal |
| Reserves-only life, 12.6 years | 21.22 | 2.28 | Expensive |
| Copper AISC US$3.10 (sustaining capital only US$120m/yr) | 29.50 | 1.64 | Expensive |
| Copper AISC US$3.70 (sustaining capital US$216m/yr) | 20.68 | 2.34 | Expensive |
| Furnas carried at zero | 20.66 | 2.34 | Expensive |
| Furnas risked at 40% instead of 30% | 26.95 | 1.80 | Expensive |
| r = 10.13% (if the quality add-on applied — it does not) | 23.71 | 2.04 | Expensive |
| r = 9.20% (the macro report's 4.70% risk-free) | 25.26 | 1.92 | Expensive |
| Memo — the withdrawn 0.96 copper realisation | 27.32 | 1.77 | Expensive |
| Copper deck ↓ / AISC → | US$3.00 | US$3.20 | US$3.38 (central) | US$3.60 | US$3.80 |
|---|---|---|---|---|---|
| US$5.50/lb | 2.01 | 2.29 | 2.62 | 3.18 | 3.94 |
| US$5.75/lb | 1.76 | 1.97 | 2.21 | 2.59 | 3.07 |
| US$6.00/lb (central) | 1.56 | 1.73 | 1.91 | 2.19 | 2.52 |
| US$6.25/lb | 1.41 | 1.54 | 1.68 | 1.89 | 2.14 |
| US$6.50/lb | 1.28 | 1.39 | 1.50 | 1.67 | 1.86 |
| US$6.60/lb (14 Aug settle) | 1.24 | 1.34 | 1.44 | 1.59 | 1.76 |
| US$7.00/lb | 1.08 | 1.16 | 1.24 | 1.35 | 1.47 |
| Lens | Weight | Reading | Score |
|---|---|---|---|
| The anchor (P/NAV) | 40% | 1.91× warranted — deep in the Expensive band | 12 |
| Sector median | 20% | EV/EBITDA 5.79× on 2027 estimates against a mid-tier copper peer group typically at 7–9×. Genuinely cheap on this lens | 72 |
| Own-history decile | 15% | Trailing P/E 11.8× and price-to-book 3.00×. Price-to-book is at the top of the five-year range; the stock is up 152.7% in twelve months and sits at the 91.5th percentile of its 52-week range | 30 |
| Growth-adjusted | 10% | Forward price/earnings 9.02× on 2026 estimates (US$3.87 = C$5.37) and 7.50× on 2027 (US$4.66 = C$6.46). Forward PEG 0.58. Cheap — on estimates struck at a spot-or-better copper deck | 70 |
| Analyst consensus | 15% | Mean target C$50.41, median C$50.50, on 16 analysts — +4.1% upside. Within 10% of consensus, so “fairly valued per analyst consensus” | 52 |
Weighted, the relative lenses would put this name in the fifties. They do not get to. The anchor and the guardrail are supreme, and the score is the weighted blend of the five lenses at the SKILL's own weights — (12×0.40) + (72×0.20) + (30×0.15) + (70×0.10) + (52×0.15) = 38.5, published as 38 — reproducible from the table above rather than set by discretion, and inside the Expensive band (which runs to 39) as L464 requires. It sits near the top of that band precisely because four of the five relative lenses are supportive. This is the honest shape of the disagreement: on any earnings- or EBITDA-based multiple Ero looks cheap, and on a discounted mine plan at a base-case copper deck it does not. The reconciliation is the implied deck of US$7.67/lb.
| Analyst price targets (Yahoo panel, 16 analysts) | Value | vs C$48.44 |
|---|---|---|
| High | C$58.00 | +19.7% |
| Mean | C$50.41 | +4.1% |
| Median | C$50.50 | +4.3% |
| Low | C$45.00 | −7.1% |
Provenance: the FMP consensus endpoint was degenerate this run — high, low, median and consensus all returned US$31.00 with a last-quarter count of zero, i.e. a single stale target 11% below the NYSE price. Per the mandatory fallback rule that is a failed pull, and the Yahoo panel above was used instead. One inconsistency worth flagging: Yahoo reports 16 analysts but its recommendation distribution sums to 18 (5 strong buy, 7 buy, 6 hold, 0 sell). Bullish share is computed as 12/18 = 66.7%.
| Analyst grades and recent actions | Detail |
|---|---|
| Consensus | Buy — 5 strong buy, 7 buy, 6 hold, 0 sell, 0 strong sell. 66.7% bullish, so “solid buy consensus with some caution” |
| Last 30 days | No rating changes. The most recent action was Bank of America upgrading Neutral → Buy on 16 Jul 2026 — 32 days ago, outside the window |
| Prior action | Goldman Sachs downgraded Buy → Neutral on 14 Apr 2026 |
| Post-Q2 target moves | Mixed, and worth noting: TD Securities raised to C$45 (from C$44) — below the current price; Stifel raised to C$53 (from C$52); Jefferies cut to C$42 from C$49 and kept a Hold. Two of the three most recent targets sit below C$48.44 |
Ero's primary underlying driver is the copper price, with a secondary gold leg through Xavantina and a cost-side currency leg through the Brazilian real. It is a geared bet on the metal: every US$0.50/lb on the copper deck moves annual after-tax cash flow by roughly US$61m, about 26% of the US$234.2m the §4 net-asset-value build runs on.
| Horizon | Copper (82% weight) | Gold (18% weight) | Blended |
|---|---|---|---|
| Historical (25%) | 76 | 70 | 74.9 |
| Current (50%) | 88 — HG=F US$6.60/lb against a consolidated C1 of US$2.42/lb. Above both its 50-day (US$6.35, rising) and 200-day (US$5.87) averages, with all three momentum windows positive: +6.10% (4wk), +7.93% (6wk), +1.82% (8wk) | 82 — GC=F US$4,380.40 against a Xavantina all-in sustaining cost guided to US$2,200–2,700/oz. Level is excellent | 87 |
| Forward (25%) | 68 — structural deficit, grid and electrification demand, and very little new mine supply. Against that: a September Fed hike is roughly 44% market-implied, which lifts the dollar and pressures industrial metals, and Chinese demand is not accelerating | 58 — gold sits above a falling 50-day average and below its 200-day. Rate cuts are priced out; the bid is fiscal debasement, not easing | 66 |
| Weighted per commodity (25/50/25), then blended 82/18 | copper 80.0 · gold 73.0 → 78.7 | ||
| Less the Brazilian real cost headwind (quantified by the CFO: +US$0.10/lb copper C1, +US$100/oz gold C1) | −3.4 | ||
| Underlying Driver score | 75 — Tailwind | ||
Weights are the guided 2026 revenue split: copper 72.5 kt at a realised price near US$5.80/lb is about 83% of revenue, mined gold at the guided low end about 17%. Rounded to 82/18.
Thesis-invalidation floor: copper below US$4.50/lb sustained. At that level the base-case-deck margin over an estimated US$3.38/lb all-in sustaining cost collapses to roughly US$0.84/lb (4.50 × 0.938 − 3.38), annual after-tax cash flow falls to about US$52m, and the deleveraging story reverses. That is not today's risk — copper is 47% above it — but it is the number that breaks the case rather than dents it.
Driver confidence 62%: base 70, less 10 because the copper forward outlook depends on a Chinese demand read that could not be independently refreshed this run (web-search budget exhausted), plus a small deduction for the gold realisation factor being derived rather than sourced.
The 12 Aug 2026 macro report reads XLB (Materials) at O / SO / SO across Short, Medium and Long — Outperform now, Strong Outperform on both longer horizons, and the strongest row in the entire sector matrix. Anchoring on the Medium horizon, economic pressure is Tailwind and the stance is Trend-Following with conviction 82 (up from 78 against the 30 Jul report). The regime of record is “energy-shock stagflation”: a supply-driven inflation impulse into a contracting labour market, with Fed cuts priced out and the live debate hike-versus-hold. That combination is unusually good for a low-cost producer of a physically scarce industrial metal and unusually bad for long-duration equities — which is exactly the rotation the sector matrix describes. And it amplified nothing. The base signal is HOLD on every horizon and HOLD never amplifies; independently, a name at 1.91× its warranted P/NAV is barred from STRONG BUY outright. A supportive economy does not make an expensive price cheap.
Source: sector-map (GICS Materials → XLB); ERO.TO is not in the macro report's 10-name Economic Watchlist Forecast · Macro report 2026-08-12
| Component | Weight | Reading | Score |
|---|---|---|---|
| Multi-timeframe trend | 30% | All five timeframes bullish; monthly 78, weekly 78, daily 88, hourly 86, 15-minute 76 | 81 |
| Risk-reward / position risk | 20% | The weak leg. The nearest logical stop sits at C$41.00, below the 7–10 August breakout base — 15.4% away, or 3.2 ATR (ATR 2.35, 4.85% of price). Anything beyond 2.5 ATR is an unfavourable entry by definition. Price is at the 91.5th percentile of its 52-week range and 23.1% above its 50-day average | 32 |
| Macro overlay (Materials = High sensitivity) | 20% | Sector rotation is strongly favourable (XLB O/SO/SO). Fed path is not — hikes are the live debate and the minutes land in two days | 58 |
| Sentiment | 15% | No rating changes in 30 days; the last action was BofA's 16 July upgrade. Estimate revisions are rising. News tone is positive on the Q2 beat. Offset by post-Q2 target moves that were genuinely mixed — Jefferies cut to C$42 and TD's C$45 sits below the market price | 60 |
| Catalysts | 15% | One clear high-impact catalyst inside 30 days (FOMC Minutes, 19 Aug). Earnings are 80 days out. Clustering score 58 — “focused”, normal size but tighten around the event | 58 |
| Entry/Exit Timing | 60 — Improving | ||
| Position-risk detail | Level | Distance from C$48.44 |
|---|---|---|
| 52-week closing high (29 Jan 2026) | C$51.21 | +5.7% |
| Recent swing high (10 Aug 2026) | C$50.93 | +5.1% |
| Bollinger upper band (20, 2) | C$52.11 | +7.6% |
| 20-day average | C$41.13 | −15.1% |
| 50-day average (rising; C$38.75 five sessions ago) | C$39.35 | −18.8% |
| 200-day average (rising) | C$38.55 | −20.4% |
| Base-case-deck net asset value (§4) | C$25.38 | −47.6% |
| Proposed stop | C$41.00 | −15.4% (3.2 ATR) |
Timing confidence 60%: base 75, less 10 for a high-impact economic release inside seven days on a high-macro-sensitivity name, less 5 for the missing TSX bar on 11 August in the price series (the US listing traded that session and was used to confirm the sequence).
| Date | Event | Impact | Forecast | Previous | Relevant? | Why |
|---|---|---|---|---|---|---|
| 18 Aug 2026 | Housing Starts & Building Permits (Jul) | High | 1.35m / 1.37m | 1.427m / 1.374m | ⚠ Medium | US construction is a real copper end-market, but a single month's starts print moves the metal very little |
| 19 Aug 2026 | FOMC Minutes | High | — | — | ✅ Yes | The one that matters. Two trading days out → fires the §8 WAIT-FOR-EVENT override for a High-macro-sensitivity Materials name. It is also the stated trigger for the macro report's live “Fed hikes in September” tail: minutes reading more hawkish than the statement lifts the dollar and real rates, and industrial metals wear it |
| 20 Aug 2026 | Philadelphia Fed Manufacturing (Aug) | Medium | 25.0 | 41.4 | ⚠ Medium | Manufacturing surveys are the standard demand proxy for base metals. A forecast fall from 41.4 to 25.0 is a large deceleration to absorb |
| 18 Aug 2026 | Industrial Production & Capacity Utilization (Jul) | Medium | +0.3% / 76.3% | +0.1% / 76.1% | ⚠ Medium | Direct read on copper-consuming activity |
| Date | Event | Actual | Forecast | Surprise | Impact |
|---|---|---|---|---|---|
| 17 Aug 2026 | NY Empire State Manufacturing (Aug) | 20.6 | 11.0 | +87.3% | Positive for copper demand — a large upside manufacturing surprise on the report date itself |
| 14 Aug 2026 | Michigan Consumer Sentiment (Aug) | 51.0 | 54.5 | −6.4% | Negative, but consumer sentiment is a weak channel for an industrial metal |
| 14 Aug 2026 | Michigan 1-Year Inflation Expectations (Aug) | 4.3% | — | +0.1pp | Rising expectations feed the hawkish case into the 19 Aug minutes — the mechanism behind the WAIT |
| 14 Aug 2026 | Atlanta Fed GDPNow (Q3) | 4.3% | 5.8% | −25.9% | A sharp growth downgrade. Ambiguous for copper: weaker demand, but a weaker case for hiking |
| 14 Aug 2026 | CFTC Copper speculative net positions | 80.4k | — | +3.3k | Speculative length is building into the move — a crowding risk, not yet an extreme |
Materials carries a High macro sensitivity in the framework, which sets the macro weight inside the Timing pillar at 0.20 and, more consequentially, activates the §8 WAIT-FOR-EVENT rule. FOMC Minutes on Wednesday 19 August fall two trading days from this report, inside the three-trading-day window, so the Short signal is set to WAIT regardless of composite score and the next update is scheduled for 20 August — the trading day after the release.
This is not a formality. The macro report of record carries “Fed hikes in September” as a live tail at roughly 44% market-implied probability with three hawkish dissents in July, and it names these minutes as the trigger. A copper miner with a beta of 1.586 and a 40% four-week gain is precisely the kind of position that gives back a week's move on a hawkish surprise. Two days of waiting costs very little; being wrong about the direction costs a good deal more.
Timing confidence takes the mandated −10 for a high-impact economic release inside seven days on a high-macro-sensitivity name.
| Timeframe | Trend | Direction | RSI | MACD | Key S/R | Breakout | Vol |
|---|---|---|---|---|---|---|---|
| Monthly | Uptrend ↑ | Bullish | 65.0 | +3.80, hist +0.82 (rising) | S: US$17.68 R: US$39.80 | Resistance breakout | 0.83× |
| Weekly | Uptrend ↑ | Bullish | 62.6 | +1.43, hist +0.68 (rising) | S: US$22.93 R: US$39.80 | Resistance breakout | 0.17× |
| Daily | Strong uptrend ↑ | Bullish | 66.5 | +3.04, hist +1.02 (falling from +1.64) | S: C$41.13 (20-DMA) R: C$51.21 | Resistance breakout | 0.63× |
| Hourly | Strong uptrend ↑ | Bullish | 59.1 | +0.15, hist +0.16 | S: US$34.67 R: US$35.50 | Resistance breakout | — |
| 15-minute | Uptrend ↑ | Bullish | 59.7 | +0.20, hist +0.01 (flat) | S: US$33.99 R: US$35.03 | Resistance breakout | — |
| Confluence: All Bullish · MTF Score 81 | |||||||
Every timeframe points the same way, which is why the multi-timeframe trend score is 81 and the confluence reads All Bullish. Daily is a textbook strong uptrend: C$48.44 above the 20-day average at C$41.13, the 50-day at C$39.35 and the 200-day at C$38.55, with both longer averages rising. The stock is up 40.5% in four weeks and 152.7% in twelve months.
Three things temper it. First, RSI at 66.5 is not overbought but is outside the 35–65 band the framework's Technical entry group requires — which is what leaves that entry path unmet. Second, the daily MACD histogram is falling, +1.64 → +1.45 → +1.17 → +1.02 over four sessions: the trend is intact but the acceleration has gone. Third, price is 23.1% above its 50-day average and 4.9% below the 10 August closing high of C$50.93 (the 52-week closing high of C$51.21 dates from 29 January), so the last week has been distribution inside the move rather than continuation. Volume on the 17 August session was 250,428 against a 20-day average of 399,700 — 0.63×, no conviction either way.
The pattern is extended leader, momentum decelerating, not higher-timeframe uptrend with a lower-timeframe pullback. The second of those is a buy setup; the first is not. Monthly, weekly, daily and hourly figures on the US listing are Polygon's; the daily levels quoted in Canadian dollars are computed from raw, unadjusted TSX closes (Ero pays no dividend, so raw and adjusted are identical — the auto-adjust trap cannot bite here).
TSX:ERO daily closes in Canadian dollars, 13 Feb 2026 to 17 Aug 2026 (126 sessions), with the 50-day simple moving average. Raw unadjusted closes — Ero pays no dividend, so raw and adjusted are identical. The near-vertical section from 31 July is the move that produced this report's downgrade: C$37.64 to C$50.93 in five sessions (4, 5, 6, 7 and 10 August — 3 August was a Canadian holiday), then four sessions of digestion.
12-month path, +34.2% from C$48.44. Copper reaches and holds US$7.50/lb and gold US$4,800/oz. On the same §4 build that lifts net asset value to C$48.73 (on copper alone, with gold held at the §4 deck of US$4,000, it is C$46.06). Note what C$65 against a C$48.73 net asset value means: the market would be paying about 1.33× — so this case needs the metal to rise and today's 1.91× premium to compress, not persist. Underneath it: Tucumã clears its filtration constraint with the Q4 modular filters and runs at the top of guidance, Caraíba's higher-grade Surubim benches deliver the promised second-half cost decline, the revolver is repaid and a first dividend or buyback is announced, and the Furnas pre-feasibility study in 2027 confirms the preliminary assessment's 27% internal rate of return. Requires copper, execution and capital return together — which is why it is 25% and not the base.
12-month path, −3.0% from C$48.44. Copper oscillates in a US$6.00–6.60/lb range, 2026 guidance is met, and 2027 earnings arrive roughly where consensus expects (US$4.66 a share). The stock marks time: the earnings come through but the multiple does not expand, because the price already discounts a copper deck 16% above spot. The analyst consensus target of C$50.41 sits 7.3% above this — a difference worth naming rather than papering over, and it is the gap between a Street net asset value struck at sell-side discount rates and one struck at the framework's 9.13%. This is a flat year, not a bad one: a well-run, deleveraging, low-cost copper producer that has already been paid for.
12-month path, −38.1% from C$48.44. Four things that are all individually plausible, and two of which are named as live risks in the macro report of record. (1) The 19 August minutes read hawkish, the Fed hikes in September, the dollar rallies and industrial metals de-rate — the macro report's own live tail, at ~44% implied. (2) Copper falls to US$5.00–5.50/lb; at a US$5.00/lb copper deck, holding the §4 gold deck of US$4,000/oz, the net asset value is C$11.59 — so a move to C$30 is a partial de-rating, not the floor. (3) The Brazilian real strengthens further and the CFO's flagged US$0.10/lb and US$100/oz cost inflation lands, while the finite hedge programme — 70% of costs at a BRL 5.54 floor, worth US$40–45m this year — rolls off. (4) The Furnas earn-in demands equity: Ero's 60% share of a development that will likely need US$1.5–2.0bn of capital sits against a US$3.70bn market capitalisation and US$452.7m of net debt. On the competitive read, nobody takes Ero's market — the risk is that the market reprices the metal, and a beta of 1.586 with a 152.7% twelve-month gain behind it means this name gives back more than the sector. Secondary: the Strait of Hormuz remains closed on the 12 Aug macro report's read (Brent US$88.58), and a move above US$100 would lift diesel and freight costs at all three mines.
Forecast:
ENTRY — Fundamental group: price below fair value of C$25.38
→ FORECAST: unlikely within 12 months without a copper collapse.
→ BASIS: C$25.38 is 47.6% below the current price and 34.2% below the 200-day average of
C$38.55. Reaching it needs either a move to roughly US$5.00/lb copper — the §11 bear — or a
substantial rise in the net asset value itself. The second route is the realistic one: the value rises with the
commodity deck, with resource conversion, and with Furnas de-risking. A 2027 Furnas pre-feasibility study at the
preliminary assessment's economics would justify a 60% rather than 30% risk factor and lift the net asset value to
C$30.09 on its own.
→ CONFIDENCE: Moderate. The gap closes from both ends over time, but not quickly.
ENTRY — Technical group: RSI back inside 35–65 with a volume-confirmed hold above the 50-day
average
→ FORECAST: 2–5 weeks at the current trajectory.
→ BASIS: RSI has fallen from 77.5 on 10 August to 66.5, roughly 3 points a week. At that pace it
re-enters the band inside a fortnight without any price fall at all — a sideways consolidation does it. The
50-day average is rising about C$0.12 a session, so the two converge from both directions. The volume condition is
catalyst-dependent and cannot be time-projected; the 19 August minutes and the Q4 filter commissioning are the two
events most likely to supply it.
→ CONFIDENCE: Moderate. The mechanical condition is close. It would not change the
signal — the Valuation Ceiling caps all three horizons independently of the technical path, and this is
worth being explicit about rather than letting a reader infer that a clean RSI print unlocks a buy.
→ RISK: a hawkish 19 August pushes RSI down through the band quickly and takes price with it.
ENTRY — Catalyst group: a post-earnings move above +5% on 2× volume
→ FORECAST: catalyst-dependent — earliest early November 2026.
→ BASIS: Q3 results are the next scheduled opportunity, roughly 80 days out and not yet
formally dated. Ero has beaten consensus in recent quarters and the second half carries higher Caraíba grades
and more Tucumã throughput, so the operational set-up is favourable. An out-of-cycle capital-return
announcement — management said “later this year” — could substitute.
→ CONFIDENCE: Low-Moderate. A +5% single-session reaction is a high bar for a name that has
already run 40% into the print.
Forecast:
EXIT — Stop-Loss: two closes below C$41.00
→ FORECAST: unlikely in the next 4–6 weeks absent a macro shock.
→ BASIS: C$41.00 is 15.4% below the current price, 3.2 ATR away, and sits under a rising 20-day
average. Reaching it inside six weeks would take roughly a 2.5% average daily decline — a trend break, not
noise. The realistic trigger is a hawkish 19 August followed by a September hike.
→ RISK TRIGGER: FOMC Minutes 19 Aug 2026 and the 16–17 September decision.
EXIT — Profit-Target: C$50.50 with RSI above 70
→ FORECAST: the price leg is reachable within 2–4 weeks; the combination is less likely.
→ BASIS: C$50.50 is only 4.3% away and the stock closed at C$50.93 as recently as 10 August. But
RSI is falling from 77.5, so a grind back to C$50.50 would probably arrive with RSI in the 60s rather than
above 70, leaving the group unmet. Note that one of its three conditions is already live — that
quality has not improved enough to justify the re-rating — which is the §4 argument restated in exit
form. What keeps the group clear is the other two legs, price and RSI, and a group is live only when all
three hold.
→ CONFIDENCE: Moderate.
EXIT — Thesis Invalidation
→ FORECAST: no leg likely within 6 months on current trajectory; the cost-curve leg is the one to
watch.
→ BASIS: Q2 consolidated C1 of US$2.42/lb already sits above the US$2.15–2.35 guidance
range on lower planned grades, and management expects it to decline sequentially in the second half as higher-grade
Surubim benches come in. If it does not — particularly if the real stays strong — the cost-curve
invalidation condition is the first that moves.
→ CONFIDENCE: Moderate-High that the second half improves; the company has been specific about
the mine sequencing that delivers it.
You are risking C$7.44 a share to the hard stop, and a 38% drawdown in the bear case, to gain a 12-month base case that is 3.0% below where you bought.
What you're risking. The stop at C$41.00 is 15.4% below today — C$7.44 a share, 3.2 ATR. The §11 bear takes you to C$30, a 38.1% drawdown, and it is triggered by an event two trading days away that the macro report already prices at roughly 44%. You would be buying at the 91.5th percentile of the 52-week range, 23.1% above the 50-day average, with the daily MACD histogram decelerating and RSI at 66.5. None of the three entry paths is open — not the fundamental one (price is 90.9% above the r-struck net asset value), not the technical one (RSI outside band, no volume confirmation, no higher low), not the catalyst one (the earnings reaction was +2.1%, not +5%). And you would be paying for a copper price of US$7.67/lb held flat for 17.93 years.
What you're gaining. Immediate exposure to the cleanest commodity trend in the book — copper above both moving averages on a rising 50-day with all three momentum windows positive — through a producer whose Q2 all-in margin was 41.5% of its own realised price (48.8% against the 14 Aug settle). A balance sheet that went from 2.6× leverage to 0.8× in eighteen months, with capital spending falling from 2027 and a first shareholder distribution flagged for later this year. Free optionality on Furnas beyond the 30% risked in the build, on Boa Esperança, and on resource conversion at a mine that has run since 1979. The bull case is +34.2%. Risk-reward from here is C$16.56 of upside against C$7.44 of stop risk, or 2.2 to 1 — respectable in isolation, but the probability-weighted outcome is C$48.10, essentially flat.
The read: acting now buys a good business at a price that already contains the good news, two days before an event that can take it out of the price. Waiting for the 19 August minutes costs two days. Waiting for the entry zone — a pullback toward C$41–43 with RSI back inside the band — would materially improve the deal. This is an assessment, not a buy verdict.
You are giving up a 3.0% base-case round trip and a genuine copper tailwind, to protect against a 38% bear and to stop paying a 90.9% premium to the discounted mine plan.
What you're giving up. The base case is C$47, so selling forgoes very little in the central path — but it forgoes the bull case at C$65, +34.2%, which is live while copper trends as it does. You would be selling a business whose driver score just rose 67 → 75, whose quality score rose 70 → 72, and which is two quarters from its first shareholder distribution. You also give up the Furnas and resource-conversion optionality entirely, at the exact point where a 2027 pre-feasibility study could re-rate it. You would not be selling below fair value: the r-struck net asset value is C$25.38 and the price is C$48.44.
What you're protecting. The 38.1% bear-case drawdown to C$30, on a stock with a beta of 1.586 that has gained 152.7% in twelve months and 40.5% in the last four weeks. And you stop paying a 90.9% premium to the discounted mine plan — the C$23.06 a share above net asset value that is a payment for optionality, not a discount received.
Is any exit rule actually triggered? No. The stop at C$41.00 is not live. No thesis-invalidation leg is live. The profit-target group has two of three conditions unmet — price has not reached C$50.50 and RSI is 66.5, not above 70 — though its third condition, that quality has not improved enough to justify the re-rating, is live. The mechanical read is Hold, not Exit. For an existing holder this is a hold-and-trim-into-strength zone rather than a sell. For someone with no position, the same arithmetic says wait: the conviction ladder is 0 of 3, which is “Wait”.
No portfolio allocation or role was specified for this run, so a position size in percentage terms is not computed — specify an allocation and role for sizing guidance. What can be said is the risk shape.
| Volatility context | Value | Read |
|---|---|---|
| ATR(14) | C$2.35 | 4.85% of price — a typical day moves nearly 5% |
| Beta vs SPY | 1.586 | A 5% position behaves like a 7.9% position in risk terms |
| 12-month range | C$18.80 – C$51.21 (closing) | The stock has nearly tripled in a year. That cuts both ways |
| Stop distance | 15.4% (3.2 ATR) | Beyond the 2.5-ATR threshold — the entry is unfavourable on position-risk grounds alone |
| Conviction ladder | Wait (0 of 3) | Ladder factor 0×. No entry path is open, so there is no size to compute |
| Catalyst clustering | 58 | Above 50 — no clustering-driven size reduction, but tighten around 19 August |
The ladder reads Wait, so rather than a percentage the useful output is the levels to watch: C$41–43 for a pullback into the breakout base with RSI back inside 35–65, and C$25.38 as the r-struck fair value that the fundamental path would require. Position sizing is not advice, and none is given here.
{
"ticker": "ERO.TO",
"company": "Ero Copper Corp.",
"brand": "Ero Copper",
"currency": "CAD",
"reporting_currency": "USD",
"exchange": "TSX",
"exchange_ticker": "TSX:ERO",
"isin": "CA2960061091",
"isin_note": "CORRECTED THIS RUN. Every prior ERO.TO calibration carried CA29767G1090, which FAILS the ISIN check-digit test (computed check digit 7, stated 0). CA2960061091 validates (CUSIP 296006109) and matches the provider record for this security. The Mode-B finder sync joins on this field, so the correction is load-bearing.",
"api_ticker": "ERO.TO",
"us_ticker": "ERO",
"finder_ticker": "ERO",
"finder_exchange": "\ud83c\udde8\ud83c\udde6 TSX",
"analysis_status": "on-going",
"gics_sector": "Materials",
"sector": "Materials",
"sub_industry": "Copper Mining",
"country": "Canada",
"lifecycle_stage": "growth",
"date": "2026-08-17",
"version": "v6",
"price_at_rating": 48.44,
"price_asof": "2026-08-17 TSX close (settled bar; cross-confirmed against the NYSE:ERO close of US$34.91 at USD/CAD 1.3872)",
"usd_cad_rate": 1.3872,
"usd_cad_rate_asof": "2026-08-17",
"eps_trailing": 4.11,
"eps_trailing_basis": "Trailing four quarters of diluted EPS in USD: 0.34 (Q3 25) + 0.75 (Q4 25) + 1.02 (Q1 26) + 0.85 (Q2 26) = US$2.96, x 1.3872 = C$4.106",
"trailing_pe": 11.79,
"signal_short": "WAIT",
"signal_medium": "HOLD",
"signal_long": "HOLD",
"primary_signal": "HOLD",
"composite_short": 56,
"composite_medium": 56,
"composite_long": 59,
"quality_score": 72,
"valuation_score": 38,
"timing_score": 60,
"driver_score": 75,
"driver_score_short": 77,
"driver_score_medium": 75,
"driver_score_long": 75,
"quality_detail": {
"industry_benchmark_name": "AISC Margin (Mining)",
"industry_benchmark_value": 41.5,
"industry_benchmark_score": 84,
"industry_benchmark_basis": "Estimated copper AISC US$3.38/lb against Ero's Q2 2026 REALISED copper price of US$5.78/lb = 41.5% margin. Against the HG=F settle of US$6.60/lb the margin is 48.8%. Scored on the realised basis because a concentrate producer never receives the front-month price. The sustaining-capital component of the AISC is ESTIMATED, not disclosed - Ero publishes copper C1 and gold AISC, but not copper AISC.",
"moat_score": 49,
"moat_detail": {
"pricing_power": 30,
"network_effects": 50,
"switching_costs": 50,
"cost_advantage": 62,
"intangible_assets": 55
},
"roic_pct": 18.3,
"roic_basis": "NOPAT US$306.3m (TTM operating income US$378.1m x (1 - 0.19 effective tax)) / invested capital US$1,671m (equity US$1,218m + net debt US$452.7m)",
"roic_percentile_vs_peers": 84,
"capital_allocation": 76,
"management_skin_in_game": 55,
"roe_pct": 30.8,
"cu_c1_q2_2026_usd_lb": 2.42,
"cu_c1_fy2026_guidance_usd_lb": "2.15-2.35",
"cu_c1_caraiba_q2_usd_lb": 2.76,
"cu_c1_tucuma_q2_usd_lb": 2.1,
"au_c1_q2_2026_usd_oz": 1586,
"au_aisc_q2_2026_usd_oz": 2881,
"au_aisc_fy2026_guidance_usd_oz": "2200-2700",
"cu_production_q2_2026_t": 17315,
"cu_production_fy2026_guidance_kt": "67.5-77.5",
"au_production_q2_2026_oz": 20553,
"au_production_q2_note": "Includes 11,860 oz of historic stockpile recovery - a one-off. Run-rate mined gold is about 8,700 oz per quarter and management guided FY2026 mined gold to the LOW END of 40,000-50,000 oz.",
"realised_cu_q2_2026_usd_lb": 5.78,
"realised_au_q2_2026_usd_oz": 3903,
"adjusted_ebitda_q2_2026_usd_m": 144.0,
"operating_cash_flow_q2_2026_usd_m": 137.9,
"net_debt_usd_m": 452.7,
"total_debt_usd_m": 554.4,
"total_debt_provider_lease_inclusive_usd_m": 573.4,
"total_debt_note": "The company's own Q2 2026 total debt of US$554.4m is used, not the providers' US$573.4m, which is lease-inclusive. The US$18.9m difference was reconciled rather than absorbed - the FMP totalDebt trap.",
"net_debt_to_ebitda": 0.8,
"net_debt_to_ebitda_prior": 2.6,
"liquidity_usd_m": 181.7,
"capex_fy2026_guidance_usd_m": "285-330",
"capex_ytd_h1_2026_usd_m": 154.4,
"shares_diluted_m": 105.877,
"shares_basic_m": 104.283,
"share_growth_yoy_pct": 0.68,
"reserve_life_years": 12.6,
"reserve_life_source": "Company technical-report pages. Caraiba P&P 73,058 kt at 0.90% Cu = 654 kt contained (effective 31 Dec 2024); Tucuma P&P 43,052 kt at 0.83% Cu = 356.6 kt (technical report 31 Aug 2021); consolidated 1,010.6 kt over 80.5 kt of contained copper mined per year at the 2026 guidance midpoint grossed up for recovery. Caraiba alone is 15.9 years, Tucuma 9.1, Xavantina 10.2 on gold.",
"resource_mi_caraiba_kt_cu": 1465,
"resource_to_reserve_ratio_caraiba": 2.24,
"brl_hedge": "70% of annual costs hedged at a BRL 5.54 floor; US$12.7m realised gain in Q2, US$19.9m year to date, US$40-45m expected for the full year. EXCLUDED from the life-of-mine run rate because the programme is finite.",
"brl_cost_warning": "CFO on the Q2 call: persistent inflation and a strong Brazilian real could add US$0.10/lb to consolidated copper C1 and US$100/oz to mined gold costs."
},
"valuation_detail": {
"nav_basis": "COMPUTED BOTTOM-UP at r = 9.13% over a 17.93-year mine life, with the commodity held at a BASE-CASE DECK of US$6.00/lb copper and US$4,000/oz gold (both about 9% below the settled 14 Aug 2026 prices of US$6.60 and US$4,380.40), per SKILL L490 'commodity price held at the base-case deck' and L570 'mid-cycle commodity prices for normalisation'. US$6.00 sits BETWEEN copper's 200-DMA of US$5.87 and its 50-DMA of US$6.35, and is the same absolute deck applied to ABX.TO on 2026-08-16. Volumes at the FY2026 guidance midpoint (72.5 kt Cu = 159.83 M lb) and mined gold at the guided LOW END (42 koz), with the 11,860 oz Q2 stockpile recovery excluded as a one-off. REALISATION FACTORS CORRECTED AT AUDIT and now derived like-for-like from PERIOD AVERAGES rather than a spot price: copper x0.938 (Q2 realised US$5.78 / Q2 2026 HG=F average US$6.1618 over 62 sessions), gold x0.8646 (Q2 realised US$3,903 / Q2 2026 GC=F DAILY average US$4,514.03 over the same 62 sessions as copper) - the deeper gold discount is the Royal Gold precious-metals purchase arrangement at Xavantina. All-in sustaining costs: gold US$2,700/oz (top of the company's own updated guidance); copper US$3.38/lb, ESTIMATED as C1 at the top of guidance (US$2.35) plus US$1.03/lb of sustaining capital, because Ero publishes copper C1 and gold AISC but NO copper AISC (independently confirmed at audit). RESERVE BASIS: Caraiba, Tucuma and Xavantina are 100% owned, so no attribution step applies and the company's tonnages are used directly - checked before dividing.",
"nav_deck_cu_usd_lb": 6.0,
"nav_deck_au_usd_oz": 4000,
"nav_spot_cu_usd_lb": 6.6,
"nav_spot_au_usd_oz": 4380.4,
"nav_realisation_cu": 0.938,
"nav_realisation_au": 0.8646,
"nav_aisc_cu_usd_lb": 3.38,
"nav_aisc_au_usd_oz": 2700,
"nav_corporate_usd_m": 80,
"nav_net_interest_usd_m": 22,
"nav_tax_rate": 0.19,
"nav_after_tax_cashflow_usd_m": 234.2,
"nav_life_years": 17.93,
"nav_life_basis": "Reserves (1,010.6 kt contained copper) plus 50% of EACH producing mine's incremental measured-and-indicated resource: Caraiba 1,465 - 654 = 811 kt, half = 405.5 kt; Tucuma 411.7 - 356.6 = 55.1 kt, half = 27.6 kt. Total 1,443.7 kt over 80.5 kt of contained copper mined per year = 17.93 years. Reserves alone give 12.6 years; Caraiba has been mined continuously since 1979 on a resource 2.24x its reserve, so a reserves-only life is the wrong lens rather than a conservative one. CORRECTED AT AUDIT: an earlier draft excluded Tucuma's M&I as 'not disclosed' - it IS published (47,687 kt at 0.86% = 411.7 kt) and is now credited, lifting the life 17.6 -> 17.93. The 'asymmetrically conservative' framing is also corrected: Tucuma's M&I is only 1.15x its reserve against Caraiba's 2.24x, so the asymmetry is smaller than claimed. Xavantina's incremental M&I (664.0 koz against a 466.2 koz reserve) remains excluded and is carried as optionality instead.",
"nav_annuity_factor": 8.6663,
"nav_pv_operations_usd_m": 2029.7,
"nav_furnas_usd_m": 360.0,
"nav_furnas_basis": "Ero holds the RIGHT TO EARN 60% of Furnas through a staged earn-in signed July 2024 with Vale Base Metals, which currently owns 100%. Carried as an option, not as an owned interest: 60% of the February 2026 PEA's US$2.0bn NPV(8%) = US$1,200m attributable, risked at 30% for PEA stage, an incomplete earn-in and no pre-feasibility study before 2027. THE PEA DECK IS DISCLOSED AND WAS WRONGLY DECLARED UNAVAILABLE IN AN EARLIER DRAFT: US$4.60/lb copper, US$3,300/oz gold, US$40.00/oz silver - i.e. a copper deck 23% BELOW this report's own base case, so a like-for-like credit would be materially larger and the US$360m carried is conservative on that axis. The initial capital cost is genuinely not disclosed on the company page. SYMMETRY NOTE: this deviates from the batch convention used on ABX.TO and NEM (growth projects at ZERO with their capex excluded). Furnas at zero would strip C$4.72/share - 19% of NAV, a far larger share than Reko Diq is of Barrick - so a zero carry would be more punitive here rather than more conservative. The pairing is kept honest: NO Furnas development capital is deducted anywhere in the build, and the zero-carry case is published (C$20.66, ratio 2.34), which shows the deviation makes this report LESS bearish than the convention would.",
"nav_net_debt_usd_m": -452.7,
"nav_total_usd_m": 1937.0,
"nav_per_share_cad": 25.38,
"nav_at_spot_deck_cad_per_share": 34.92,
"nav_at_spot_deck_ratio": 1.387,
"nav_sensitivity": "On the CORRECTED build (copper realisation 0.938, gold 0.8646, life 17.93 yr). Spot deck 6.60/4380.40 -> C$34.92, ratio 1.39 (FULL - the one variant that changes the signal). Reserves-only life 12.6 yr -> C$21.22, 2.28. Copper AISC 3.10 -> C$29.50, 1.64. Copper AISC 3.70 -> C$20.68, 2.34. Furnas at zero -> C$20.66, 2.34. Furnas at 40% -> C$26.95, 1.80. r = 10.13% -> C$23.71, 2.04. r = 9.20% -> C$25.26, 1.92. Memo: the withdrawn 0.96 copper realisation gave C$27.32 and 1.77. EVERY variant other than the full spot deck leaves the ratio at 1.64 or above. THE DECK IS LOAD-BEARING AND THIS IS STATED RATHER THAN DENIED: at the base-case deck the ratio is 1.91 (Expensive, Gate 3 fires, HOLD); at the full spot deck it is 1.387 (Full, Gate 3 clear, the matrix would give BUY). What the deck does NOT change is amplification, barred above 1.20x in both cases - so the STRONG BUY falls away regardless and only BUY-versus-HOLD turns on the deck.",
"nav_band_boundary_deck_cu_usd_lb_at_140": 6.67,
"nav_band_boundary_deck_cu_usd_lb_at_120": 7.09,
"nav_band_boundary_deck_cu_usd_lb_at_200": 5.92,
"nav_band_boundary_aisc_cu_usd_lb_at_140": 2.75,
"nav_band_boundary_aisc_cu_usd_lb_at_200": 3.46,
"nav_band_boundary_note": "PUBLISHED AS A SURFACE, not a point, per the framework amendment raised on ABX.TO 2026-08-16 - a lone boundary invites the objection that it was chosen. WHICH ASSUMPTION BINDS: THE DECK, NOT THE COST. Along the cost axis (deck held at US$6.00) the 1.40 boundary falls at an AISC of US$2.75/lb, implying sustaining capital of just US$64m/yr across two operating mines against FY2026 capital guidance of US$285-330m - UNREACHABLE, so no credible cost assumption takes this name out of the Expensive band. Along the deck axis (AISC held at US$3.38) the 1.40 boundary falls at US$6.67/lb, ABOVE the 14 Aug settle of US$6.60, reachable only at or above spot. That is the same answer NEM reached and the OPPOSITE of ABX.TO on 16 Aug, where the boundary fell inside the company's own guidance band and the cost was the weak point. Full surface across deck (5.50-7.00) x AISC (3.00-3.80), gold held at 4,000: 27 of 35 cells are EXPENSIVE, 6 are FULL and 2 are FAIR (the two generous-extreme cells at a US$7.00 deck against a US$3.00 or US$3.20 AISC); the lowest ratio anywhere is 1.08; amplification is barred in 33 of 35 cells, since that bar starts at 1.20x and only those same two cells fall below it. The 2.00 DNB line falls at a deck of US$5.92/lb or an AISC of US$3.46/lb - both about US$0.08 from the central case, which is why Trigger 2(a) is adjudicated explicitly rather than passed over. LIFE-AXIS BOUND: at 20 yr the ratio is 1.83, at 30 yr 1.62, at 40 yr 1.54 and at an INFINITE life (perpetuity, annuity 10.953) still 1.50 - so no conceivable reserve update takes this name out of the Expensive band on the life axis alone.",
"implied_deck_cu_usd_lb": 7.67,
"implied_deck_note": "The price of C$48.44 is consistent with a copper deck of US$7.67/lb held flat for 17.93 years at r = 9.13% - 16.2% above the 14 Aug settle of US$6.60. On the 0.938 realisation that is US$7.19/lb RECEIVED, 24.4% above the US$5.78 Ero actually realised in Q2 - a like-for-like comparison, since a deck and a realised price are not the same quantity. The generic implied_growth_rate field is deliberately NOT populated: a mining NAV carries no growth term, so what the price implies is a commodity deck, not a growth rate.",
"guardrail_adjudication": "ADJUDICATED BY HAND, because the linter's Materials guardrail keys on a P/E or P/TBV basis string and this report's basis is P/NAV - so the automated arm is SKIPPED with a warning and a clean exit there is NOT evidence the check ran. P/NAV 1.91x against the 1.5x Materials line: BREACHED. EV/EBITDA against the 8x line: CLEAR on every basis, but by less than an earlier draft implied - US$4,150m EV over the provider's TTM EBITDA of US$585.7m is 7.09x, over the US$566m of LTM adjusted EBITDA implied by the company's OWN 0.8x leverage on US$452.7m of net debt it is 7.33x, and over consensus 6.34x (FY26E) and 5.79x (FY27E). The mixed-basis point is recorded because an earlier draft quoted the 0.8x leverage and the 7.09x multiple side by side off DIFFERENT EBITDA definitions. THE TWO ARMS OF ONE GUARDRAIL DISAGREE. SKILL L469 settles it mechanically - the guardrail is a ONE-WAY FLOOR ('if the ACTUAL multiple >= the line, the name is Expensive REGARDLESS of the warranted ratio'), so a clear EV/EBITDA arm cannot rescue a breached P/NAV arm; and the >=1.40 warranted-ratio test forces Expensive independently. The disagreement is real information and is the main reason valuation confidence is cut to 55.",
"dnb_trigger2_adjudication": "NO ARM FIRES, and arm (a) is the closest call in this report. Relative arm: requires a top-decile own-history multiple with NO growth acceleration - growth is plainly accelerating (revenue +73.9% YoY; Tucuma 28,272 t in 2025 to 32,500-37,500 t guided 2026), so it does not fire. Absolute arm (a) 'deep-expensive alone': requires >=2.00x warranted or >=1.5x the guardrail line (P/NAV 2.25x); the ratio is 1.91x, so it does NOT fire - but by 0.09, and the 2.00 boundary sits only about US$0.08 away on either the deck (US$5.92/lb) or the cost (AISC US$3.46/lb). Stated plainly rather than buried. Were 2.00 reached, the 'exceptional, proven, durable growth' carve-out would be available on the Tucuma ramp - growth in the earnings stream the multiple capitalises. That carve-out exits the DNB; it NEVER exits the Gate-3 cap. Absolute arm (b) 'expensive + a live de-rating catalyst': the Expensive leg is met, so this turns entirely on the second leg. THE CORRECT TEST IS COHORT EXPOSURE, NOT THE TAIL'S STATUS LABEL. SKILL L1089 requires that a tail 'materially applies', and L1118 defines the cohort as names materially levered to the AI capex or monetisation trade, or top-weight index constituents. A Brazilian copper producer is neither, and a market-wide September-hike tail cannot satisfy the arm without firing on every Expensive name in a hawkish regime - plainly not the rule's intent. Does not fire. CORRECTED AT AUDIT: an earlier draft rested this on a claim that the macro report's 'live' tails rank BELOW its 'armed' one. That inverts the macro report's escalation hierarchy and is withdrawn - the verdict stands, the reasoning does not.",
"ev_ebitda_matched": 5.79,
"ev_ebitda_basis": "Enterprise value US$4,150m (diluted market cap US$3,697m + net debt US$452.7m, both USD) over consensus FY2027E EBITDA of US$717m. FY2026E 6.34x, TTM 7.09x, base-case-deck 7.44x. All same-currency - no cross-currency artefact.",
"forward_pe_fy2026": 9.02,
"forward_pe_fy2027": 7.5,
"fcf_yield": 3.7,
"fcf_yield_note": "TTM free cash flow US$153m over EV US$4,150m = 3.7%, suppressed by the build-out (H1 2026 capex US$154.4m). On the base-case-deck after-tax cash flow of US$234.2m the yield is 5.6%. Management: '2026 should be the last major year of capital spending before a significant decline in 2027.'",
"historical_valuation_decile": 8,
"optionality_tilt_applied": 0,
"optionality_tilt_note": "ZERO, and mandatory rather than discretionary: SKILL L464 caps an Expensive-band Valuation score below 40, so a tilt is arithmetically unavailable. The discounted mine plan justifies C$25.38 of the C$48.44 price; the remaining C$23.06 is the PRICE PAID for Furnas, resource conversion and copper-price optionality, not a discount received.",
"third_party_nav_crosscheck": "NONE SOURCED. No published analyst NAV per share for ERO could be obtained this run - the web-search budget was exhausted session-wide. The C$50.41 consensus target implies a Street NAV well above the r-struck figure, which is the expected direction given sell-side discount-rate convention. Directional only; no arithmetic here depends on it. The nearest independent echo is FMP's ratings snapshot, whose discounted-cash-flow sub-score is 1 of 5 - its weakest component."
},
"timing_detail": {
"mtf_confluence": 81,
"risk_reward_score": 32,
"relative_strength_score": 95,
"macro_overlay_score": 58,
"sentiment_score": 60,
"catalyst_clustering_score": 58,
"dynamic_macro_weight": 0.2,
"atr14": 2.35,
"atr_pct_of_price": 4.85,
"rsi14": 66.5,
"sma20": 41.13,
"sma50": 39.35,
"sma200": 38.55,
"macd": 3.04,
"macd_signal": 2.02,
"macd_hist": 1.02,
"macd_hist_note": "Positive but FALLING: +1.64 -> +1.45 -> +1.17 -> +1.02 over four sessions. Trend intact, acceleration gone.",
"bollinger_20_2": "30.15 / 41.13 / 52.11",
"range_52w_position_pct": 91.5,
"high_52w_close": 51.21,
"high_52w_close_date": "2026-01-29",
"recent_swing_high_close": 50.93,
"recent_swing_high_date": "2026-08-10",
"low_52w_close": 18.8,
"volume_last": 250428,
"volume_20d_avg": 399700,
"price_vs_sma50_pct": 23.1,
"momentum_1wk_pct": 1.4,
"momentum_4wk_pct": 40.5,
"momentum_6wk_pct": 30.9,
"momentum_8wk_pct": 12.7,
"momentum_1yr_pct": 152.7
},
"val_band": "expensive",
"actual_multiple": 1.91,
"warranted_multiple": 1.0,
"warranted_ratio": 1.91,
"val_multiple_basis": "P/NAV - the Materials/Miners primary multiple per SKILL L570 - with the NAV struck at the framework's own discount rate r = 9.13%, exactly as step 6 (L490) specifies for miners. NAV is COMPUTED BOTTOM-UP, not selected: FY2026 guidance-midpoint volumes (72.5 kt Cu = 159.83 M lb) and guided-low-end mined gold (42 koz) at a BASE-CASE deck of US$6.00/lb copper and US$4,000/oz gold, realised at x0.938 and x0.8646 (both derived from Q2 2026 DAILY averages over the same 62 sessions, not spot), less all-in sustaining costs of US$3.38/lb copper (estimated: top-of-guidance C1 US$2.35 + US$1.03/lb sustaining, since Ero publishes no copper AISC) and US$2,700/oz gold (top of company guidance), less US$80m corporate G&A and expensed exploration and US$22m net interest, taxed at 19% (the TTM effective rate is 18.93%) = US$234.2m/yr after tax; discounted over 17.93 years (reserves + 50% of each producing mine's incremental M&I, on a 100%-owned reserve base) at an annuity factor of 8.6663 = US$2,029.7m; plus the Furnas 60% earn-in right risked at 30% of attributable PEA NPV = US$360m, with NO Furnas capex deducted anywhere; less net debt US$452.7m. Total US$1,937.0m / 105.877m diluted shares = US$18.30 = C$25.38. Actual = C$48.44 / C$25.38 = 1.91x against warranted 1.00x -> ratio 1.91 -> EXPENSIVE band -> Gate 3 fires and caps every horizon at HOLD. Guardrail arms adjudicated by hand (see guardrail_adjudication): P/NAV 1.91x vs the 1.5x line is BREACHED; EV/EBITDA 5.79-7.33x vs the 8x line is CLEAR; L469 makes the guardrail a one-way floor so the clear arm cannot rescue the breached one.",
"discount_rate_r": 9.13,
"risk_free_10y": 4.63,
"risk_free_source": "FRED DGS10 at 2026-08-13 = 4.63%. The 2026-08-12 macro report carries 4.70%; at r = 9.20% the NAV is C$25.26 and the ratio 1.918 - still Expensive, so the difference is inert.",
"risk_addon_pct": 0.0,
"risk_addon_basis": "0.0% because Business Quality is 72 (>=65). Checked rather than assumed: beta is 1.586, BELOW the 1.60 add-on trigger, and market capitalisation of US$3.70bn is not micro-cap. At the +1.0% add-on (r = 10.13%) the NAV is C$23.71 and the ratio 2.043 - which is ABOVE the 2.00 Do-Not-Buy line. Stated explicitly rather than buried: that row is a HYPOTHETICAL, because the add-on is correctly ruled out (Quality 72 >= 65, beta 1.586 < 1.60, US$3.70bn is not micro-cap), so the live case is 1.91 and DNB Trigger 2(a) does not fire. But a reader is entitled to see that a nearby parameter choice crosses the line.",
"g_near": 0.0,
"g_term": 0.0,
"anchor_growth_basis": "Both zero, and deliberately so: a mining NAV discounts a finite mine plan at flat nominal cash flows over the mine life, so no near-term or terminal growth term enters this anchor. The two-stage growth formula applies to an earnings-multiple instantiation, which SKILL L570 does not give a miner. Recorded as 0.0 rather than omitted so a future run can see the basis rather than infer it.",
"nonop_pct_of_net_income": 2.7,
"nonop_basis": "totalOtherIncomeExpensesNet across the trailing four quarters: +11.212 (Q3 25) - 39.070 (Q4 25) + 35.267 (Q1 26) + 3.047 (Q2 26) = +US$10.456m, against TTM pre-tax income of US$388.553m = 2.7%. BELOW the 15% threshold, so no clean-basis restatement is required. The quarterly line is volatile because it carries FX movement on BRL-denominated balances; it nets to near zero over a year. Note also that the anchor is P/NAV, so no earnings figure feeds the valuation band regardless.",
"clean_pe": 11.79,
"clean_peg": 0.58,
"competitive_share_trajectory": "gaining",
"competitive_threat_level": "low",
"competitive_note": "Copper is a price-taker commodity, so the competition is for capital, assets, labour and cost-curve position rather than for customers. Tucuma added roughly 35 kt of new annual supply into a deficit market, taking Ero to about 0.32% of world mine supply from near 0.16% three years ago. Named rivals: Freeport-McMoRan and Southern Copper (scale incumbents setting the marginal cost curve), Hudbay / Capstone / Lundin (mid-tier peers competing for the same generalist copper dollar), Vale Base Metals (partner AND counterparty - it owns 100% of Furnas until the earn-in completes, the most concrete competitive dependency in the file), and Chinese smelter overcapacity (buyer-side concentration setting treatment and refining charges Ero has no leverage over). Net effect on the moat: Switching Costs held at 50 (nothing to switch), Cost Advantage trimmed to 62 on the named grade and currency pressures, Pricing Power held at 30. Propagated to the section 11 bear (a copper de-rating, not a share-loss story) and to the section 12 thesis-invalidation rule (Tucuma C1 above US$2.60/lb sustained, or consolidated C1 above the US$2.35 guidance ceiling for two consecutive quarters).",
"hard_gate_state": "caution",
"hard_gate_state_note": "'caution' is correct even though a gate is TRIGGERED, and it looks wrong at a glance, so it is documented. SKILL L1934 defines the field as: 'donotbuy' if any do_not_buy_triggers, else 'caution' if any gates_triggered OR gates_caution, else 'clear'. There are no Do-Not-Buy triggers here, so the derivation gives 'caution'. scripts/lint_report.py encodes the identical rule (FW-GATESTATE) and passes. The enum has no separate 'triggered' value - the watchlist renders three states only.",
"gates_triggered": [
"Valuation Ceiling (Gate 3): the Valuation Anchor puts the actual multiple at P/NAV 1.91x against a warranted 1.00x - above the 1.40x Expensive threshold, and also above the 1.5x Materials guardrail line. Caps EVERY horizon at HOLD. Note the base Decision Matrix reaches the same answer independently: Quality 72 (High) x Valuation 38 (Expensive) x any Timing maps to SKILL L1275 'HOLD - great business, wrong price', so the downgrade does not rest on the gate alone."
],
"gates_caution": [
"Commodity and single-country concentration: copper is about 83% of guided 2026 revenue and every US$0.50/lb on the copper DECK moves annual after-tax cash flow by roughly US$61m - 26% of the US$234.2m the NAV build runs on. All three mines are in Brazil, so the real, Brazilian tax policy and Brazilian permitting are undiversified. The CFO quantified the currency leg: persistent inflation and a strong real could add US$0.10/lb to copper C1 and US$100/oz to mined gold costs. A hedge covering 70% of annual costs at a BRL 5.54 floor returned US$12.7m in Q2 and US$40-45m is expected for the year - real money, but a finite programme, so it is excluded from the life-of-mine run rate.",
"Section-8 WAIT-FOR-EVENT override: FOMC Minutes 2026-08-19 fall two trading days from this report, inside the 3-trading-day window for a High-macro-sensitivity Materials name. Applied literally - it sets signal_short = WAIT and next_update_date = 2026-08-20. Recorded as a caution rather than a hard gate because it caps the Short horizon only, whereas the Valuation Ceiling caps all three."
],
"do_not_buy_triggers": [],
"entry_groups_met": 0,
"entry_conviction": "Wait",
"short_entry_confirmed": false,
"short_hold_reason": "gate",
"short_hold_reason_note": "THREE caps are live and the enum (neutral_timing_starter | weak_timing | expensive | technical_pending | gate | full_hold) forces one code, so the choice is adjudicated rather than left implicit. 'gate' is recorded because the Section-8 event override is the cap that PRODUCES THE PUBLISHED WAIT LABEL, and the reason code should track the label-setting cap - the same adjudication ABX.TO made on 2026-08-16. 'expensive' and 'technical_pending' are both equally live and are recorded in full inside short_cap_reason so no information is lost. Note the quality-starter override does NOT apply: it requires a base HOLD produced by NEUTRAL (40-54) timing on a non-Expensive name, and here timing is 60 (Improving) and the name IS Expensive - either condition alone disqualifies it.",
"short_cap_reason": "Three independent grounds, and the published WAIT label comes from the first. (1) SECTION-8 WAIT-FOR-EVENT OVERRIDE: Materials is a High-macro-sensitivity sector and FOMC Minutes fall on Wednesday 19 Aug 2026, two trading days from the 17 Aug report date. SKILL L1894 has it firing 'regardless of composite score' and L1577 names the same 3-trading-day window as normative for scheduling; this report relies on that clause to set next_update_date = 2026-08-20, so it cannot decline the label the same rule names. The macro report of record names THESE MINUTES as the trigger for its live 'Fed hikes in September' tail (~44% market-implied, 3 hawkish July dissents). (2) VALUATION CEILING (Gate 3): P/NAV 1.91x - caps all three horizons at HOLD, so the Short could not have been a BUY in any case. (3) SHORT TECHNICAL-CONFIRMATION CAP: both the Technical and Catalyst entry groups are UNMET. Technical fails on RSI(14) = 66.5, outside the required 35-65 band; branch A (a close above the 50-DMA on >1.5x volume) last cleared on 7 Aug at 2.08x but 17 Aug traded 0.63x, and branch B (a tested bounce with a higher low) fails because 14 Aug's low of C$46.66 is BELOW 13 Aug's C$47.47. Catalyst fails because the 24-hour post-earnings move was +2.13% (5 Aug close C$42.71 -> 6 Aug C$43.62), not the +5% required, on 1.37x volume rather than 2x. Trigger to lift the technical cap: RSI back inside 35-65 with a volume-confirmed hold above the 50-DMA, OR a tested pullback into C$41-43 with a higher low - roughly 2-5 weeks at the current RSI decay of about 3 points a week. The Section-8 window clears on 20 Aug; the Valuation Ceiling is the longest-lived of the three and lifting it needs either a materially higher copper deck or a lower price.",
"exit_groups_live": 0,
"exit_action": "Hold",
"fair_value_est": 25.38,
"fair_value_basis": "The r-struck, base-case-deck NAV per share (1.00x P/NAV). NOT the same quantity as the section 11 base target of C$47: fair value is the discounted mine plan at a commodity deck 9% below spot, while the base target is a 12-MONTH PRICE PATH that assumes the market continues to capitalise Furnas, resource conversion and copper-price optionality at roughly today's premium. The C$21.62 gap between them IS the premium, stated rather than smoothed. The Fundamental entry group keys off fair value, which is why that path is closed.",
"stop_loss": 41.0,
"stop_loss_basis": "Below the 7-10 Aug breakout base and just under the 20-DMA of C$41.13; 15.4% away = 3.2 ATR. Raised from C$37.00 after a 40.5% four-week move.",
"target_price": 47.0,
"scenario_base_target": 47,
"scenario_bull_target": 65,
"scenario_bear_target": 30,
"scenario_probabilities": {
"bull": 25,
"base": 55,
"bear": 20
},
"scenario_weighted_target": 48.1,
"scenario_note": "Probability-weighted 12-month value C$48.10, which is 0.70% BELOW the current price of C$48.44 - arrived at independently of the NAV anchor and reaching the same place. Note the shape: the bull case needs copper, execution and capital return together, while the bear case needs one macro event that is already about 44% priced. At a US$5.00/lb copper deck, holding the section 4 gold deck of US$4,000/oz, the NAV is C$11.59 (C$10.92 if gold also falls to US$3,800), so the C$30 bear is a partial de-rating rather than a floor.",
"economic_alignment_stance": "Trend-Following",
"economic_alignment_conviction": 82,
"economic_alignment_pressure": "Tailwind",
"economic_alignment_source": "sector-map",
"economic_alignment_amplified": false,
"economic_alignment_note": "XLB (Materials) reads O / SO / SO in the 2026-08-12 macro report - the strongest row in the sector matrix. ERO.TO is not among the 10 names in that report's Economic Watchlist Forecast, so the GICS sector map was used. Pressure is Tailwind and it amplified NOTHING, on three independent grounds: the base signal is HOLD on every horizon and HOLD never amplifies; a name at 1.91x its warranted P/NAV is barred from STRONG BUY by L1300/L494 (the bar starts at 1.20x); and Gate 3 caps every horizon after amplification would have run. The driver leg of the amplification test IS satisfied - driver 75 >= 65, including the separate medium-horizon test - which is why the arithmetic is shown rather than asserted.",
"macro_report_date": "2026-08-12",
"macro_regime": "Energy-shock stagflation - a supply-driven inflation impulse into a contracting labour market, Fed cuts priced out, the live debate hike-versus-hold.",
"tail_risk_adjudication": "All FOUR tails in the 2026-08-12 macro report, ruled on by name. (1) S&P 500 concentration / AI earnings-quality unwind - ARMED but trigger receding (breadth broadening, RSP +3.6% vs SPY +2.8% vs QQQ +0.6% over one month). ERO is NOT in its cohort: it is not levered to AI capital spending or monetisation and is not an index top-weight, so it does NOT inherit the cohort de-rating leg and the tail does not feed DNB Trigger 2(b). A general index drawdown would still hit a beta-1.586 name, but that is beta, not tail inheritance. (2) Private-credit crack - BUILDING, NOT ARMED (HYG fractionally below both its 50- and 200-DMA on raw price, 79.61 vs 79.67/80.20). Inheritance requires an ARMED tail, so it does not qualify. (3) Hormuz closure escalation - LIVE on the macro report's read (strait effectively closed since late February; Brent US$88.58, trigger is Brent above US$100 sustained). Second-order but real for ERO: diesel and freight costs at three Brazilian mines. Carried in the section 11 bear as a secondary leg. NOT independently re-verified this run - the web-search budget was exhausted - so it is attributed to the 2026-08-12 macro report by date rather than asserted as current fact. (4) Fed hikes in September - LIVE, ~44% market-implied, 3 hawkish July dissents, and the macro report names the 19 Aug FOMC minutes as the trigger. This is the most directly relevant tail: a hawkish surprise lifts the dollar and real rates and pressures industrial metals. It is the reason the Section-8 override fires and the primary leg of the section 11 bear.",
"analyst_consensus_target": 50.41,
"analyst_target_high": 58.0,
"analyst_target_low": 45.0,
"analyst_target_median": 50.5,
"analyst_target_upside_pct": 4.06,
"analyst_grades_consensus": "Buy",
"analyst_bullish_pct": 66.7,
"analyst_coverage_count": 16,
"analyst_target_source": "get_yahoo_analyst_targets (ERO.TO). MANDATORY FALLBACK USED: get_price_target_consensus returned high = low = median = consensus = US$31.00 with lastQuarterCount 0 - a degenerate single-point endpoint 11% below the NYSE price, which the SKILL treats as a FAILED pull. Inconsistency flagged rather than smoothed: Yahoo reports 16 analysts but its distribution sums to 18 (5 strong buy, 7 buy, 6 hold, 0 sell); bullish share computed as 12/18 = 66.7%.",
"recent_upgrades_30d": 0,
"recent_downgrades_30d": 0,
"analyst_actions_note": "No rating change in the last 30 days. Most recent: BofA Securities upgrade Neutral -> Buy on 2026-07-16 (32 days ago); Goldman Sachs downgrade Buy -> Neutral on 2026-04-14. Post-Q2 target moves were mixed - TD Securities to C$45 (from C$44), Stifel to C$53 (from C$52), Jefferies CUT to C$42 (from C$49) with a Hold. Two of the three sit below the C$48.44 price.",
"fmp_rating": "B+",
"fmp_overall_score": 3,
"fmp_dcf_subscore": 1,
"relative_strength_vs_spy": 35.9,
"relative_strength_vs_sector": 37.8,
"relative_strength_note": "1-month: ERO.TO +40.5% in CAD (+42.8% in USD), SPY +4.6%, XLB +2.7%. 3-month: ERO +17.9% CAD (+17.5% USD), SPY +3.6%, XLB +4.0%. Outperforming both benchmarks on both windows. FX stated rather than hand-waved: USD/CAD moved 1.4100 -> 1.3872 over the month, so the CAD return understates the USD return; the ranking is unaffected.",
"dividend_ttm_usd": 0.0,
"dividend_note": "Ero pays no dividend - dividendPerShareTTM 0, payout ratio 0, confirmed via get_financial_ratios. Because there is no distribution, raw and dividend-adjusted price series are identical, so the auto-adjust moving-average trap cannot bite on this name. Management has sequenced capital allocation publicly: sub-1.0x leverage (achieved Q1 2026), then repay the revolver (US$60m repaid through July, US$95m outstanding), then shareholder returns - the CEO said he would 'come back to the market later this year'.",
"overall_confidence": 55,
"confidence_quality": 74,
"confidence_valuation": 55,
"confidence_timing": 60,
"confidence_driver": 62,
"confidence_economic": 68,
"driver_commodity_trend": "COPPER IS THE CLEANEST COMMODITY IN THE BOOK THIS RUN, and the Step-2b short cap does NOT fire. HG=F settled 14 Aug 2026 at US$6.60/lb (raw close, auto_adjust=False, central batch pull): ABOVE its 50-DMA of US$6.35, which is RISING, and ABOVE its 200-DMA of US$5.87, with ALL THREE momentum windows positive (+6.10% 4wk, +7.93% 6wk, +1.82% 8wk). Unlike gold or silver this month, the phrase 'clean structural tailwind' is genuinely available. Against Ero's consolidated Q2 C1 of US$2.42/lb that is a 63% margin at the settle and 58% against its own realised US$5.78/lb. Levels quoted to the future, never an ETF. Gold leg (Xavantina, ~17-18% of guided revenue): GC=F US$4,380.40, above a FALLING 50-DMA of US$4,158.01 but BELOW its 200-DMA of US$4,486.27, +9.16/+6.51/+0.49% - a rebound inside a correction, not a clean tailwind; and the 8-week leg of +0.49% is effectively nowhere in two months. Driver rebuilt from components: copper Historical 76 / Current 88 / Forward 68 -> 80.0; gold 70 / 82 / 58 -> 73.0; blended 82/18 on the guided revenue split -> 78.7; less 3.4 for the CFO-quantified BRL cost headwind (+US$0.10/lb copper C1, +US$100/oz gold C1) -> 75 TAILWIND. WITHDRAWN FROM THE PRIOR REPORT: the 7 Aug basis of 'COMEX ~US$6.71/lb tariff-inflated vs LME ~US$4.9-5.0/lb, Ero's realization basis'. A concentrate producer cannot realise US$5.78/lb against an LME price of US$4.9-5.0; the two are irreconcilable and the LME figure is withdrawn. This report quotes the HG=F settle as the benchmark and Ero's own disclosed realised price as the realisation, with the gap (treatment and refining charges, provisional pricing) named rather than attributed to an exchange spread that cannot be reconciled.",
"user_horizon": null,
"user_allocation_pct": null,
"portfolio_role": null,
"next_update_date": "2026-08-20",
"next_check_date": "2026-08-20",
"next_update_basis": "FOMC Minutes 2026-08-19 +1 trading day (Section-8 / SKILL L1577: a high-impact rates release inside the 3-trading-day WAIT-override window for a High-macro-sensitivity Materials name). Versus the default +14d, which would be 2026-08-31.",
"data_as_of": {
"price": "2026-08-17",
"fx": "2026-08-17",
"commodity_trend": "2026-08-14",
"risk_free": "2026-08-13",
"macro_report": "2026-08-12",
"q2_results": "2026-08-05",
"reserves_caraiba": "2024-12-31",
"reserves_tucuma": "2021-08-31",
"reserves_xavantina": "2025-06-30",
"furnas_pea": "2026-02-28"
},
"prior_report": "calibration-ERO.TO-20260807-0800.json",
"prior_primary": "STRONG_BUY",
"changes_note": "Price C$43.62 -> C$48.44 (+11.1%) in ten days, and C$34.48 -> C$48.44 (+40.5%) in a month. Medium and Long cut STRONG_BUY -> HOLD; Short HOLD -> WAIT. Nothing about the business deteriorated: Quality rose 70 -> 72 on the deleveraging (0.8x from 2.6x) and the visible Tucuma ramp, and the copper driver rose 67 -> 75 on a genuinely clean commodity trend. What changed is the price and the valuation basis. ANCHOR BASIS CHANGED THIS RUN - DO NOT READ 0.9 -> 1.91 AS A DETERIORATION IN THE BUSINESS. Three causes, in order of size. (1) The 7 Aug report's copper realisation basis of 'LME ~US$4.9-5.0/lb (Ero's realization basis)' is IRRECONCILABLE with Ero's own disclosed Q2 realised price of US$5.78/lb - a concentrate producer cannot realise 16% above the exchange price it prices against - and is WITHDRAWN. That is a material basis error, flagged rather than buried, per SKILL Step 0. (2) The prior NAV, implied at C$48.47 per share by a 0.9x ratio on a C$43.62 price, was consistent with a spot-or-better commodity deck; L490 requires a BASE-CASE deck, and this report strikes one about 9% below the 14 Aug settles. (3) Mine life, realisation and discount rate are now struck explicitly and from primary sources - 17.93 years on a 100%-owned reserve base at r = 9.13% - where the prior report recorded warranted_multiple 1.0 / actual 0.9 with no published build. The result is NAV C$25.38 and ratio 1.91x, against an implied C$48.47 and 0.9x before. THE DECK IS THE LOAD-BEARING ASSUMPTION AND THE REPORT SAYS SO: at the base-case deck the ratio is 1.91 (Expensive, Gate 3 fires, HOLD); at the full spot deck it is 1.387 (Full, and the matrix would give BUY). What the deck does NOT change is amplification, barred above 1.20x either way, so the STRONG BUY falls away under every variant. Along the COST axis the 1.40 boundary is unreachable (AISC US$2.75/lb implies US$64m/yr of sustaining capital against US$285-330m of guidance), so the cost is not the weak point here - the opposite of ABX.TO on 16 Aug and the same as NEM today. Gate 3 (Valuation Ceiling) newly TRIGGERED, capping all three horizons; the base Decision Matrix reaches HOLD independently (High Quality x Expensive = 'great business, wrong price'), so the downgrade does not rest on the gate alone. Two new cautions: commodity and single-country concentration, and the Section-8 event window. Conviction ladder: entry_conviction moved Half-Size -> Wait and entry_groups_met 1 -> 0: the Fundamental path closed when the corrected NAV put the price 90% above fair value, and the Technical path remains shut on RSI 66.5. exit_action stays Hold - no exit rule is live - and analysis_status stays on-going. Fair value C$49.00 -> C$25.38, stop C$37.00 -> C$41.00, base target C$50 -> C$47, bull C$60 -> C$65, bear C$33 -> C$30. Economic Alignment 78 -> 82 on the newer 2026-08-12 macro report. Timing 62 -> 60: stronger trend, worse entry. Valuation 64 -> 38 (the reproducible weighted blend of the five published lenses, 38.5 rounded down). ALSO CORRECTED: the ISIN carried by every prior ERO.TO calibration, CA29767G1090, FAILS the ISIN check-digit test; the correct identifier is CA2960061091 (CUSIP 296006109), which validates. The Mode-B finder sync joins on this field.",
"framework_amendment_proposed": "Two, both restating gaps the ABX.TO report of 2026-08-16 raised, now with a second data point. (1) SECTION-8 IS NOT IN THE OVERRIDE CHAIN. The chain is enumerated exhaustively at L10, L1304, L1415 and L1425 as Base Matrix -> Amplification -> Short technical cap -> Short quality-starter -> Hard Gates -> Do-Not-Buy, and none of those enumerations contains a Section-8 WAIT-FOR-EVENT step, even though L1894 has it firing 'regardless of composite score'. PROPOSAL: add it explicitly after the quality-starter and before Hard Gates, and add a dedicated reason code, since 'gate' is only an approximate fit for a Short-only, time-limited event cap. (2) THE MINING-NAV INDETERMINACY IS WORSE THAN ABX SHOWED, not better. ABX demonstrated that the LOM cost point inside a guidance range can straddle a band boundary. ERO adds a second, larger free variable: Ero does not publish a copper AISC AT ALL - only C1 and a separate gold AISC - so the sustaining-capital component must be estimated from a total capex guidance range that mixes sustaining and growth spend. On this report the ratio moves from 1.64 to 2.34 across a plausible AISC range of US$3.10-3.70/lb, which spans the 2.00 DNB line. The mitigation used here is the one ABX proposed - publish the band-boundary inputs (the deck AND the cost at which the ratio equals 1.20, 1.40 and 2.00) so the indeterminacy is visible - and it should be made mandatory for every mining report rather than left to author virtue. (3) NEW: THE TWO ARMS OF THE MATERIALS GUARDRAIL ARE NOT CALIBRATED TO EACH OTHER. Measured on the SAME base-case deck this name is 1.91x P/NAV (breaching the 1.5x line) and 7.33x EV/EBITDA on the company's own LTM adjusted basis (clearing the 8x line). For an 17.9-year asset an 8x EV/EBITDA line is far looser than a 1.5x P/NAV line, so which arm a report happens to compute changes the answer. L469 resolves it mechanically (one-way floor, primary multiple governs), but the lines should be re-derived so they agree for a given mine life.",
"self_audit_layer1": {
"data_provenance": [
"get_yahoo_quote(ERO.TO) -> OK: C$48.44, CAD, eps_trailing 4.11, trailing P/E 11.79, beta 1.586, mcap C$5.052bn.",
"get_yahoo_prices(ERO.TO, 2025-08-01..2026-08-17) -> PARTIAL: 259 bars, but NO 17 Aug bar because yfinance treats the end date as EXCLUSIVE. Re-pulled to 2026-08-19 and the 17 Aug settled bar appeared (C$48.44, 250,428 sh). The in-progress/None-close trap was checked explicitly: the last bar carries a real close and was cross-confirmed against Polygon's US listing at US$34.91 x 1.3872 = C$48.43. The 11 Aug TSX bar is MISSING from the series although the US listing traded; -5 timing confidence.",
"get_technical_indicators(ERO, daily) -> OK: used for date-stamping only, because Polygon get_stock_prices bar labels run one session early. Confirms 2026-08-17 close US$34.91, RSI 67.3.",
"get_multi_timeframe_analysis(ERO) -> OK: all five timeframes, confluence strongly_bullish. Priced on the NYSE listing; CAD levels computed separately from raw TSX closes.",
"get_income_statement(ERO, 6q) -> OK: Q2 2026 filed 2026-08-05. Used for step 7b.",
"get_financial_ratios(ERO) -> OK.",
"get_price_target_consensus(ERO) -> FAILED (degenerate: high=low=median=consensus=US$31.00, lastQuarterCount 0). Fallback used: get_yahoo_analyst_targets(ERO.TO) -> OK, 16 analysts, mean C$50.41.",
"get_stock_grades / get_grades_consensus(ERO) -> PARTIAL (FMP consensus thin, 2 buy / 2 hold; Yahoo distribution used instead). Individual actions real and used.",
"get_ratings_snapshot(ERO) -> OK: B+, overall 3, DCF sub-score 1.",
"get_analyst_estimates(ERO, annual) -> OK: FY26E-FY30E.",
"get_economic_calendar(US, +30/-7) -> OK: FOMC Minutes 2026-08-19 High/interest_rates identified.",
"get_earnings_calendar(ERO) -> FAILED (no rows). Q2 date taken from the SEC filing date; Q3 date ESTIMATED early Nov 2026 and marked approximate.",
"get_related_tickers / get_polygon_news(ERO) -> PARTIAL (news feed stale and polluted with unrelated Soma Gold releases carrying an ERO tag).",
"get_yahoo_prices(XLB, SPY, CAD=X) -> OK: relative strength and the FX adjustment.",
"WebFetch: Ero Q2 2026 release (stocktitan 6-K mirror + Manila Times globenewswire mirror), Q2 earnings call transcript (Motley Fool), company operation pages for Caraiba / Tucuma / Xavantina / Furnas -> all OK, primary-source figures.",
"WebSearch -> FAILED, budget exhausted session-wide (200/200) partway through the run. MISSES DECLARED: no independent this-run geopolitical re-verification; no third-party analyst NAV per share; no dedicated insider-transaction search. NOT a miss: the Q2 2026 benchmark averages WERE computed this run from the daily futures series (HG=F US$6.1618 and GC=F US$4,514.03, 62 sessions each) and are what the realisation factors are struck on - an earlier draft wrongly listed them here as unsourced."
],
"live_status_reverification": "PARTIAL AND DECLARED. Corporate status: ERO.TO traded a normal settled session on 2026-08-17 (250,428 sh) and NYSE:ERO traded ~995k the same session - no halt, no delisting, no announced M&A found in this run's primary-source fetches. Geopolitical: the Strait-of-Hormuz closure and the ~44% September-hike probability are NOT verified by me this run - the web-search budget was exhausted - and are carried WITH ATTRIBUTION to the 2026-08-12 macro report by date, labelled as that report's read rather than asserted as current fact, in section 11 and in tail_risk_adjudication. No 'X is holding / resolved / normal' phrasing appears anywhere in the report.",
"internal_consistency": "Every directional claim reconciled against the pulled numbers. (a) The 'clean copper tailwind' narrative is backed by the central pull's own figures - above both averages, rising 50-DMA, three positive windows - and is NOT extended to gold, which is stated as below its 200-DMA and above a falling 50-DMA. (b) The EV/EBITDA cross-check CONTRADICTS the P/NAV anchor (5.79-7.44x clear of an 8x line while P/NAV breaches 1.5x); the contradiction is stated in section 4 rather than suppressed, adjudicated under L469, and paid for with a valuation-confidence haircut to 55. (c) fair_value_est C$25.38 and scenario_base_target C$47 are DIFFERENT QUANTITIES and the bridge is named in fair_value_basis and in the base scenario text. (d) The probability-weighted target of C$48.10 is 0.70% below the C$48.44 price, reached independently of the anchor and agreeing with it. (e) Q2 consolidated C1 of US$2.42/lb is ABOVE the US$2.15-2.35 guidance range; that is stated in section 3 and used as the section 12 cost-curve invalidation condition rather than smoothed.",
"completeness": "All 15 sections present and substantive; builder self-assertion passed (15 sections, body-padding shell, Rule Forecast, Conviction Ladder, Competitive Environment, single GA tag). Thinnest section: section 13 Position Sizing, because no allocation or portfolio role was supplied - the ladder reads Wait, so levels are given instead of a percentage, per the SKILL.",
"carried_forward_diff": "Nothing was copied. Every pillar was re-derived: Quality re-scored from the Q2 release and the reserve statements; Valuation rebuilt from scratch on a new anchor basis; Timing recomputed from raw closes; Driver rebuilt from components on the central commodity pull; Economic Alignment re-read from the newer 2026-08-12 macro state. The conviction ladder DID move this run - entry_conviction Half-Size -> Wait, entry_groups_met 1 -> 0 - and that move is recorded in changes_note. Two other lifecycle fields carry the same values as the prior calibration and were each re-derived rather than copied: exit_action Hold (re-tested - no stop, no thesis-invalidation leg, and the profit-target group has two of its three conditions clear) and analysis_status on-going (re-tested - no Donatien-Pick and no finder-sync condition applies). The prior report's LME realisation basis and its ISIN were both re-examined and both found WRONG - see changes_note.",
"signal_caps": "(a) short_entry_confirmed=false with signal_short=WAIT, which is in the non-BUY set, so the technical-cap rule is satisfied trivially; three independent caps are documented in short_cap_reason. (b) No BUY above the valuation ceiling: warranted_ratio 1.91 >= 1.40 fires Gate 3 and ALL THREE horizons are non-BUY. (c) Clean-earnings basis: non-operating income is 2.7% of trailing pre-tax income, below the 15% threshold, so no restatement was required - and the anchor is P/NAV, so no earnings figure feeds the band regardless. (d) short_hold_reason='gate' is recorded and adjudicated in short_hold_reason_note; the quality-starter override is explicitly disqualified twice over (timing 60 is Improving, not Neutral 40-54, and the name is Expensive).",
"calibration_schema": "scripts/normalize_calibration.py --write then --check both exit 0. scripts/lint_report.py exits 0 with 61 checks, 0 errors, 5 warnings - all five reviewed: FW-BASIS-MIXED is EXPECTED for a P/NAV basis and the guardrail arms are adjudicated by hand in guardrail_adjudication (a clean exit there is NOT evidence the guardrail was checked); the four FRESH-SRC warnings are reserve and study statements, which are periodic by nature and are the current published versions.",
"known_soft_spots": "Stated rather than hidden. (1) Copper AISC of US$3.38/lb is ESTIMATED - Ero publishes C1 and gold AISC but not copper AISC, and the sustaining/growth split of its capital guidance is not disclosed. Band boundaries for this input are published. (2) The gold realisation factor is 0.8646, derived like-for-like from the Q2 2026 GC=F DAILY average of US$4,514.03/oz over 62 sessions - the same window and session count as copper. CORRECTED TWICE: the first draft used the 14 Aug spot settle (0.891) and the second used 13 WEEKLY closes (US$4,474.9 -> 0.8722); only the daily basis is like-for-like with the copper leg. Gold is 8.1% of the pre-corporate margin, so the effect is small - the ratio moved 1.90 -> 1.91. (3) The Furnas 30% risk factor is a convention, not a sourced value. The PEA's metal price deck IS disclosed and is used (US$4.60/lb Cu, US$3,300/oz Au, US$40.00/oz Ag) - an earlier draft wrongly declared it absent here even after correcting the same claim elsewhere in this file. Only the INITIAL CAPITAL COST remains genuinely undisclosed on the company page. (4) The Q3 earnings date is estimated. (5) DNB Trigger 4 (insider selling) rests on absence of evidence, not a verified all-clear."
},
"lint_warnings_adjudicated": {
"FW-GUARDRAIL-SKIP": "EXPECTED, NOT TOLERATED. The linter's Materials guardrail arm keys on a P/E or P/TBV basis string; this report's primary multiple is P/NAV (SKILL L570 gives miners P/NAV primary, FCF yield secondary, EV/EBITDA tertiary), so the automated arm cannot run and correctly declines to. This is the 'a cleared deterministic check is NOT evidence the check RAN' case from report-audit.md, so BOTH arms are adjudicated BY HAND in valuation_detail.guardrail_adjudication and restated in val_multiple_basis: P/NAV 1.91x vs the 1.5x line = BREACHED; EV/EBITDA 5.79-7.33x vs the 8x line = CLEAR. L469 makes the guardrail a one-way floor, so the clear arm cannot rescue the breached one. The clean exit here proves nothing and is not relied on.",
"FRESH-SRC x4 (reserves_caraiba 2024-12-31, reserves_tucuma 2021-08-31, reserves_xavantina 2025-06-30, furnas_pea 2026-02-28)": "ADJUDICATED, NOT TOLERATED. All four dates are the effective dates of the CURRENT PUBLISHED statements, read from Ero's own live operation and project pages on 2026-08-17 - not inherited from a prior report. Mineral reserve and resource statements are periodic by nature and do not go stale between updates; a 2021 technical report is the governing document for Tucuma until the company files a replacement. The corporate-event test the warning asks for: the most recent corporate event is the Q2 2026 release of 5 Aug 2026, which restated neither reserves nor resources, and no acquisition, disposal, impairment or technical-report filing has been identified since. RESIDUAL RISK STATED: if Ero has filed a 31 Dec 2025 reserve update for Caraiba that its own website has not yet reflected, the 654 kt contained-copper figure - and therefore the 17.93-year life - would be understated, which would make this report's Expensive call MORE conservative, not less. Flagged to the independent auditor as a live-verification target."
},
"post_audit_fixes": "FOUR AUDIT ROUNDS, ALL BY FRESH GENERAL-PURPOSE AGENTS (never a fork). Rounds 1, 2, 3 and 4 each returned FAIL; this field records what each found and what was done, and does NOT certify completeness in the abstract - rounds 2, 3 and 4 all caught this field asserting fixes or counts that were not in the file, so it now states only what has been re-read in the artefact. ROUND 1 (8 MAJOR, 11 MINOR, 1 reasoning defect): confirmed the P/NAV-at-r basis and reproduced the build, then found the COPPER realisation factor of 0.96 unreproducible - corrected to 0.938 (Q2 realised US$5.78 / Q2 2026 HG=F daily average US$6.1618, 62 sessions), moving the ratio 1.76 -> 1.90; two declared data-absences false (the Furnas PEA deck IS published at US$4.60/lb Cu, US$3,300/oz Au, US$40/oz Ag, and Tucuma's M&I IS published at 411.7 kt), lifting the life 17.6 -> 17.93 yr; a 'robust to every sensitivity' claim falsified by the spot-deck row beside it; a misattribution that L490 'forbids' a spot deck (it says only 'held at the base-case deck'); the scenario-weighted target 48.30 -> 48.10; the bull NAV and its premium framing; and the 52-week closing high mis-dated to 10 Aug when C$51.21 is 29 Jan 2026. Reasoning defect: DNB 2(b) had been escaped via a claimed 'live ranks below armed' hierarchy, which inverts the macro report's escalation ladder - re-based on COHORT EXPOSURE per L1089/L1118, same answer, sound reasoning. ROUND 2 (12 MAJOR, 8 MINOR): reproduced the copper realisation to four decimals, all five band boundaries, all nine sensitivity rows and 34 of 35 surface cells, and confirmed the lens, matrix row, Gate 3, both amplification bars, the Section-8 override and scheduling, the quality-starter disqualification, hard_gate_state, the short technical cap, the reserve tonnages, the Furnas terms and the absence of any corporate event. Its substantive finding: the GOLD leg of the round-1 fix had been done on 13 WEEKLY closes (US$4,474.9) where copper used 62 DAILY sessions - on the like-for-like daily basis the Q2 2026 GC=F average is US$4,514.03, the realisation 0.8646 not 0.8722, and the ratio 1.909 not 1.900. The rest were superseded strings surviving round 1 in BOTH surfaces, six of them JSON-only survivors inside audit blocks that asserted completeness - including one that concealed the r = 10.13% row crossing the 2.00 DNB line. ROUND 3 (15 MAJOR, 10 MINOR): independently re-derived both Q2 averages, the full build, all 35 surface cells (confirming row and column monotonicity) and the infinite-life bound, and found the round-2 correction had been applied to the HTML build and four calibration scalars but NOT to the calibration's free-text sensitivity and boundary blocks, nor to sections 11, 12 and 15 - the same cross-surface failure a third time. Fixed this round: nav_sensitivity rebuilt on the 0.8646 basis (all nine rows); nav_band_boundary_note rebuilt (boundaries 6.67/2.75/5.92/3.46, distances US$0.08, and its false 'NONE is Fair' replaced by 27 Expensive / 6 Full / 2 Fair); the section-4 duplicate boundary pair and the zero-carry citation; the section-11 bear (C$11.59) and bull (C$48.73, and C$46.06 with gold held at the section-4 deck); the section-12 fair-value distances (47.6% below price, 34.2% below the 200-DMA) and the Furnas-at-60% figure (C$30.09/1.61); four section-15 defects (a 17.6-year life, a resurrected Furnas-deck absence, a false claim that the Q2 benchmark averages were unsourced, and a 58% confidence no other surface carried); the driver blend and two further driver-74 survivors; the chart's plotted NAV level; and the fair-value gap C$19.49 -> C$21.62. ROOT CAUSE NAMED BUT ONLY PARTLY ADDRESSED - STATED PRECISELY BECAUSE ROUND 4 CAUGHT AN EARLIER VERSION OF THIS SENTENCE OVER-CLAIMING IT. A computation module (figures.py) was written and IS the source for the calibration's rebuilt sensitivity and boundary blocks and for every figure recomputed in rounds 3 and 4. It is NOT wired into the report's hand-authored HTML narrative, which is still typed prose - and that is exactly where round 4's eight MAJORs lived (a discount-rate row contradicting its own table, a mistyped gold price in the build table, a thesis floor on the withdrawn realisation, two changes-box values, a position-risk distance). So the correct statement is: the generated surfaces are now self-consistent, the typed surfaces still require a per-value sweep, and a genuine fix would render the narrative figures from the module too. Recorded as an open weakness rather than a solved problem. EVERY CORRECTION ACROSS ALL FOUR ROUNDS MOVED THE RATIO AGAINST THE COMPANY (1.76 -> 1.90 -> 1.91) except the mine-life extension, which moved in its favour and was applied anyway. THE CONCLUSION NEVER CHANGED IN ANY ROUND: Expensive band, Gate 3 fires, WAIT/HOLD/HOLD. Round 3 confirmed the modelling is sound and that every one of its defects was a transcription or staleness failure, not a modelling failure. ROUND 4 (8 MAJOR, 4 MINOR): confirmed the banner-confidence change to 55% against SKILL L1309 (overall = min of the Quality/Valuation/Timing confidences = min(74,55,60)) and re-derived the annuity, PV, NAV, ratio, all ten sensitivity rows, all 35 surface cells, all five boundaries, the life axis, the implied deck, the driver blend, the Timing weighting, the moat average, ROIC, the lens blend and every section-11/12 scenario figure. It found five of round 3's own items still standing in one surface (the zero-carry citation in nav_furnas_basis, and four HTML items), plus THREE live-figure defects no earlier round had listed: the section-4 discount-rate row said r = 9.20% gives C$25.37/1.91 when its own table eight rows below says C$25.26/1.92; the build table printed gold received as US$3,462/oz when 4,000 x 0.8646 = US$3,458; and the section-5 thesis-invalidation floor was still struck on the withdrawn 0.96 realisation (US$0.94/lb and 'under US$60m'), which on the published 0.938 factor is US$0.84/lb and about US$52m - the old figure contradicted its own sentence. It also found nav_annuity_factor 8.6658 did not reproduce its own stated PV (corrected to 8.6663, exact at the published 17.93-year life) and that the section-1 economic-alignment confidence of 68% was carried by no other surface (now recorded as confidence_economic). All fixed. Round 4 again stated that every defect was transcription or staleness, not modelling."
}
In plain terms. Ero had a good quarter and the stock had a better one. Copper is the cleanest commodity trend in the book right now, the Tucumã ramp is visibly working, and leverage has fallen from 2.6× to 0.8× in eighteen months. None of that is in dispute, and the Quality and Driver scores both rose. What changed is the price: C$43.62 to C$48.44 in ten days, and C$34.48 to C$48.44 in a month. On a net asset value struck at the framework's own required return of 9.13% and a copper deck 9% below spot, the shares trade at 1.91× that value. That is the Expensive band, and the framework's answer to a high-quality business at an expensive price is HOLD — reached twice over, once by the base Decision Matrix and once by the Valuation Ceiling gate. The Short is WAIT for two days because the FOMC minutes on 19 August are the stated trigger for the macro report's live September-hike tail.
Read the anchor change carefully. The previous report put the ratio at 0.9× and this one puts it at 1.91×. That is not a nine-fold deterioration in the business — it is a corrected basis, and the correction is set out in the changes box and in §15.
get_stock_prices bar labels run one session early, so no date claim was taken from it. Confirms 17 Aug 2026 close US$34.91, RSI 67.3, SMA50 US$28.04, SMA200 US$27.87.get_yahoo_analyst_targets.MacroDriver-state-20260812.json. XLB reads O / SO / SO. Regime: energy-shock stagflation. Four tail risks, each ruled on by name in §4 and §11. Risk-free taken as 4.63% (FRED DGS10, 13 Aug 2026), not the 4.70% the macro report carries; the 4.70% case is run as a sensitivity and is inert.Confidence haircuts applied. Valuation confidence is cut to 55% — the largest haircut in the report, and deliberately so. The net-asset-value anchor rests on two inputs the company does not disclose: a copper all-in sustaining cost (Ero publishes C1 and gold AISC, not copper AISC) and a sustaining-versus-growth split of capital spending. Both were estimated, both are stated, and the band boundaries they imply are published in §4 so a reader can see exactly how much the conclusion depends on them. The answer is: not much — every single-variable sensitivity other than striking the deck at spot leaves the ratio at 1.64 or above, and the spot-deck case of 1.387 is still Full rather than Fair — but the degree of expensiveness is genuinely uncertain, and the two arms of the Materials guardrail disagree with each other. The degenerate FMP target endpoint would ordinarily cost another 10 points; the Yahoo fallback restored the sub-factor, so no further deduction was taken.
Timing confidence 60%: base 75, less 10 for a high-impact release inside seven days on a high-macro-sensitivity name, less 5 for the missing 11 August TSX bar. Quality confidence 74%: full financial coverage and primary-source reserve statements, less a deduction for peer cost-curve data that was not independently sourced. Driver confidence 62%. Overall confidence is the weakest link, 55%.
Corrections carried by this report. Two, both material and neither buried. First, the previous report's copper realisation basis of “LME ~US$4.9–5.0/lb” is irreconcilable with Ero's own disclosed Q2 realised price of US$5.78/lb — a concentrate producer cannot realise 16% above the exchange price it prices against. That figure is withdrawn and is one of the three reasons the anchor moved. Second, the ISIN carried by every prior ERO.TO calibration, CA29767G1090, fails the ISIN check-digit test. The correct identifier is CA2960061091 (CUSIP 296006109), which validates and matches the provider record for this security. Corrected here; the finder sync joins on this field, so it matters.