Open source
Two library stacks, eight packages, installable from PyPI — one for the people who have to evidence an AI system, one for the people who have to measure who a transport network leaves out. Both are libraries rather than hosted products, with no framework lock-in: they compute what the data shows and leave the judgment to you.
Evgraph
For AI governance reviewers and ML engineers
AI governance work is spread across files that do not talk to each other: a Model Card here, an approval ticket there, a registry entry somewhere else. Evgraph reads those artifacts through adapters, builds one immutable Evidence Graph of typed facts, then runs deterministic rules over it.
Findings are explainable rather than pass/fail: each cites the nodes it was drawn from and carries a certainty level — structural, consistency, heuristic, interpretive — that is only ever lowered as reasoning gets less certain, never raised. It reports what the evidence shows; it does not certify regulatory compliance.
- Adapters for Model Card + approval + deployment JSON, dataset manifests, and the MLflow registry
- Reports as JSON, Markdown, SARIF or OSCAL Assessment Results
- A CI promotion gate that is report-only by default; --gate exits non-zero on unmet expectations
- Third-party rule packs register on the evgraph.rules entry point, with no change to core
pip install evgraph evgraph-clievgraph scan model_card.json approval.json deployment.json --format sarifMoveq
For transport researchers, analysts and transport authorities
Turns raw service and demographic data — trips per area, population counts, deprivation ranks — into the standard inequality measures: population-weighted Gini, the Palma ratio, and the Wagstaff concentration index, plus a configurable composite accessibility score.
The core is pure NumPy with no required I/O or GIS dependencies, so it drops into an existing analysis without pulling a stack behind it. For cross-country work, the catalogue registry makes every methodological choice explicit: each measure is declared same, replaced by a national equivalent, or omitted — so omissions are recorded rather than silent.
- Gini, Palma ratio and Wagstaff concentration index, all population-weighted
- Composite scoring that handles missing terms gracefully rather than dropping the row
- A same / replace / omit registry for extending a method to a new country
- CSV-in, numbers-out CLI for quick checks and CI; optional pandas helpers via the frames extra
pip install moveq moveq-climoveq gini areas.csv --population pop --value tripsPackage versions shown here are checked against the PyPI API on every build. If a version drifts, the build fails rather than the page quietly going stale.