TSX:ERO Ero Copper Corp.

ISIN: CA2960061091
MaterialsCopper MiningMid-Tier Producer
TSX (CAD) · NYSE: ERO (USD) · HQ Vancouver, British Columbia · GICS Materials · operations 100% Brazil Analysis Status: On-Going
Prices and scenario targets in CAD. Financial statements, commodity decks and the net-asset-value build in USD. USD/CAD 1.3872 at the 17 Aug 2026 close.
C$48.44
+11.1% vs last report
17 Aug 2026 · Signal v6

Changes Since Last Report — vs. 7 Aug 2026

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.

DISCLAIMER: This is a quantitative framework for educational purposes only. It is not financial advice. Always do your own research and consult a licensed financial advisor before making investment decisions.

Ero Copper Corp.

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.

HorizonSignalComposite ScoreConfidenceKey Driver
Short-term (1–3 mo)WAIT5655%§8 WAIT-FOR-EVENT override (FOMC Minutes 19 Aug) — and, independently, the Valuation-Ceiling gate and the Short technical-confirmation cap (RSI 66.5)
Medium-term (6–12 mo)HOLD5655%Great business, wrong price. Base matrix row High-Quality × Expensive = HOLD; Gate 3 caps it independently
Long-term (3–5 yr)HOLD5955%P/NAV 1.91× on a base-case copper deck. The mine plan justifies C$25.38 of the C$48.44 price
Next update: 2026-08-20 — FOMC Minutes 2026-08-19 +1 trading day (§8 / SKILL L1577: a high-impact rates release inside the 3-trading-day WAIT-override window for a High-macro-sensitivity Materials name)
Table of Contents
1Five-Pillar Scorecard2Hard Gates & Do-Not-Buy Status3Pillar Detail: Business Quality4Pillar Detail: Valuation Attractiveness5Pillar Detail: Underlying Drivers6Pillar Detail: Economic Alignment7Pillar Detail: Entry/Exit Timing8Economic Event Risk9Multi-Timeframe Technical Analysis10Price Chart (6-Month Daily)11Scenario Summary12Entry / Exit Rules13Position Sizing Context14Calibration Snapshot15Data Sources & Methodology
1

Five-Pillar Scorecard

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

Business Quality

72
solid
conf 74%

Valuation Attractiveness

38
expensive
conf 55%

Entry/Exit Timing

60
improving
conf 60%

Underlying Drivers

75
Tailwind
conf 62%

Economic Alignment

82
Trend-Following
conf 68%
2

Hard Gates & Do-Not-Buy Status

Binary safety checks — any TRIGGERED gate is a hard cap regardless of the scores above; CAUTION gates are sizing notes.
Financial Distress
Net debt US$452.7m at 30 Jun 2026 and net debt / adjusted EBITDA of 0.8×, down from 2.6× at the start of 2025. Interest coverage 12.43×, current ratio 1.371×, debt-to-equity 0.472×. Available liquidity US$181.7m (US$101.7m cash plus US$80m undrawn). Debt definition: the company's own Q2 2026 total debt of US$554.4m is used, not the US$573.4m the providers carry — that figure is lease-inclusive, and the US$18.9m difference was reconciled rather than absorbed.
Earnings Event Risk
Q2 2026 was reported after the close on 5 Aug 2026 (filed 5 Aug, released 5–6 Aug). The next quarterly report is due in early November 2026 — roughly 80 days out, well outside the 14-day window. No exact Q3 date has been announced; treated as approximate.
Valuation Ceiling
TRIGGERED. The Valuation Anchor puts the actual multiple at P/NAV 1.91× against a warranted 1.00×. That is above the 1.40× Expensive threshold, so SKILL Gate 3's intrinsic arm fires and caps every horizon at HOLD. It also breaches the Materials guardrail line of 1.5× P/NAV. Two arms, one conclusion. The base Decision Matrix reaches the same place independently (High Quality × Expensive valuation = “HOLD — great business, wrong price”), so the signal does not rest on the gate alone.
Accounting / Dilution
Weighted-average basic shares 104.283m in Q2 2026 against 103.582m a year earlier — +0.68% in twelve months, far inside the 5%-per-year-for-two-years trigger. Earnings-quality decomposition (step 7b): 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.
Regulatory / Binary Event
No pending takeover, no regulatory ruling with a binary outcome, no trading halt. Brazilian mining permits at Caraíba, Tucumã and Xavantina are in force and routine. The Furnas earn-in is a staged commercial agreement, not a binary regulatory event.
Severe Driver Collapse
Copper HG=F settled at US$6.60/lb on 14 Aug against a consolidated C1 cash cost of US$2.42/lb. The driver scores 75 — nowhere near the ≤15 collapse threshold. Copper would have to fall roughly 60% to reach the cost base.
⚠️
Commodity Concentration
CAUTION. Not a hard gate, but it sizes positions. 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 net-asset-value build runs on. Add a single-country footprint: all three mines are in Brazil, so the Brazilian real, Brazilian tax policy and Brazilian permitting are undiversified. The CFO quantified the currency leg on the Q2 call: persistent inflation and a strong real could add US$0.10/lb to consolidated 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 is expected to return US$40–45m for the year — real money, but a finite programme, so it is excluded from the life-of-mine run rate.
⚠️
§8 Event Window
CAUTION. FOMC Minutes land on Wednesday 19 Aug 2026, two trading days from this report. Materials is a High-macro-sensitivity sector, so SKILL §8's WAIT-FOR-EVENT override fires “regardless of composite score”. 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; the Valuation Ceiling above is what caps all three.
What actually caps this report. Three separate mechanisms reach HOLD, and they are worth keeping distinct. (1) The base Decision Matrix: Quality 72 is High, Valuation 38 is Expensive, and SKILL L1275 maps High × Expensive × any Timing to HOLD — great business, wrong price. (2) Gate 3, the Valuation Ceiling, fires on the same Expensive band and caps every horizon. (3) The §8 event override takes the Short to WAIT for two days. Amplification never enters the chain: HOLD is never amplified, and independently a Full- or Expensive-band name cannot be lifted to STRONG BUY. No Do-Not-Buy trigger fires — see §4 for the explicit adjudication of Trigger 2, which is the one that comes closest.
3

