Reproducibility Manifest

Environment lockfile, model version hashes, Docker build instructions, and the full dependency graph for deterministic CE runs.

CE v3.7.0 Python 3.12.3 linux/amd64 Built 2026-01-10
Deterministic Guarantee

CE scenarios are deterministically reproducible given: (1) same CE version tag, (2) same random seed (CE_SEED), (3) same input parameter snapshot. Floating-point results are bitwise identical on the same hardware architecture. Cross-architecture variations bounded at <0.001% of output values.

Known Non-Determinism
  • OpenAI API responses (AI Analyst module) — not part of core scenario outputs
  • External data fetches (IEA, NGFS live endpoints) — use cached snapshots for reproducibility
  • System clock in timestamp fields — does not affect numerical outputs

Environment Manifest

Requirements file: requirements.txt Required env vars: SECRET_KEY Optional env vars: CE_SEED OPENAI_API_KEY CE_DATA_DIR
PackageVersionSHA-256 (prefix)
flask 3.0.3 sha256:3b6e8c1d2a4f9e0b7c5d3a6f8e2b4d1c
numpy 1.26.4 sha256:a4bcd9e2f1c7d3b8a6e4c2d9f5b1e7a3
scipy 1.12.0 sha256:f8e21d4c9b6a3e7f2d5c8b1a4e9d6c2
pandas 2.2.1 sha256:9c3a7b5d1f8e4c2b6a9d3f7e1c5b8a4
matplotlib 3.8.3 sha256:d2f91e4b7c5a3d8f1e6b2c9a5d3f7e1
scikit-learn 1.4.1.post1 sha256:7b4c2d9f5e1a8c3b6d2f9e5c1a7b4d8
jinja2 3.1.3 sha256:e5891f4c2b7d9a3e6f1c8b5d2a9f3e6
requests 2.31.0 sha256:58cd2c7b4e1a9f3d6b8c5a2d7f4e9c1
pydantic 2.6.3 sha256:1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6
openai 1.13.3 sha256:4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9
gunicorn 21.2.0 sha256:b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7
werkzeug 3.0.1 sha256:c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8

Model Version Hashes

IDModelVersionFileSHA-256
MDL-001 ClimateModelService 1.4.0 ce/services/climate.py a3f9b2c1d4e5f6a7b8c9d0e1f2a3b4c5
MDL-002 EconomicModelService 2.1.0 ce/services/economics.py b7d1e4f2a5c8b3d6e9f2a5c8b1d4e7f0
MDL-003 DamageModelService 1.2.0 ce/services/damage.py c9a8d5e2f1b4c7d0e3f6a9d2e5f8a1b4
MDL-004 FiscalModelService 1.1.0 ce/services/fiscal.py d2b6f3a9e4c1d8f5a2b9c6e3d0f7a4b1
MDL-005 MonteCarloEngine 2.0.1 ce/services/monte_carlo.py e4c7g8b1d5f2a9e6c3d0f7a4b1e8c5d2
MDL-006 CatastropheModel 1.0.0 ce/services/catastrophe_model.py f1d3h9c4e7b2d5f8a3c6d9e2f5a8c1d4
MDL-007 DSGEModel 0.3.0 ce/services/dsge_model.py g5e2i7d0f3a6e9d2f5a8b1c4d7e0f3a6
MDL-008 FinancialStressService 1.1.0 ce/services/financial_stress.py h8f4j2e5a9c2d5e8f1a4b7c0d3e6f9a2
MDL-009 GapAccountingEngine 1.3.0 ce/services/emissions.py i2g7k5f8b3d6e9a2c5d8f1a4b7c0d3e6
MDL-010 AdaptationService 1.0.0 ce/services/adaptation.py j6h1l8g3e6f9a2b5c8d1e4f7a0b3c6d9

Docker Quickstart

Image: ghcr.io/ce-platform/ce:3.7.0 based on python:3.12.3-slim

1
Pull the CE image
docker pull ghcr.io/ce-platform/ce:3.7.0
2
Run with a deterministic seed
docker run --rm -e SECRET_KEY=audit-key -e CE_SEED=42 -p 5000:5000 ghcr.io/ce-platform/ce:3.7.0
3
Replay a specific scenario
docker run --rm ghcr.io/ce-platform/ce:3.7.0 python -m ce.replay --scenario SCN-001 --seed 42
4
Export full audit bundle as JSON
docker run --rm ghcr.io/ce-platform/ce:3.7.0 curl http://localhost:5000/api/audit-export > audit.json
5
Run full validation suite
docker run --rm ghcr.io/ce-platform/ce:3.7.0 python -m pytest tests/ -q

Local Setup

1
Clone repo
git clone https://github.com/ce-platform/ce && cd ce
2
Create virtual environment
python -m venv .venv && source .venv/bin/activate  # Windows: .venv\Scripts\activate
3
Install locked dependencies
pip install -r requirements.txt
4
Set required environment variables
export SECRET_KEY=dev-key  # Windows: $env:SECRET_KEY='dev-key'
5
Start the server
flask --app ce.app:create_app run --port 5000
6
Run test suite
python -m pytest tests/ -q
7
Replay a scenario deterministically
python -m ce.replay --scenario SCN-002 --seed 42 --mode deterministic

Model Dependency Graph

External Sources
IPCC AR6
NGFS Phase IV
IEA NZE
calibrates / benchmarks
Core Engine (Tier 0)
MonteCarlo
samples
Tier 1 — Climate
ClimateModel
temperature→damage / emissions→budget
Tier 2 — Economic / Emissions
EconomicModel
DamageModel
GapAccounting
damage→fiscal / budget→econ
Tier 3 — Policy / Finance / Catastrophe
FiscalModel
CatastropheModel
DSGEModel
FinancialStress
Adaptation

Bottleneck Nodes

MDL-001 (fan-out 3) — ClimateModel failure propagates to DamageModel, GapAccounting, and CatastropheModel
MDL-003 (fan-out 3) — DamageModel failure propagates to FiscalModel, CatastropheModel, and AdaptationService

Critical Paths

MDL-001 MDL-003 MDL-004 MDL-008
Climate → Damage → Fiscal → Financial stress
MDL-001 MDL-009 MDL-002 MDL-007
Climate → Budget → Economic → DSGE
FromRelationshipTo
EXT-001 calibrates MDL-001
EXT-002 benchmarks MDL-001
EXT-003 calibrates MDL-009
MDL-001 temperature→damage MDL-003
MDL-001 emissions→budget MDL-009
MDL-002 GDP→fiscal MDL-004
MDL-002 macro→DSGE MDL-007
MDL-003 damage→fiscal MDL-004
MDL-003 damage→catastrophe MDL-006
MDL-003 damage→adaptation MDL-010
MDL-004 fiscal→financial MDL-008
MDL-005 samples MDL-001
MDL-005 samples MDL-002
MDL-005 samples MDL-003
MDL-009 budget→econ MDL-002

Archive Policy

Scenario snapshots archived indefinitely. Model versions tagged in git. Registry data versioned in ce/services/audit/.