How fast is Brightway, and does it still give the right answer? This repository times everyday LCA calculations across Brightway's releases: an LCI and LCIA, many functional units at once, Monte Carlo. Correctness checks run alongside the timings; the method explains the reference calculations and their coverage limits. A release that slows a calculation or changes a checked score shows up in the history.
The benchmarks run on synthetic databases that copy ecoinvent's degrees, loops and locality, so
anyone can rerun them and the results can be published. They fill more than ecoinvent in a direct
solver, so direct-solver times on them run high
(#54). Two real databases sit
beside them: USEEIO 1.1 (US EPA, public domain) and BAFU 2025 (Swiss Federal Office for the
Environment), downloaded from files.brightway.dev by a pinned SHA-256
when BWBENCH_SIZES=useeio or bafu asks for them. BAFU 2025 is never copied into this repository
or its results.
Every case's history is in the benchmark explorer.
Make your Brightway faster says what to install or call. Four findings for most users:
- The solver sets the time for one score. On an ecoinvent-sized database, UMFPACK on OpenBLAS takes 2.63 s, PyPardiso 10.0 s and SciPy's SuperLU 27.7 s.
- bw2calc 3.0.0 made
IterativeLCAabout 5 times slower with UMFPACK, and about 9 times with SuperLU. 3.1.0 fixed it. - bw2data 4.7 lost a faster database write: an earlier commit had cut its time by 32%.
- bw_timex 1.3.0 made the time-explicit LCI about 19 times slower. 1.3.2 fixed it, and 1.4.0 is faster again.
The Setup page shows a tested starting setup and the latest check and last passing set for each tested environment, including coverage gaps. It gives install commands for uv, pip, conda and pixi, pinned to a dated set. docs/running.md explains the installation files.
You need Docker and just. Brightway's code runs in a throwaway container, never on your machine (assurance case).
just smoke # every package's oldest and latest release, small database
BWBENCH_SIZES=ecoinvent just bench bw2calc # every bw2calc release on the ecoinvent-sized database
just compat 3.13 # today's releases together on Python 3.13- Findings: what the histories show
- Method: what is measured, the synthetic databases, the noise floor
- Calibration experiments: check a profile against the calibration guards over several seeds
- Running: every recipe, the compat columns and the
BWBENCH_*variables - CONTRIBUTING.md: checks, tests and how to sign off commits
- SECURITY.md and the assurance case
- GOVERNANCE.md, ROADMAP.md and CHANGELOG.md
- Code of conduct and license