Pillar Detail: Business Quality

A deep dive into the Quality score: business economics, moat, ROIC and the industry benchmark.
Business Quality — Pillar Score
Solid — a genuinely low-cost, rapidly deleveraging producer with a short-ish reserve life and no franchise moat
72
conf 74% · growth-stage producer · Mining metric profile

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-signalValueReferenceScoreRead
Revenue trajectoryQ2 2026 US$284.3m, +73.9% YoY; trailing-twelve-month US$1,046.0mTucumã contributed 8,964t of the 17,315t; Caraíba 8,351t88New-mine growth, not price alone — volumes are genuinely higher
ProfitabilityAdjusted EBITDA margin 50.6% (US$144.0m / US$284.3m); TTM EBITDA margin 56.0%Mid-tier copper peers typically 35–45%82Top-quartile for the sub-industry
Cash generationOperating cash flow US$137.9m in Q2, +50% quarter on quarter. TTM free cash flow US$153m on TTM operating cash flow US$444mFree cash flow is suppressed by the build-out: year-to-date capital spend US$154.4m68Operating cash conversion is strong; free cash flow is a capital-cycle story, not a quality problem
Balance-sheet healthNet debt US$452.7m, 0.8× adjusted EBITDA (2.6× at the start of 2025); interest cover 12.43×; liquidity US$181.7mMining comfort zone is under 2.0×85The single clearest improvement in the file. US$60m of revolver repaid through July, US$95m left
Reserve life index12.6 years consolidated on copper contained in proven and probable reservesBenchmark for a producer is over 8 years62Adequate, not long. Caraíba 15.9 years, Tucumã 9.1, Xavantina 10.2 — see the table below
Cost positionConsolidated copper C1 US$2.42/lb in Q2 (Caraíba US$2.76, Tucumã US$2.10); 2026 guidance US$2.15–2.35Costs rose on lower planned grades, input inflation and a stronger real72Tucumã is genuinely low-cost; Caraíba is mid-curve and drifting up
INDUSTRY BENCHMARK: AISC Margin (Mining)
Copper all-in sustaining cost is estimated at US$3.38/lb — C1 at the top of 2026 guidance (US$2.35) plus US$1.03/lb of sustaining capital. Against the HG=F settle of US$6.60/lb that is an AISC margin of US$3.22/lb, or 48.8% of the metal price → the benchmark's top band (“margin over 40% of spot: 90–100”). Against Ero's own Q2 realised price of US$5.78/lb the margin is 41.5% — still top band, but only just.
Benchmark score: 84/100 — deliberately below the 90–100 the raw margin would earn, because the sustaining component of the AISC is estimated rather than disclosed and the CFO has flagged a further US$0.10/lb of cost pressure. Scored on the realised basis rather than the headline settle, because a concentrate producer never receives the front-month price. Note the honesty problem: the sustaining component of that AISC is estimated, not disclosed — Ero publishes copper C1 and gold AISC, but not copper AISC. The estimate and its consequences are laid out in full in §4, where it moves the valuation band.
Reserve base (company disclosure)Proven & probableGradeContained metal2026 guidanceReserve life
Caraíba (eff. 31 Dec 2024)73,058 kt0.90% Cu654 kt Cu35.0–40.0 kt Cu15.9 yr
Tucumã (technical report 31 Aug 2021)43,052 kt0.83% Cu356.6 kt Cu32.5–37.5 kt Cu9.1 yr
Xavantina (eff. 30 Jun 2025)2,096 kt6.92 g/t Au466.2 koz Au40–50 koz Au10.2 yr
Consolidated copper1,010.6 kt Cu67.5–77.5 kt Cu12.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.

Pricing power
30
None. Copper concentrate sells at exchange-linked prices less treatment and refining charges. Ero is a price-taker and always will be.
Network effects
50
Not applicable to a metal producer — scored neutral rather than zero.
Switching costs
50
Not applicable. Concentrate is fungible; smelters buy on assay and freight, not relationship.
Cost advantage
62
The only real moat here, and it is asset-specific. Tucumã at US$2.10/lb C1 sits low on the global cost curve; Caraíba at US$2.76/lb does not. Trimmed from a higher mark because the Q2 release names lower planned grades, input inflation and a stronger real as live cost pressures, and the reserve grade of 0.90% at Caraíba is below what is currently being processed.
Intangible assets
55
Brazilian mining concessions and the SUDENE regional tax incentive that holds the effective tax rate near 19% against a 34% statutory rate. Real, but conferred by a government rather than built.

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.

Competitive Environment
For a commodity producer the competition is not for customers — the metal always sells. It is for capital, for assets, for skilled labour and equipment in Brazil, and for position on the global cost curve. Ero is gaining share of world mine supply: Tucumã added roughly 35 kt of new annual production into a market that has been running a structural deficit, taking Ero to about 0.32% of global mine supply from near 0.16% three years ago. Almost nobody else is commissioning new copper on that timescale.
Direct competitorThreat typeShare trajectoryMoat-erosion vector
Freeport-McMoRan (FCX), Southern Copper (SCCO)Scale incumbentsEro gaining — both are supply-constrained by grade decline and permittingNone 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 MiningMid-tier peers competing for capital and for M&A assetsStable — Ero screens better on cost, worse on jurisdiction diversityCompetes for the same generalist copper dollar; a peer with a longer reserve life can win the flow
Vale Base MetalsPartner and counterparty on Furnas — and the owner of the asset until the earn-in completesEro 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 capacityBuyer-side concentrationDeteriorating for all concentrate sellersTreatment 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).

