From open-source metric libraries that power the next wave of tooling, to market intelligence that cuts through the noise, making BNG legible for everyone who works with it.
BNG became mandatory in February 2024. The policy framework is settled. What's missing is the digital layer: the tools that make the system actually work for practitioners, developers, and the market.
We're a small, focused team building that layer. Open infrastructure where openness helps. Paid products where we need to sustain the work.
We move carefully, talk to practitioners before building, and don't ship things that won't hold up in real organisations.
Whether you're building on @abitat/bng, want early access to intel, have feedback, or just want to talk BNG. We'd love to hear from you.
[email protected]abitat intel
The statutory register is a starting point. intel is what comes next: a living, linked view of every registered BNG site across England.
BNG site register
Comprehensive, up-to-date data on all registered sites: habitat types, unit allocations, LPAs, NCAs and planning applications.
Everything is linked
Follow any data point from habitat to planning application and see what the register never shows you.
See the bigger picture
Benchmark LPA performance, track where demand outstrips supply, and spot market opportunity before it closes.
A fully open-source implementation of the DEFRA statutory biodiversity metric calculation tool, compatible with the official spreadsheet format and usable anywhere JavaScript runs.
Mirrors the official metric exactly
Tested against real, submitted metric spreadsheets to guarantee calculation accuracy.
Works everywhere
One library for server, browser, and serverless environments.
Exportable
We maintain interoperability with the spreadsheet format, so official submissions always involve the spreadsheet.
$ npm add @abitat/bng
import {
parseFile,
headlineResults,
tradingSummaries
} from '@abitat/bng';
const rows = parseFile('./metric.xlsm');
const trading = tradingSummaries(rows);
const results = headlineResults(
rows, trading
);
// { onSiteUnits: 142.4,
// offSiteUnits: 0,
// netGain: 12.3% }
console.log(results);