Carbon portfolio optimization
We buy the cheapest mix of carbon credits that still delivers 100,000 tonnes CO₂e under correlated project failures, within a $1,000,000 budget.
The universe is 4,355 projects from the Berkeley Voluntary Registry Offsets Database. Prices and ratings are the organiser’s synthetic inputs. Failure probabilities follow the brief: AAA 1% through CCC 35%, unrated 15%, with a 1.5× penalty after a recorded reversal and 50% recovery when a buffer pool exists. Purchases cannot exceed a project’s available tonnes.
A linear program minimizes acquisition cost and leaves unused budget unspent. Risk appetite sets how much spending sits in low, medium, and high rating bands. Concentration caps limit any single project, country, sector, developer, or registry, both across the portfolio and inside each band. Failures are not independent: a Gaussian factor model ties projects that share a country, developer, registry, sector, or project type.
Delivery is protected with a lower-tail constraint. On 1,024 training scenarios, the average of the worst 5% of outcomes must be at least 112,000 tonnes — a 12% cushion chosen on separate validation scenarios. Reported performance uses 10,000 fresh test scenarios. If no allocation meets every constraint, the solver reports infeasible and does not relax the rules.
The Streamlit app takes a risk appetite and a budget, then shows cost, modelled success, geographic and sector allocation, failure paths, a comparison with simpler portfolios, and CSV/JSON downloads. The notebook contains the same methodology.
Simulations are scenario tests under stated assumptions, not historical backtests. Ratings are imperfect evidence, and a feasible allocation does not guarantee future carbon delivery.
Log in or sign up for Devpost to join the conversation.