The input battery used internally to test the Afrimintel DCF / NPV tool. Each test specifies inputs, expected behaviour, and pre-specified failure modes. The battery itself is published — not just the results — so that any user, partner, or external reviewer can run the same tests and verify the tool independently.
Cycle 1 first-cycle results — dual-column reference DCF + platform tool reconciliation against published Kakula DFS targets — are under editorial review and publish at a companion URL when sign-off completes. The v1.1 amendment to this spec (adding LoM cost-trajectory specification surfaced by cycle 1) is similarly drafted and under review; it integrates into this page on approval.
The Afrimintel DCF / NPV tool produces economic outputs that users will compare against published technical reports (NI 43-101, JORC, SAMREC). Sophisticated users will form a view of the tool's reliability based on whether its outputs are reproducible, monotonic, sensitive to inputs in expected directions, and reconcilable to authoritative published economic studies.
Under the Afrimintel Quality Standard, tool outputs are Derived. Derived outputs require a published methodology and a stated confidence range. This battery is the published methodology for testing whether the tool's Derived outputs behave as the underlying economic logic implies they should.
A tool that passes a published battery is more credible than a tool that doesn't have one. A platform that publishes the battery — including the failure modes it pre-specifies — signals a discipline that user trust depends on.
The Afrimintel DCF / NPV tool, as of Day 30 deployment, accepts the following standard mining-finance inputs and returns the following standard outputs.
| Input | Unit | Notes |
|---|---|---|
| Commodity price (long-term) | USD per unit (lb / oz / tonne) | Real, excluding inflation |
| Resource tonnage | million tonnes | At the cut-off grade applied |
| Average grade | % or g/t | At the cut-off grade applied |
| Recovery rate | % | Process plant recovery to concentrate |
| Mine life | years | Operating years at steady state |
| Annual production rate | million tonnes per annum | Throughput |
| OPEX per tonne ore | USD | All-in operating cost per tonne milled |
| Initial CAPEX | USD millions | Pre-production capital |
| Sustaining CAPEX | USD millions per annum | As stated in published studies |
| Discount rate | % | Real, after-tax basis |
| Effective tax rate | % | Combined corporate income tax + royalty + state participation |
| Mine ramp-up profile | years | Time to steady-state production |
| Output | Unit |
|---|---|
| After-tax NPV | USD millions, at the stated discount rate |
| After-tax IRR | % |
| Payback period | years from first commercial production |
| Sensitivity table | NPV across a defined ± range of price and discount rate |
The following are not currently handled by the Day 30 DCF tool. Each is published here so users know the boundary of what the tool can defensibly evaluate. The Q3 2026 paid-reviewer cycle will assess whether and how each should be added.
These limitations are honest scope statements, not bugs. A Day 30 commercial-pilot tool that handles 80% of the use cases at 90% accuracy with known boundaries is more credible than a Day 30 tool that claims comprehensive coverage and quietly fails on edge cases.
The battery is organised around five categories of test, each addressing a different failure mode in DCF tool design.
A DCF output should respond to inputs in directionally expected ways. Increasing the discount rate should decrease NPV. Increasing commodity price should increase NPV. Increasing OPEX should decrease NPV. These are properties of the underlying mathematics; if they fail, the tool's logic is structurally wrong.
A DCF should handle edge-case inputs without producing nonsensical outputs. Zero discount rate. Negative cash flow years. Extreme high/low commodity prices. Mine life of one year. The tool should either produce a defensible output or refuse the input gracefully, not return a value that looks plausible but is computed incorrectly.
Small input perturbations should produce small output changes. A 1% change in commodity price should produce roughly the elasticity-implied change in NPV. If a 1% input change produces a 50% output swing, the tool has hidden non-linearities that need to be understood.
The tool should reproduce, within tolerance, the after-tax NPV figures published in authoritative technical reports when given the same inputs. This is the strongest test — it says the tool's output matches the considered judgment of the qualified persons who signed the technical report.
Each test above also includes a hypothesis about what the tool would do if the underlying logic were wrong. This converts the battery from "let's plug in numbers and see" to "let's verify our hypotheses about how the tool should behave." If a test fails, the failure mode tells us what part of the logic is broken.
Kamoa-Kakula Copper Complex, DRC. Operated by Ivanhoe Mines (39.6%), Zijin Mining (39.6%), Crystal River Global (0.8%), DRC Government (20%). Multiple published economic studies provide reconciliation targets at varying scopes:
| Study | Scope | NPV @ 8% | IRR | Mine life |
|---|---|---|---|---|
| Kakula DFS (2020) | Phase 1 — Kakula Mine, 6 Mtpa | USD 5.5bn | 77.0% | 21 years |
| Kakula-Kansoko PFS (2020) | Phase 1-2 — 7.6 Mtpa with Kansoko | USD 6.6bn | 69% | 37 years |
| Kamoa-Kakula 2020 PEA | Integrated 19 Mtpa | USD 11.1bn | 56.2% | 40+ years |
| Kamoa-Kakula 2023 IDP — PFS | Phase 3-4 expansion, 19.2 Mtpa | USD 19.1bn | — | 33 years |
| Kamoa-Kakula 2023 IDP — PEA | LoM extension to 42 years | USD 20.2bn | — | 42 years |
Five published reconciliation targets, spanning a 4× range of NPV ($5.5bn to $20.2bn) and a 2× range of mine life (21 years to 42 years). Day 30 reconciliation tests use Kakula DFS (2020) as the primary anchor: smallest scope, simplest single-mine economics, highest IRR, no by-product credit issue, and the published economic model is publicly available as part of the September 2020 technical report.
Copper price assumption in the 2020 DFS: USD 3.10/lb, real, excluding inflation. Cash cost USD 0.48/lb in first 5 years of operation. Initial capital cost USD 0.65bn from July 2020. Resource: 110 Mt at 5.22% Cu (life-of-mine production scenario, 2020 DFS).
Inputs
Kakula DFS reference inputs (110 Mt at 5.22% Cu, $3.10/lb Cu, $0.48/lb cash cost, $0.65bn initial capex, 21-year mine life). Discount rate varied from 0% to 20% in 1% increments.
Expected behaviour
NPV decreases monotonically as discount rate increases. At 0% discount rate, NPV equals the simple sum of nominal after-tax cash flows. At a discount rate above the IRR (77%), NPV becomes negative.
Pre-specified failure mode
If NPV does not decrease monotonically, the discounting logic is inverted or non-uniform across years. If NPV at 0% does not equal the sum of after-tax cash flows, the tool is applying discounting inconsistently. If NPV remains positive at discount rates above the IRR, the IRR calculation is wrong.
Pass criterion
NPV monotonically declines across all 21 increments. NPV at 8% within 5% of published USD 5.5bn target.
Inputs
Kakula DFS inputs. Copper price varied from $1.50/lb to $5.00/lb in $0.10/lb increments.
Expected behaviour
NPV increases monotonically as price increases. The relationship is approximately linear across the range, with NPV tracing out a curve whose slope reflects the volume of metal being sold.
Pre-specified failure mode
Non-monotonic NPV indicates an error in how the tool computes revenue (revenue = price × tonnes × grade × recovery), or how revenue feeds the cash flow ladder. A non-linear NPV-price curve indicates the tool may be applying a price-dependent royalty or tax incorrectly.
Pass criterion
Monotonic. NPV at $3.10/lb within 5% of USD 5.5bn published target.
Inputs
Kakula DFS inputs. OPEX (cash cost) varied from $0.30/lb to $2.00/lb in $0.10/lb increments.
Expected behaviour
NPV decreases as OPEX increases. The relationship is linear.
Pre-specified failure mode
Non-monotonic NPV indicates revenue and cost are being applied in the wrong order, or cost is being deducted twice. A discontinuity at any point indicates a step function in cost treatment that wasn't documented.
Pass criterion
Monotonic. Linear relationship.
Inputs
Kakula DFS inputs, discount rate = 0%.
Expected behaviour
NPV at zero discount rate equals the simple sum of after-tax cash flows over the mine life. This is the upper bound on any defensible NPV.
Pre-specified failure mode
Tool refuses zero discount → tool has hard-coded a minimum discount rate, which is acceptable but should be documented. NPV at 0% is less than NPV at 8% → tool's discounting is genuinely inverted, structural error. NPV at 0% is implausibly large → cash flow projection is over-stated, possibly through double-counting or perpetuity treatment.
Pass criterion
Tool returns a positive value greater than published USD 5.5bn (which was at 8% discount), and the value is consistent with the implied undiscounted cash flow.
Inputs
Kakula DFS inputs. Discount rate = 50%.
Expected behaviour
NPV at 50% should be substantially below published $5.5bn target (which was at 8%). NPV at 50% should still be positive because 50% is below the published 77% IRR.
Pre-specified failure mode
NPV unchanged or larger than at 8% → discount rate is being applied incorrectly. Tool returns infinity or NaN → numerical instability at high rates.
Pass criterion
NPV positive but materially smaller than at 8%. NPV at the published IRR (77%) should approximate zero.
Inputs
Kakula DFS inputs, with one year of negative cash flow injected into Year 5 (e.g., −$1bn one-time event).
Expected behaviour
NPV decreases by approximately $1bn / 1.08^5 ≈ $680m. The decrease should be exactly the discounted negative cash flow.
Pre-specified failure mode
NPV decreases by less than the discounted amount → tool may be capping negative cash flows at zero (an error). NPV decreases by more than the undiscounted amount → tool may be double-counting the loss.
Pass criterion
NPV decrease within 5% of the discounted-cash-flow expectation.
Inputs
Kakula DFS inputs, mine life forced to 1 year (with all production compressed into year 1).
Expected behaviour
NPV approximately equals (Year 1 cash flow) discounted by one year, minus initial capex. This is a degenerate case; the tool should handle it without numerical issues.
Pre-specified failure mode
Tool errors out → tool has hard-coded minimum mine life. NPV implausibly large → cash flow being annuitised over phantom years. NPV implausibly small or negative → capex being applied incorrectly.
Pass criterion
Tool returns a sensible positive or negative value with the magnitude consistent with one-year cash flow minus capex.
Inputs
Kakula DFS reference inputs at $3.10/lb Cu vs $3.13/lb Cu (1% increase).
Expected behaviour
NPV should increase by approximately 1.5–3% (elasticity is usually 1.5–3 in mining DCFs, depending on the cost structure — high-margin operations have higher elasticity).
Pre-specified failure mode
Elasticity > 5 indicates the tool is double-counting price somewhere. Elasticity < 0.5 indicates costs are being scaled with price (which is wrong unless explicitly modelled). Elasticity = 0 indicates price isn't actually flowing through.
Pass criterion
Elasticity in the 1.5–3 range for a high-margin operation like Kakula. Document the actual elasticity for future reference.
Inputs
Kakula DFS reference inputs at 8% vs 9% discount rate.
Expected behaviour
NPV decrease in the range of 8–15%, depending on duration of cash flows.
Pre-specified failure mode
Elasticity outside this range indicates the tool's duration calculation is wrong, or cash flow timing is mis-modelled.
Pass criterion
Documented elasticity in range. Future runs compare against this baseline.
Inputs
All Kakula DFS published inputs as listed above.
Expected behaviour
Tool returns NPV at 8% discount within 5% of published USD 5.5bn (i.e., USD 5.225bn to USD 5.775bn). IRR within 2 percentage points of published 77.0%.
Pre-specified failure mode
Tool understates NPV by more than 5% → tool is missing a revenue source (likely sulphuric acid by-product credit, which the published study includes but the Day 30 tool does not handle — this is an expected, documented gap). Tool overstates NPV → tool is missing a cost or tax element.
Pass criterion
Tool returns NPV within 10% of published USD 5.5bn. The expected understatement of approximately 3–5% due to missing sulphuric acid by-product credit is acceptable and documented.
Inputs
Kakula-Kansoko PFS published inputs (7.6 Mtpa with Kansoko addition).
Expected behaviour
Tool returns NPV at 8% within 10% of published USD 6.6bn. The wider tolerance reflects the integration of two mines, which the Day 30 tool models as a single-asset.
Pass criterion
NPV within 10% of USD 6.6bn target, or the gap is explained by a documented limitation.
Inputs
Kamoa-Kakula 2020 PEA published inputs (integrated 19 Mtpa, 40+ year mine life).
Expected behaviour
Tool returns NPV at 8% within 15% of published USD 11.1bn. The wider tolerance reflects the integrated nature of the asset, multi-stage capex, and the PEA's inclusion of inferred resources.
Pass criterion
NPV within 15% of USD 11.1bn target, or the gap is explained by a documented limitation (likely the multi-stage capex modelling and by-product credits).
Inputs
Kamoa-Kakula 2023 IDP PFS published inputs (Phase 3-4 expansion, 33-year mine life, $3.04bn Phase 3 capex separate from earlier capex — capex figure cited from 2023 IDP, not yet independently re-verified against the 31 March 2026 NI 43-101). Reviewers should treat the capex input as a 2023-vintage citation pending re-walk; the test's pass criterion is anchored to the $19.1bn NPV target, not to the capex input directly.
Expected behaviour
Tool returns NPV at 8% within 20% of published USD 19.1bn. The wider tolerance reflects multi-phase capex (Day 30 tool limitation), longer mine life, and integrated complex modelling.
Pass criterion
NPV within 20% of USD 19.1bn target, OR the gap is explained by documented multi-phase capex limitation. If the tool's output is materially below the target due to inability to model phased capex correctly, this is an expected, documented gap.
Hypothesis
The Day 30 tool, by treating Kakula as single-commodity Cu, will systematically understate NPV relative to the published economic studies which include sulphuric acid by-product revenue.
Expected behaviour
Across reconciliation tests C4.1 through C4.4, the tool's NPV outputs should be 3–5% below the published targets, with the gap roughly proportional to the by-product revenue share documented in the published studies.
Pass criterion
Tool understates NPV by an amount consistent with the by-product gap. If the gap is materially different (e.g. 15% understatement), the failure has another cause that needs investigation.
Hypothesis
The Day 30 tool uses a single effective tax rate input rather than disaggregating royalty + corporate tax + state participation. If the user enters the wrong effective rate, NPV will be off by the magnitude of the tax error.
Expected behaviour
Reconciliation requires the user to compute the DRC effective rate correctly. With the published assumption of a 30% corporate tax + 3.5% copper royalty + 20% DRC state participation, the effective burden is non-trivial to compute.
Pass criterion
Document the effective tax rate used in each reconciliation test. If tool output diverges materially from published, check whether the divergence is explained by tax-rate input differences before concluding the tool itself is wrong.
Anyone — a user, a reviewer, an acquirer's DD team, the Q3 paid reviewer — can run this battery using only public data:
Reproduction of any individual test should produce results consistent with the first-cycle results that publish at this URL when editorial sign-off completes. Any divergence is itself a useful finding and should be reported via the Field Corrections programme or to nikesh@afrimintel.com.
In the spirit of honest scope statement, the following test categories are explicitly NOT covered in the Day 30 v1.0 battery and are scheduled for the Q3 2026 expansion:
The Q3 paid-reviewer cycle is scoped to audit, expand, and reproduce this battery, with the reviewer's name and credentials published alongside the expanded version.
v1.0 — April 2026. Foundation battery. 15 tests across 5 categories. Kamoa-Kakula reference asset with five published reconciliation targets. Day 30 tool limitations documented. First-cycle results pending publication.
v1.1 — May 2026 (drafted, under editorial review). Cost-trajectory amendment. Adds LoM-average cash cost as required reconciliation input following the cycle-1 finding that the spec's first-five-years cash cost cannot be used as a LoM constant for reconciliation. Test C4.1 input specification updated. Test C5.1 hypothesis revised. Cycle 2 scope section added.
v2.0 — Scheduled Q3 2026. Expansion under independent reviewer engagement, scoped for paid reproduction and co-authored expansion of the test battery. Categories to be expanded based on reviewer scope. Reviewer name and credentials published when engagement is finalised.