ES
← Back to Portfolio
Mining Analytics July 2026

ProspectMap — Mineral Prospectivity Workbench with a Published Null Result

A mineral-prospectivity workbench that computes a Weights-of-Evidence posterior P(deposit|evidence) live in the browser over stacked geophysical, geochemical and structural layers, and whose real reason to exist is adversarial honesty. On real US Midcontinent MVT Zn-Pb belt data (Lawley et al. 2022, USGS public domain) it publishes a recorded null: the proposed PU-Conformal method loses to 1989-vintage Weights of Evidence, and a trivial distance-to-deposit baseline already ties the best learned model, so most apparent skill is spatial proximity, not learned geology. It makes first-class the two ways prospectivity maps lie: conditional-independence violation and random-CV inflation.

Real data
US Midcontinent MVT Zn-Pb belt (Lawley et al. 2022 CMMI / USGS, public domain); 25,344 cells (144x176, ~5.4 km), 4 real measured geophysical layers + 2 derived proximity layers, REAL-vs-DERIVED provenance tracked per layer
Benchmark (real, honest protocol)
6 models on identical contiguous spatial-block folds with bootstrap 95% CIs: WofE 0.732 | logistic 0.846 | random forest 0.745 | gradient boosting 0.725 | naive MLP 0.783 | PU-Conformal 0.656
Live methods
Weights of Evidence + Agterberg-Cheng omnibus conditional-independence test + IRLS ridge logistic regression + random-vs-spatial CV inflation gap + distance-to-deposit null, all client-side
Not used, on purpose
No AlphaEarth, no foundation-model embeddings (candidate future datasets only); random forest and gradient boosting are offline artifacts, never live; not a JORC / NI 43-101 resource estimate
Synthetic lane
10 synthetic cases (terranes, data-density, and explicit controls) scored separately; synthetic spatial-CV AUC reported as synthetic, never mixed with the real number
Compute
100% in-browser (onnxruntime-web, single global serialization chain to satisfy the single-thread WASM runtime); offline precompute imports the same TS engine, so baked and live numbers match by construction
ProspectMap — Mineral Prospectivity Workbench with a Published Null Result — Architecture
#mining-analytics #mineral-prospectivity #weights-of-evidence #null-result #spatial-cv #conformal #mvt #geoscience #onnx #mining

Business Context

Exploration budgets follow prospectivity maps, so a map that reports inflated skill sends drilling to the wrong ground. ProspectMap's value is not a better target map, it is an honest measurement of how little a regional geophysics stack can localize deposits under fair spatial transfer, quantified against the one baseline that exposes it: distance to a known deposit. On the real MVT belt, six models are scored on identical contiguous spatial-block folds with bootstrap confidence intervals, negative controls are shown collapsing as they must, and the split-conformal band is reported as near-vacuous rather than dressed up. That is what a prospectivity workflow should tell an explorer before committing a drill program.

Strategic Value

ProspectMap is the clearest example in the Faena line of a product whose deliverable is a published null result. On the real US Midcontinent MVT Zn-Pb belt, the committed verdict records ranking_win: false, the proposed PU-Conformal method scores block-CV AUC 0.656 and does not beat classical Weights of Evidence at 0.732; and the trivial distance-to-known-deposit null already reaches AUC 0.783, so most apparent skill is spatial proximity, not learned geology. The negative controls collapse as they must (label permutation drops WofE to 0.506, PU to 0.490; a pure noise layer earns zero lift), and the split-conformal band delivers its coverage guarantee (empirical 0.977 vs nominal 0.90) only by flagging 88% of the belt, an honest near-vacuous set rather than a false-confidence point map. The card leads with that honesty and never quotes the leaky 0.9456 headline. It is a reusable pattern for prospectivity work that refuses to overclaim.

The Challenge

Mineral-prospectivity maps are easy to make and easy to fool yourself with. Two failure modes dominate: stacked evidence layers are physically correlated, so the conditional-independence assumption behind Weights of Evidence is violated and the posterior inflates; and validating a spatial model with random cross-validation lets a fine-grained learner memorize the autocorrelated field, so the AUC looks strong under random folds and collapses under an honest contiguous spatial holdout. A prospectivity tool that does not confront both, and that does not compare itself against the trivial distance-to-known-deposit baseline, will report skill it does not have.

Our Approach