ROIC & capital allocation
Trailing operating income of US$378.1m taxed at the 19% effective rate gives NOPAT of US$306.3m. Invested capital — shareholders' equity of US$1,218m plus net debt of US$452.7m — is US$1,671m, so ROIC is 18.3%, comfortably above any plausible cost of capital and in the top quartile of the sub-industry. Reported ROE is 30.8%. Capital allocation has been disciplined and, unusually, sequenced out loud: management set three objectives in order — get leverage below 1.0× (done in Q1), repay the revolver (US$60m down, US$95m to go), then shareholder returns, which the chief executive said he would “come back to the market” on later this year. Insider ownership is modest and there has been no reported insider selling spike; note that no dedicated insider-transaction source was pulled this run, so that is an absence of evidence rather than a verified all-clear.
ROIC 84 · capital allocation 76 · management skin in the game 55.

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.

4

Pillar Detail: Valuation Attractiveness

Sector-appropriate multiples, FCF yield, reverse-DCF implied growth, embedded optionality, and the analyst-consensus cross-check.
Valuation Attractiveness — Pillar Score
Expensive — P/NAV 1.91× against a warranted 1.00× on a base-case copper deck
38
conf 55% · anchor: P/NAV at r = 9.13% · guardrail P/NAV 1.5× BREACHED
THE ANCHOR — P/NAV, struck at the framework's own required return
SKILL L490 is explicit for miners: “P/NAV with r as the discount rate (commodity price held at the base-case deck)”, and L570 adds “use mid-cycle commodity prices for normalisation”. The net asset value below is built bottom-up from Ero's own guidance and its own reserve statements. It is not taken from a broker. This build was re-struck after the pre-publication audit — the realisation factors and the mine life were corrected. What changed, and in which direction, is set out in the audit note at the foot of this section.
StepInputSource / discipline
Discount rate r9.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 deckUS$6.00/lb copper, US$4,000/oz goldUS$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.
RealisationCopper ×0.938 = US$5.63/lb · gold ×0.8646 = US$3,458/ozBoth 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.
Volumes72.5 kt copper (159.83 M lb) · 42 koz mined goldCopper 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 costCopper US$3.38/lb · gold US$2,700/ozGold 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.
CorporateUS$80m general and administrative plus expensed exploration · US$22m net interestQ2 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.
Tax19%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 life17.9 yearsReserves (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$mC$/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 flow289.2
Tax at 19%(54.9)
After-tax annual cash flow234.2
Present value of operations (× 8.6663)2,029.726.59
Furnas — 60% earn-in right on a US$2.0bn PEA net present value, risked at 30%360.04.72
Less net debt at 30 Jun 2026(452.7)(5.93)
Net asset value1,937.025.38
Actual C$48.44 ÷ warranted C$25.38 = P/NAV 1.91× against a warranted 1.00× → EXPENSIVE band → Valuation score 38.
Turned round the other way, the price implies a copper deck of US$7.67/lb held flat for 17.9 years — 16.2% above the 14 Aug settle of US$6.60. On Ero's own 0.938 realisation that is US$7.19/lb received, 24.4% above the US$5.78 it actually realised in the second quarter. That is the single most useful number in this section: you are not buying a copper miner at nine times earnings, you are buying a copper price 16% higher than today's, held flat forever.
THE DECK IS THE LOAD-BEARING CHOICE, and this report says so rather than denying it.
An earlier draft claimed the Expensive call was robust to every single-variable sensitivity. That was false, and the table below is what falsifies it. Stated correctly: The deck is defended on two grounds and no others: US$6.00 is a mid-cycle figure under L570, sitting between copper's 200-day average (US$5.87) and its 50-day (US$6.35); and it is the batch convention, the identical absolute deck applied to Barrick on 16 August. An earlier draft asserted that L490 “forbids” striking the deck at spot. It does not — L490 says only “held at the base-case deck”. That claim is withdrawn.
Sensitivity — every variant that could plausibly change the answerNAV C$/shP/NAVBand
Central — deck US$6.00/US$4,000, AISC US$3.38, life 17.93 yr, Furnas 30%25.381.91Expensive
Full spot deck US$6.60 / US$4,380.4034.921.39Full — the one variant that changes the signal
Reserves-only life, 12.6 years21.222.28Expensive
Copper AISC US$3.10 (sustaining capital only US$120m/yr)29.501.64Expensive
Copper AISC US$3.70 (sustaining capital US$216m/yr)20.682.34Expensive
Furnas carried at zero20.662.34Expensive
Furnas risked at 40% instead of 30%26.951.80Expensive
r = 10.13% (if the quality add-on applied — it does not)23.712.04Expensive
r = 9.20% (the macro report's 4.70% risk-free)25.261.92Expensive
Memo — the withdrawn 0.96 copper realisation27.321.77Expensive
Band boundaries — published deliberately, because the inputs are author choices. The Barrick report in this batch raised a framework amendment on exactly this point: the SKILL bounds neither the cost assumption nor how far below spot a base-case deck must sit, so two unbounded choices sit under a band boundary on every mining report. So here they are, on the corrected build.
Guardrail arms — adjudicated by hand, because the automated check cannot run. The linter's Materials guardrail keys on a price/earnings or price-to-book basis string; 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 guardrail was checked. Judged manually: P/NAV 1.91× against the 1.5× line — BREACHED. EV/EBITDA against the 8× line — clear on every basis, but by less than an earlier draft implied: US$4,150m of enterprise value over the provider's TTM EBITDA of US$585.7m is 7.09×, over the US$566m of LTM adjusted EBITDA implied by the company's own 0.8× leverage on US$452.7m of net debt it is 7.33×, and over consensus it is 6.34× (2026) and 5.79× (2027). The two arms of one guardrail disagree, and that is worth saying plainly rather than burying. SKILL L469 settles it mechanically — the guardrail is a one-way floor (“if the actual multiple is at or above 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 in any case the ≥1.40 warranted-ratio test forces Expensive on its own. But the disagreement is real information: it says the framework's 1.5× P/NAV and 8× EV/EBITDA lines are not calibrated to each other for an asset with an 18-year life, and it is the main reason Valuation confidence is cut to 55%.
WHICH ASSUMPTION BINDS — the deck/cost surface, not a single boundary. A lone boundary invites the objection that it was picked. So here is the whole surface: P/NAV across a grid of copper deck × copper all-in sustaining cost, with gold held at US$4,000/oz. The central case is the shaded cell.
Copper deck ↓ / AISC →US$3.00US$3.20US$3.38 (central)US$3.60US$3.80
US$5.50/lb2.012.292.623.183.94
US$5.75/lb1.761.972.212.593.07
US$6.00/lb (central)1.561.731.912.192.52
US$6.25/lb1.411.541.681.892.14
US$6.50/lb1.281.391.501.671.86
US$6.60/lb (14 Aug settle)1.241.341.441.591.76
US$7.00/lb1.081.161.241.351.47
The deck binds; the cost does not. Read the surface two ways.
Two conventions worth stating plainly, because both cut against this report's own conclusion.
The reserve base is 100%-owned, so no attribution step applies. Ero owns 100% of Caraíba, Tucumã and Xavantina, and the tonnages in §3 are the company's own wholly-owned figures — checked before dividing, because dividing a 100%-basis reserve by attributable production (or the reverse) is how a mine life doubles by accident. Furnas is the only non-wholly-owned asset, and it is handled separately below.
Furnas is carried at a risked value rather than at zero, and its capex is excluded — the pairing is what keeps it symmetric. The batch convention on Barrick and Newmont was growth projects at zero with their capital excluded. This report deviates, and says so: Furnas at zero would strip C$4.72/share, and for Ero that is 19% of net asset value against a far smaller share for a senior producer — carrying it at zero would be more punitive here, not more conservative. So it is credited at 30% of Ero's attributable 60% share of the PEA net present value, and no Furnas development capital is deducted anywhere in the build (the US$3.38/lb all-in sustaining cost covers the three producing mines only). The zero-carry case is published in the sensitivity table above at C$20.66 and a ratio of 2.34 — i.e. the deviation makes this report less bearish than the batch convention would, not more.

Relative cross-checks — they order within the band, they never override it

LensWeightReadingScore
The anchor (P/NAV)40%1.91× warranted — deep in the Expensive band12
Sector median20%EV/EBITDA 5.79× on 2027 estimates against a mid-tier copper peer group typically at 7–9×. Genuinely cheap on this lens72
Own-history decile15%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 range30
Growth-adjusted10%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 deck70
Analyst consensus15%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.

FCF yield — the universal anchor. Trailing free cash flow of US$153m over an enterprise value of US$4,150m is 3.7% — “fair, typical for quality growth”. That figure is suppressed by the build-out: year-to-date capital spend was US$154.4m and management called 2026 “the last major year of capital spending before a significant decline in 2027”. On the base-case-deck after-tax cash flow of US$234.2m the yield is 5.6%, which is attractive. On consensus 2027 numbers it would be higher still. The gap between 3.7% and 5.6% is the whole capital-cycle argument for owning this name — and it is already in the price.
Embedded Optionality / Free Upside
Boa Esperança — a wholly-owned, feasibility-stage copper development project in Pará, on care and not in the build above at all. Carried at zero. Unquantified but real: the market is paying nothing for it because there is no timeline.
Furnas above the 30% risking, and on a richer deck — the February 2026 preliminary economic assessment is struck at US$4.60/lb copper, US$3,300/oz gold and US$40.00/oz silver, a copper deck 23% below this report's own base case. A like-for-like credit would therefore be materially larger than the US$360m carried, and that conservatism is deliberate: the 30% factor is a stage discount for a PEA-level study with no pre-feasibility before 2027 and an incomplete earn-in, not a deck adjustment. A 2027 pre-feasibility that holds the 27% internal rate of return would justify a much higher factor — at 60% the net asset value is C$30.09 and the ratio 1.61.
Resource conversion beyond the 17.9 years already credited — the build takes only half of each producing mine's incremental measured-and-indicated resource, and none of Xavantina's (664 koz against a 466 koz reserve).
Shareholder returns — the chief executive said the company would “come back to the market later this year” on distributions once the revolver is repaid (US$95m outstanding). A first dividend or buyback from a name that currently pays nothing is a re-rating catalyst.
Effect on the score: zero, and that is mandatory rather than discretionary. SKILL L464 caps an Expensive-band score below 40, so a tilt is arithmetically unavailable. More to the point — the discounted mine plan justifies C$25.38 of the C$48.44 price. The remaining C$23.06 is what is paid for Furnas, resource conversion and copper-price optionality. It is not a discount received.
Analyst price targets (Yahoo panel, 16 analysts)Valuevs C$48.44
HighC$58.00+19.7%
MeanC$50.41+4.1%
MedianC$50.50+4.3%
LowC$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 actionsDetail
ConsensusBuy — 5 strong buy, 7 buy, 6 hold, 0 sell, 0 strong sell. 66.7% bullish, so “solid buy consensus with some caution”
Last 30 daysNo rating changes. The most recent action was Bank of America upgrading Neutral → Buy on 16 Jul 2026 — 32 days ago, outside the window
Prior actionGoldman Sachs downgraded Buy → Neutral on 14 Apr 2026
Post-Q2 target movesMixed, 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
FMP ratings cross-reference: B+ (overall 3 of 5). Return on equity 5/5 and return on assets 5/5 — corroborating the Quality read. Price-to-book 2/5 and debt-to-equity 2/5. The discounted-cash-flow sub-score is 1 of 5, the weakest component, which is an independent third-party echo of the anchor's finding that the price sits well above a discounted intrinsic value. That is the only external corroboration available this run: no published analyst net-asset-value per share for Ero could be sourced (the web-search budget was exhausted). The C$50.41 consensus target implies a Street net asset value 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.
Do-Not-Buy Trigger 2 — explicit adjudication, and it is close.
Relative arm — requires a top-decile multiple against its own five-year range with no corresponding acceleration in growth. Growth is plainly accelerating: revenue +73.9% year on year, Tucumã from 28,272 t in 2025 to 32,500–37,500 t guided for 2026. Does not fire.
Absolute arm (a), deep-expensive alone — requires 2.00× warranted or 1.5× the guardrail line (i.e. P/NAV 2.25×). The ratio is 1.91×. Does not fire — but by 0.09, and the boundary sits only about US$0.08 away on either the deck or the cost assumption. Stated plainly because it is the closest call in this report. Were 2.00 reached, the carve-out for “exceptional, proven, durable growth” would be available on Tucumã's ramp — growth in the earnings stream the multiple capitalises. That carve-out exits the Do-Not-Buy; it never exits the Gate-3 cap.
Absolute arm (b), expensive plus a live de-rating catalyst — the Expensive leg is met, so this turns entirely on the second leg, which requires a Structural Business Model Threat (none: nobody is disrupting copper concentrate) or a systemic tail that materially applies to this name. The correct test is cohort exposure, not the tail's status label. SKILL L1089 is explicit that “materially applies” means real cohort exposure, and L1118 defines that cohort as names materially levered to the artificial-intelligence capital-spending or monetisation trade, or top-weight index constituents. A Brazilian copper producer is neither. The September-hike tail is market-wide, and if a market-wide macro tail satisfied this arm it would fire on every Expensive name in a hawkish regime, which is plainly not the rule's intent. Does not fire. 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.
No Do-Not-Buy trigger fires. Triggers 1, 3, 4 and 5 are addressed in §2 and §11.
Pre-publication audit — four rounds, and what each one changed. This report was audited four times by independent agents. Every round returned FAIL. The modelling was confirmed correct from round 1 onwards; what kept failing was transcription. 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 Ero's favour and was applied anyway. The conclusion never changed in any round: Expensive band, Gate 3 fires, HOLD on medium and long, WAIT on short. Rounds 3 and 4 both stated explicitly that every defect they found was a transcription or staleness failure, not a modelling failure.
5

Pillar Detail: Underlying Drivers

The dominant external force the stock is tethered to, scored 0–100. A context pillar: it does not change the base signal — it feeds amplification (tailwind ≥65 can lift BUY→STRONG BUY; headwind ≤35 can push SELL→STRONG SELL).
Primary Driver
Copper price (82%) · gold (18%) · BRL cost leg
75
Tailwind — amplification-eligible on every horizon, and amplifying nothing

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.

HorizonCopper (82% weight)Gold (18% weight)Blended
Historical (25%)767074.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 excellent87
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 accelerating58 — gold sits above a falling 50-day average and below its 200-day. Rate cuts are priced out; the bid is fiscal debasement, not easing66
Weighted per commodity (25/50/25), then blended 82/18copper 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 score75 — 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.

Step 2b — commodity price TREND, not just level. This is the check that stops a bullish narrative being scored over a falling tape, and copper passes it cleanly. Copper is above both its 50- and 200-day averages, the 50-day average is rising, and all three momentum windows are positive. The Step-2b short cap does not fire, and unlike gold or silver this month, the phrase “clean structural tailwind” is actually available here. Gold is the split one: above a falling 50-day average but below its 200-day — a rebound inside a broader correction, and its 8-week leg is +0.49%, effectively nowhere in two months. All levels are quoted to the futures settle (HG=F, GC=F) on the 14 Aug 2026 settled bar, never to an exchange-traded fund.
Amplification eligibility — the arithmetic, shown rather than asserted.
• Driver 75 is ≥ 65, so the driver leg is satisfied on every horizon, and the additional medium-horizon test (driver ≥ 65) is satisfied too.
• Economic pressure is Tailwind, so that leg is satisfied.
And amplification still does not happen — on three independent grounds. (1) The base signal is HOLD on every horizon, and HOLD is never amplified. (2) SKILL L1300/L494 bar amplification for any name at or above 1.20× warranted; this one is at 1.91×, well beyond the Full band and into Expensive. (3) Gate 3 caps every horizon at HOLD after amplification would have run anyway.
This is the material change from the last report, which carried STRONG BUY on medium and long. Nothing about the copper driver deteriorated — it improved, from 67 to 75. What changed is the price paid for it.

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.

6

Pillar Detail: Economic Alignment

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

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

7

Pillar Detail: Entry/Exit Timing

The risk-reward framework, relative strength vs SPY and the sector ETF, the macro overlay, news-derived sentiment, and the catalyst cluster.
Entry/Exit Timing — Pillar Score
Improving — every timeframe bullish, but the entry is poor: 23% above the 50-day average with the stop 3.2 ATR away
60
conf 60% · Materials = High macro sensitivity (weight 0.20)
ComponentWeightReadingScore
Multi-timeframe trend30%All five timeframes bullish; monthly 78, weekly 78, daily 88, hourly 86, 15-minute 7681
Risk-reward / position risk20%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 average32
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 days58
Sentiment15%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 price60
Catalysts15%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 event58
Entry/Exit Timing60 — Improving
Relative strength — and the honest caveat. Over one month Ero returned +40.5% in Canadian dollars and +42.8% in US dollars, against SPY +4.6% and XLB +2.7%. Over three months: Ero +17.9% in CAD, +17.5% in USD, against SPY +3.6% and XLB +4.0%. Outperforming both benchmarks on both windows scores 85–100 — this is 95. The currency adjustment is stated rather than hand-waved: USD/CAD moved from 1.4100 to 1.3872 over the month, so the Canadian-dollar return understates the US-dollar return; the ranking is unaffected either way. Note what leadership this extreme means at this point in a move: Ero is the leader, and leaders correct hardest when the sector pauses.
Position-risk detailLevelDistance 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 averageC$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 stopC$41.00−15.4% (3.2 ATR)
Catalyst inventory (0–12 months)
19 Aug 2026 — FOMC Minutes. High impact, two trading days out, fires the §8 override.
16–17 Sep 2026 — FOMC decision. The hike debate resolves or extends.
Q4 2026 — three additional modular tailings filters arrive in Q3 and commission in Q4, lifting Tucumã's throughput ceiling into 2027. The clearest operational catalyst in the file.
Early Nov 2026 — Q3 results. Date not yet announced; treated as approximate.
Late 2026 — the shareholder-return decision, once the remaining US$95m of revolver is repaid. A first dividend or buyback would be a genuine re-rating event for a name that currently returns nothing.
Year-end 2026 — completion of the 45,000-metre Phase 3 drill programme at Furnas (over 31,000 metres done).
2027 — Furnas pre-feasibility study. The event that would justify a materially higher risk factor than the 30% used in §4.
Clustering score 58 — one clear catalyst inside 30 days, nothing bunched. Normal position size, tighter stops through the event.

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).

8

Economic Event Risk

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

Upcoming events (next 30 days)

DateEventImpactForecastPreviousRelevant?Why
18 Aug 2026Housing Starts & Building Permits (Jul)High1.35m / 1.37m1.427m / 1.374m⚠ MediumUS construction is a real copper end-market, but a single month's starts print moves the metal very little
19 Aug 2026FOMC MinutesHigh✅ YesThe 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 2026Philadelphia Fed Manufacturing (Aug)Medium25.041.4⚠ MediumManufacturing 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 2026Industrial Production & Capacity Utilization (Jul)Medium+0.3% / 76.3%+0.1% / 76.1%⚠ MediumDirect read on copper-consuming activity

Recent surprises (last 7 days)

DateEventActualForecastSurpriseImpact
17 Aug 2026NY Empire State Manufacturing (Aug)20.611.0+87.3%Positive for copper demand — a large upside manufacturing surprise on the report date itself
14 Aug 2026Michigan Consumer Sentiment (Aug)51.054.5−6.4%Negative, but consumer sentiment is a weak channel for an industrial metal
14 Aug 2026Michigan 1-Year Inflation Expectations (Aug)4.3%+0.1ppRising expectations feed the hawkish case into the 19 Aug minutes — the mechanism behind the WAIT
14 Aug 2026Atlanta 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 2026CFTC Copper speculative net positions80.4k+3.3kSpeculative 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.

9

Multi-Timeframe Technical Analysis

Trend, RSI and breakout status across monthly / weekly / daily / hourly / 15-minute, with a confluence verdict.
TimeframeTrendDirectionRSIMACDKey S/RBreakoutVol
MonthlyUptrend ↑Bullish65.0+3.80, hist +0.82 (rising)S: US$17.68   R: US$39.80Resistance breakout0.83×
WeeklyUptrend ↑Bullish62.6+1.43, hist +0.68 (rising)S: US$22.93   R: US$39.80Resistance breakout0.17×
DailyStrong uptrend ↑Bullish66.5+3.04, hist +1.02 (falling from +1.64)S: C$41.13 (20-DMA)   R: C$51.21Resistance breakout0.63×
HourlyStrong uptrend ↑Bullish59.1+0.15, hist +0.16S: US$34.67   R: US$35.50Resistance breakout
15-minuteUptrend ↑Bullish59.7+0.20, hist +0.01 (flat)S: US$33.99   R: US$35.03Resistance 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).

