CO₂ Storage Screening Dashboard
A transparent, engineering-oriented decision-support tool for the preliminary screening of geological CO₂ storage sites. It implements a four-component, fully explainable scoring framework derived from published engineering standards (ISO 27914, IPCC SRCCS, NETL Best Practices).
Scoring Framework
Each candidate site is scored on three engineering components and then penalised by the quality of the underlying data. Containment is weighted highest because, in CCS, leakage risk dominates project viability.
Pore volume, effective thickness, and saturation efficiency aggregated from sparse early-stage data.
Permeability, net-to-gross, and pressure-rate behaviour bounded by published engineering ranges.
Seal integrity, structural setting, and induced-seismicity proxies — weighted highest for risk.
Score is multiplicatively penalised when key inputs are missing or low-quality, so weak data never masquerades as a strong site.
Hard-Stop Criteria
Any of the following disqualifies a candidate regardless of its composite score — the tool never reports a high-scoring site that violates a physical or regulatory threshold.
| Parameter | Threshold | Rationale |
|---|---|---|
| Depth | < 800 m | CO₂ supercritical threshold (IPCC SRCCS) |
| Porosity | < 3% | Below practical storage threshold |
| Permeability | < 0.5 mD | Injection becomes impractical |
| Fault proximity | < 200 m | Containment / induced-seismicity risk |
Highlights
Capacity (30%), Injectivity (30%), Containment (40%), with a multiplicative Data-Confidence penalty.
Disqualifying thresholds override the composite score regardless of other strengths.
Every emitted number maps to a YAML config file — no hard-coded engineering values anywhere in the codebase.
Monte Carlo propagation of input uncertainty plus first-order (tornado) sensitivity analysis on every candidate.
Streamlit dashboard for exploration, FastAPI REST API for integration, and a Python API for scripting.
Tests for determinism, monotonicity, immutability, and hard-stop correctness — CI with ruff and mypy strict.
Tech Stack
| Layer | Technologies |
|---|---|
| Core | Python 3.12+, Pydantic, PyYAML |
| Scoring | Four-component framework (Capacity, Injectivity, Containment, Confidence) with hard-stops |
| Uncertainty | Monte Carlo propagation, first-order tornado sensitivity |
| Interfaces | Streamlit dashboard, FastAPI REST API, Python API |
| Reporting | JSON, Excel, PDF outputs of ranked portfolios |
| Quality | pytest, ruff, mypy --strict, GitHub Actions CI |
| License | MIT |
Companion projects: LWRA — Legacy Well Risk Assessment and Geothermal Suitability Screening — Po Plain.
View source code, documentation, and configs on GitHub
MIT licensed. Scoring weights and thresholds derived from ISO 27914, IPCC SRCCS, and NETL Best Practices — all values externalised in YAML.