ProspectMap computes a Weights-of-Evidence posterior live in the browser (W+/W-, contrast, studentized contrast, posterior log-odds), with a maximizing-contrast threshold that binarizes continuous layers, and it puts the failure modes on the same footing as the map. It runs the conditional-independence machinery live (pairwise chi-square plus the Agterberg-Cheng omnibus test), a CI-free logistic regression by IRLS with ridge, and a validation suite that contrasts random folds against contiguous spatial-block folds and reports the inflation gap, plus a nearest-deposit distance null. Learned lanes ship as ONNX (a classifier, a geology-OOD autoencoder, and a PU-Conformal model combining nnPU risk with split conformal); random forest and gradient boosting are computed offline only. AlphaEarth and foundation-model embeddings are not used anywhere; they appear only as candidate future datasets. Everything is client-side, static on GitHub Pages, with the offline bake importing the same TypeScript engine the browser runs.

Key Performance Indicators

KPIBaselineResultImpact
The deliverable is a null resultShip a confident target mapCommitted verdict ranking_win: false: PU-Conformal (block-CV AUC 0.656) does not beat 1989 Weights of Evidence (0.732)The proposed method loses, and the repo publishes it
The trivial baseline that ties itAttribute the AUC to learned geologyDistance-to-known-deposit null scores AUC 0.783 - most apparent skill is spatial proximityQuantified against the baseline that exposes it, not hand-waved
Negative controls collapseNo control for spurious skillLabel permutation -> WofE 0.506 / PU 0.490; a pure noise layer earns zero liftThe controls collapse exactly as they must
Coverage without confidenceA tidy point-target mapSplit-conformal coverage 0.977 vs nominal 0.90, achieved only by flagging 88% of the beltReported as an honest near-vacuous set, not false confidence

Architecture

prospectmap pipeline

prospectmap pipeline

A prospectivity workbench that publishes when it loses

ProspectMap is a mineral-prospectivity workbench. It computes a Weights-of-Evidence posterior P(deposit|evidence) live in the browser over stacked geophysical, geochemical and structural layers, and its reason to exist is adversarial honesty: it makes first-class the two ways prospectivity maps lie, and it publishes a recorded null result on real data. Live at prospectmap.fasl-work.com, part of the Faena mining-analytics hub.

No AlphaEarth, no foundation-model embeddings

To be exact about scope: AlphaEarth is not used, anywhere. It appears once, in an attribution file, as a candidate future dataset. There is no embedding, no Earth Engine call, no 64-D feature in the pipeline. Random forest and gradient boosting are computed offline only; they never run live.

The real-data story is a null result

On the US Midcontinent MVT Zn-Pb belt (Lawley et al. 2022, USGS public domain; 25,344 cells, 4 real measured geophysical layers plus 2 derived proximity layers), six models are scored on identical contiguous spatial-block folds with bootstrap confidence intervals:

  • Weights of Evidence 0.732 · logistic regression 0.846 · random forest 0.745 · gradient boosting 0.725 · naive MLP 0.783 · PU-Conformal 0.656

The committed verdict is ranking_win: false: the proposed PU-Conformal method does not beat 1989-vintage Weights of Evidence. And the trivial distance-to-known-deposit null already scores 0.783, so most apparent skill is spatial proximity, not learned geology. This is why the headline 0.9456 that a lenient interleaved-fold protocol produces is never quoted here: it is a protocol artifact, and the honest contiguous-fold number is 0.7834, a dead tie with the proximity baseline.

The controls, and what the conformal band actually does

Negative controls collapse as they must: label permutation drops WofE to 0.506 and PU to 0.490, and a pure noise layer earns zero lift. The split-conformal band delivers its coverage guarantee (empirical 0.977 vs nominal 0.90), but only by flagging 88% of the belt, an honest near-vacuous set that correctly reports that regional geophysics cannot localize MVT under spatial transfer, rather than a false-confidence point map. This is target generation with its uncertainty stated, not a JORC or NI 43-101 resource estimate.

Live demo · Source on GitHub

Technology Stack

TypeScript React Vite ONNX onnxruntime-web PyTorch scikit-learn uPlot KaTeX

In action

A short tour of the live app — the real interface, recorded from the deployed site.

ProspectMap — Mineral Prospectivity Workbench with a Published Null Result in action

Application Screenshots

ProspectMap — Mineral Prospectivity Workbench with a Published Null Result
ProspectMap — Mineral Prospectivity Workbench with a Published Null Result