World Bank D591 · Alliance Bioversity International & CIAT
The first populated tables — CSV + JSON for all of T0–T7, sourced from the NbS stocktake. The template every subsequent NbS recipe follows. Per-NbS tables under recipes/<nbs_id>/; cross-NbS tables (T1, T2, T5, T7) merged at the schema root. Structure-conformant; row content in progress.
| Table | Purpose | Key field | Owner | Location |
|---|---|---|---|---|
| T0 NbS Registry | Master record per NbS; economic archetype; evidence quality | nbs_id | Pete (oversight) · Namita (content) | recipes/<nbs_id>/ |
| T1 Data Registry | Dataset catalog — access routes, citations, limitations | dataset_id | Brayden · Namita · Benson | schema root |
| T2 Climate Risk Formulation | Risk variables, hazard/exposure formula, double-count guard | variable_id · dataset_id→T1 | Brayden · Namita (lit) | schema root |
| T3 NbS × Hazard × Farming | Qualitative mitigation-potential matrix | record_id · nbs_id→T0 | Brayden · Namita (lit) | recipes/<nbs_id>/ |
| T4 Suitability Mappings | Response functions, scenario flags, context overrides | mapping_id · nbs_id→T0, dataset_id→T1 | Pete · Namita (Task H) | recipes/<nbs_id>/ |
| T5 Opportunity Space Vars | TTL-facing priority layers | variable_id · dataset_id→T1 | Pete · Benson | schema root |
| T6 NbS Scorecard | Likert effects + economic profile per NbS | record_id · nbs_id→T0, variable_id→T5 | Namita · MFL | recipes/<nbs_id>/ |
| T7 Geographic Context | AEZ / farming-system / admin context definitions | context_id · dataset_id→T1 | Benson · Brayden | schema root |
green = primary key · brown = foreign key · tables carrying an nbs_id live in the recipe folder; cross-NbS tables live at the schema root. Adding an NbS = a new recipe folder + appended rows. No schema or code changes required.
v0.2 adds an evidence & configuration layer upstream of T0–T7 — Source Register · Evidence Register · Variable Ontology · Subpractice/Suitability-Family registry, now materialised under schema/registers/ — feeding T2/T3/T4/T5/T6 with full provenance via evidence_ids. v0.2.1 adds the BIND registry: context-aware variable→dataset resolution (a global default, overridable per country/AEZ; a requires_upload status flags better local data for the user to supply) — so a global recipe is refined for an AOI without forking it. T4 keys to suitability_family_id; canonical variable names + units live once in the Variable Ontology. v0.3.0 (June 2026): T5 ratified — mcda_role (priority | descriptor), 16 rows (12 priorities + 4 descriptors) across 5 themes (climate_hazard · nbs_response · people_production · equity_inclusion · context), including iplc_lands bound to LandMark via BIND; T7 farming_system swapped to 6 EO-derived classes (Dixon as crosswalk); T6 generalised with cost-effectiveness denominators; M2b two-stream (asset hazard + operational levers). The agroforestry F1 chain has 18 of 23 papers swept (81 EV rows, 18 SRC rows). See the field-level spec.
All joins run on three keys — nbs_id (T0), dataset_id (T1), variable_id (T5) — with the evidence layer adding variable→Ontology, suitability_family_id→Family registry and evidence_ids→Evidence Register. The validator checks every foreign key on load and fails loudly on a broken link rather than producing a silent gap. T2 (risk to livelihoods) and T4 (suitability) are parallel arms; the double_count_risk flag in T2 prevents a variable being counted in both the risk index and the opportunity space. With two recipes merged and deduplicated, the shared root tables hold 21 datasets (T1), 11 risk variables (T2), 14 opportunity-space variables (T5) and 15 geographic contexts (T7) — one source of truth across NbS.