10

Price Chart (6-Month Daily)

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

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.

11

Scenario Summary

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

Bull — C$65 (25%)

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.

Base — C$47 (55%)

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.

Bear — C$30 (20%)

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.

Probability-weighted 12-month value: C$48.10 — (0.25 × 65) + (0.55 × 47) + (0.20 × 30) = 16.25 + 25.85 + 6.00. That is 0.7% below the current price of C$48.44, which is about as literal a definition of “fully valued” as this framework produces, and it is arrived at independently of the net-asset-value anchor. Note the shape: the upside case needs three things to go right together, the downside case needs one macro event that is already ~44% priced. Weights are 25/55/20 and sum to 100, with the base case the most probable.

12

Entry / Exit Rules

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

How to read this — the Conviction Ladder

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

Fundamental — not MET

UNMET. The fair-value estimate is the r-struck, base-case-deck net asset value of C$25.38, and the price is 90.9% above it. An Expensive-band name is by definition trading above fair value, so this path cannot be open.
⛔ Price C$48.44 < fair value C$25.38 (1.00× the net asset value struck at the framework's own 9.13% required return) — false; price is 90.9% above it
✅ No earnings within 7 calendar days — Q2 reported 5 Aug 2026, Q3 due early November
✅ Underlying-Driver score ≥ 50 — driver is 75

Technical — not MET

UNMET on the RSI condition, and on both branches of the trigger. This is the condition that would fire the Short technical-confirmation cap even if the Valuation Ceiling were not already capping all three horizons.
⛔ Branch A — a close above the 50-day average (C$39.35) on volume above 1.5× the 20-day average: the 7 Aug session cleared it (830,600 shares against 399,700 = 2.08×), but that was five sessions ago and 17 Aug traded 250,428 = 0.63×
⛔ Branch B — a tested bounce off weekly or monthly support with a higher low: 13 Aug low C$47.47, 14 Aug low C$46.66 — that is a lower low, so the pullback branch does not apply either
⛔ RSI(14) between 35 and 65 — 66.5, outside the band
✅ MACD histogram positive for 2+ consecutive days — positive, but falling (+1.64 → +1.02 over four sessions)

Catalyst — not MET

UNMET. The Q2 result was good but the immediate reaction was not the +5% the rule requires; the +9.5% session came two days later and was a copper move, not an earnings move.
⛔ Post-earnings move within 24 hours above +5% — Q2 released after the close on 5 Aug; the 6 Aug close of C$43.62 was +2.13% on the 5 Aug close of C$42.71
✅ Guidance raised or maintained — copper production and cost guidance maintained; capital guidance raised to US$285–330m and mined gold guided to the low end
⛔ Volume above 2× the 20-day average on the reaction — 6 Aug traded 546,400 against 399,700 = 1.37×

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.

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

Stop-Loss — not LIVE

⛔ Two consecutive daily closes below C$41.00 — below the 7–10 August breakout base and just under the 20-day average of C$41.13; 3.2 ATR away. Not live: price C$48.44.

Thesis Invalidation — not LIVE

⛔ Full-year guidance cut — copper production and cost guidance were maintained at Q2. Mined gold was guided to the low end and capital guidance raised US$10m for the Xavantina powerline: a trim, not a cut
⛔ Revenue growth decelerating below the sector median — +73.9% year on year
⛔ The primary underlying driver turns to a headwind — copper is above both averages on a rising 50-day, driver 75
Competitive / cost-curve invalidation: Tucumã's C1 rising above US$2.60/lb on a sustained basis, or consolidated C1 breaking above the US$2.35/lb guidance ceiling for two consecutive quarters — the low-cost position is the only moat in this file, and the CFO has already flagged US$0.10/lb of currency and inflation pressure against it. Q2 consolidated C1 was US$2.42/lb, already above the guidance ceiling, on lower planned grades
⛔ Catastrophic (fires alone) — a financial-distress, dilution or going-concern gate triggers. None are live; the Valuation Ceiling gate that is triggered is not in this list, and deliberately so: an expensive price is a reason not to add, not a reason the business is broken

Profit-Target — not LIVE

⛔ Price reaches the median analyst target of C$50.50 — not reached; C$48.44 is 4.1% below it
⛔ RSI above 70 — 66.5, and falling from 77.5 on 10 August
✅ Quality has not materially improved to justify the new valuation — Quality rose only 70 → 72 while the price rose 11.1%

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.

Imagine you act at the current price of C$48.44 · as of 17 Aug 2026

What if you bought now?

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.

What if you sold now?

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”.

13

Position Sizing Context

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

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 contextValueRead
ATR(14)C$2.354.85% of price — a typical day moves nearly 5%
Beta vs SPY1.586A 5% position behaves like a 7.9% position in risk terms
12-month rangeC$18.80 – C$51.21 (closing)The stock has nearly tripled in a year. That cuts both ways
Stop distance15.4% (3.2 ATR)Beyond the 2.5-ATR threshold — the entry is unfavourable on position-risk grounds alone
Conviction ladderWait (0 of 3)Ladder factor 0×. No entry path is open, so there is no size to compute
Catalyst clustering58Above 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.

14

Calibration Snapshot

Machine-readable snapshot of every score, level and signal, saved alongside the HTML so the next run can compute deltas.
{
  "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.

15

Data Sources & Methodology

Audit trail of every data source: fully available (✓), fallback (⚠), or failed (✗), plus provenance-based confidence haircuts.
Data Source Status
get_yahoo_quote (ERO.TO) Price C$48.44 (17 Aug close), currency CAD, market cap C$5.052bn, eps_trailing C$4.11, trailing P/E 11.79, beta 1.586, 52-week C$18.57–53.69 intraday. Trap handled: its cash, debt and free-cash-flow fields are in USD (the reporting currency) against a CAD price, so no ratio was taken directly from the provider; enterprise value was recomputed on matched USD figures.
get_yahoo_prices (ERO.TO, 1yr daily) 259 settled bars. Two traps handled. (1) yfinance treats the end date as exclusive, so an initial pull to 2026-08-17 returned no 17 Aug bar; re-pulled to 2026-08-19 to capture it. (2) The last bar was checked for a real close rather than taken blindly — 17 Aug settled at C$48.44 on 250,428 shares, cross-confirmed against Polygon's US listing close of US$34.91 at USD/CAD 1.3872. Partial: the 11 Aug 2026 TSX bar is missing from the series although the US listing traded that session; timing confidence cut 5 points.
get_technical_indicators (ERO, daily) 262 bars. Used to date-stamp the series — Polygon's 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_multi_timeframe_analysis (ERO) Monthly, weekly, daily, hourly and 15-minute all returned; confluence “strongly bullish”. Priced on the NYSE listing in USD, so the CAD levels in §9 were computed separately from raw TSX closes.
get_income_statement (ERO, 6 quarters) Q2 2026 filed 5 Aug 2026: revenue US$284.3m, operating income US$107.0m, net income US$89.5m, diluted EPS US$0.85, diluted shares 105.877m. Used for the step-7b earnings-quality decomposition: non-operating income was 2.7% of trailing pre-tax income.
get_financial_ratios (ERO) Trailing P/E 11.72, P/B 3.00, ROE 30.8%, current ratio 1.371, interest coverage 12.43×, effective tax rate 18.93%, book value per share US$11.68. Trap handled: the provider's total debt of US$573.4m is lease-inclusive; the company's own Q2 figure of US$554.4m and net debt of US$452.7m were used throughout, and the US$18.9m difference reconciled.
get_price_target_consensus (ERO) DEGENERATE — treated as a failed pull per the mandatory fallback rule. Returned high = low = median = consensus = US$31.00 with a last-quarter count of zero: a single stale target 11% below the NYSE price. Superseded by get_yahoo_analyst_targets.
get_yahoo_analyst_targets (ERO.TO) The fallback panel actually used: mean C$50.41, median C$50.50, high C$58.00, low C$45.00, 16 analysts, recommendation “buy” (mean 1.94). Distribution 5 strong buy / 7 buy / 6 hold / 0 sell — which sums to 18 against a stated 16, an inconsistency flagged in §4 rather than smoothed.
get_grades_consensus / get_stock_grades (ERO) FMP's grade consensus is thin (2 buy, 2 hold) and was not used for the distribution; the Yahoo panel was. Individual actions are real and used: BofA Securities upgrade Neutral → Buy 16 Jul 2026; Goldman Sachs downgrade Buy → Neutral 14 Apr 2026. No rating change in the last 30 days.
get_ratings_snapshot (ERO) B+, overall 3 of 5. ROE 5, ROA 5, P/E 3, D/E 2, P/B 2, discounted cash flow 1 — the weakest sub-score, and an independent echo of the anchor's finding.
get_analyst_estimates (ERO, annual) 2026E EPS US$3.87 (6 analysts), revenue US$1,246m, EBITDA US$655m; 2027E EPS US$4.66 (6), revenue US$1,364m, EBITDA US$717m; 2028E US$4.50; 2029E US$3.51; 2030E US$3.45. Used for the forward multiples and the EV/EBITDA cross-check — not for the net-asset-value build, because consensus is struck at a spot-or-better copper deck and L490 requires a base-case deck.
get_economic_calendar (US, +30/−7 days) 387 events. The decisive one is FOMC Minutes, 19 Aug 2026, High impact, category interest_rates — two trading days out, which fires the §8 WAIT-FOR-EVENT override and sets the next update date.
get_earnings_calendar (ERO) Returned no rows for this ticker. The Q2 date was taken from the SEC filing date (5 Aug 2026) instead; the Q3 date is estimated as early November 2026 from the company's historical cadence and is explicitly marked approximate. No announced date could be sourced.
get_related_tickers / get_polygon_news (ERO) Peers returned (HBM, SCCO, FCX, TECK, TGB) and used in the competitive block. The news feed is largely stale and polluted with unrelated Soma Gold releases carrying an ERO tag; company facts were taken from the primary release and call transcript instead.
Company Q2 2026 release + earnings call transcript Primary source for production, costs, realised prices, balance sheet and guidance. Fetched 17 Aug 2026. Also the source for management's capital-spending steer (“2026 should be the last major year of capital spending before a significant decline in 2027”), the BRL cost warning and the hedge programme.
Company technical-report pages (Caraíba, Tucumã, Xavantina, Furnas) Source for every reserve and resource figure in §3 and for the 17.93-year mine life in §4, and for the Furnas terms: a staged 60% earn-in signed July 2024 with Vale Base Metals, which currently owns 100%, and a February 2026 preliminary economic assessment — NPV(8%) US$2.0bn, IRR 27.0%, 24-year life, 13.5 Mtpa, ~108 kt CuEq for 15 years, C1 US$0.24/lb. The PEA's metal price deck IS disclosed on this page and is recorded and used — 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. Only the initial capital cost is genuinely undisclosed. An earlier draft declared the deck unavailable here; that claim is withdrawn.
Macro-Economic report of record 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.
Web search Budget exhausted during this run (200 of 200 calls used session-wide). Consequences, stated rather than hidden: (a) no independent this-run re-verification of geopolitical status — the Strait of Hormuz closure and the September-hike probability are carried with attribution from the 12 Aug 2026 macro report and are labelled as that report's read, not as verified-this-run; (b) no published analyst net-asset-value per share for ERO could be sourced as a third-party cross-check; (c) no dedicated insider-transaction search, so Do-Not-Buy Trigger 4 rests on absence of evidence rather than a verified all-clear; Not a consequence: 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 the §4 realisation factors of 0.938 and 0.8646 are struck on those like-for-like period averages — not on a spot settle. An earlier draft listed them here as unsourced; that is withdrawn. WebFetch remained available and was used for every primary-source item above.
Impact on scores:

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.

DISCLAIMER: This is a quantitative framework for educational purposes only. It is not financial advice. Always do your own research and consult a licensed financial advisor before making investment decisions.