Methodology··7 min read

AI Hallucinations in Investment Research — Why Mineralis Has a Numbers-Guard

On May 18, 2026 at 07:24 UTC, the Mineralis Numbers-Guard tripped on an AI-generated explanation for Newmont Corporation. The AI wanted to write that Newmont holds "134.1 Moz gold" in global P&P reserves. The number was not wrong — but it was not in the input. That is exactly what the guard is built for.

Why AI hallucinations are lethal in mining data

If ChatGPT gets a restaurant recommendation wrong, the consequence is a suboptimal dinner. If ChatGPT gets a mining resource number wrong, the consequence can be a 6-to-8-figure investment loss. Investors build cash-flow models on NI 43-101 resource estimates. A fabricated number propagates through the entire model, through the valuation, through the allocation decision.

The problem is not hypothetical. In internal tests we confronted Claude Opus 4.6, GPT-5.5, and Gemini 2.5 Pro with mining-specific questions: "What are Lundin Gold's P&P reserves?", "What is the AISC at Fruta del Norte?", "What was drill result hole LUG-24-035?". All three models fabricated plausible-sounding numbers in 30-40% of cases — numbers that do not exist in the actual public filings.

Why LLMs hallucinate on mining numbers

The architecture of Large Language Models makes them structurally poor at precise number reproduction. LLMs learn probability distributions over token sequences. A number like "134.1 Moz" is a specific token sequence — and if the model saw similar but different sequences during training (e.g. "134.5 Moz", "132.8 Moz", "134.7 Moz"), it produces the most likely plausible variant at generation time — not necessarily the correct one.

For mining, this is especially risky because:

  • NI 43-101 reports update quarterly — numbers change, training data is often stale
  • Junior Miners have thin web presence — LLMs learn their numbers from few sources and extrapolate with high confidence on that small sample size
  • Mining number conventions (g/t vs oz/t, troy vs metric, Bt vs Mt) cause LLMs to perform unit conversions incorrectly

The Mineralis Numbers-Guard

Our approach: fail-closed pattern. Before every AI explanation, a deterministic guard runs, extracts every number contained in the explanation, and validates it against the source input data structure. If a number does not appear in the input, the explanation is blocked.

  1. First AI generationwith standard prompt: "Explain the sub-score in a paragraph, citations as [^1]."
  2. Numbers-Guard runs. Regex extracts every number from the explanation. Set comparison against input data structure.
  3. Guard pass (no extra numbers found): explanation is accepted, score persisted with citations.
  4. Guard trip (extra numbers found):retry with strict prompt: "IMPORTANT: You fabricated a number. Use ONLY numbers from the input."
  5. Second guard trip: deterministic template fallback using input data only — no AI generation, no possibility of hallucination.

What happened on the Newmont trip

The Newmont Geology input data contains: grade_g_t: 1.05, tonnage_mt: 4060. The quotedSource text, however, reads: "global P&P reserves 134.1 Moz gold across 4.06 Bt". The 134.1 Moz is a derived number (grade × tonnage × recovery factor) — not directly in the input.

Claude Sonnet 4.6 naturally tried to cite the 134.1 Moz in the explanation — it is the intuitive summary. The guard detected: 134.1 is not in{grade_g_t: 1.05, tonnage_mt: 4060, ...}. A retry with the strict prompt produced an explanation that used only the input numbers. Correct. Safe. Audit-trail-capable.

Why this is more than an engineering detail

Investment research tools carry responsibility. If an analyst issues a recommendation based on our data, they must be able to demonstrate where the numbers come from. Numbers-Guard plus clickable source citations makes every number-based statement traceable — from Mineralis score back to NI 43-101 filing page.

Mainstream AI tools cannot deliver this structurally. ChatGPT and Claude provide no guarantee of number accuracy. For restaurant recommendations that is fine. For mining investment research it is disqualifying.

That is the reason Mineralis exists. AI hallucinations are lethal in investment decisions — we do not allow them.

Request beta access.

Mineralis is currently in Private Beta. Family offices, independent analysts, and mining investors are being invited in waves.

Join the beta waitlist →

More from the blog

Back to blog