Spatial Sustainability Hub
Spatial Sustainability Hub

Transparency Report

v1.0 · 2026-05-28

Introduction

The Spatial Sustainability Hub (SSH) produces EUDR Article 29 due diligence evidence for agricultural commodity supply chains. Every analysis queries a curated set of satellite and remote-sensing datasets to determine whether forest cover was lost within a supplied plot boundary after 31 December 2020 — the cutoff date established by the EU Deforestation Regulation.

This document describes the exact methodology, datasets, output fields, and known limitations used in every analysis. It is intended for operators, auditors, regulators, suppliers, and the general public. The methodology is version-controlled: every change is documented in the Version History section below and takes effect only after a deliberate, reviewed code deployment.

Cite this methodology:v1.0 · 2026-05-28

Forest Definition

SSH analyses use the FAO forest definition as codified in EUDR Article 2(4): land spanning more than 0.5 hectares, with trees capable of reaching more than 5 metres in height, and a tree canopy cover greater than 10%. The reference date is 31 December 2020 — land that was forest on that date is subject to the Regulation.

This definition is the default (fao preset) for all standard analyses. The preset used for each analysis job is recorded in the job metadata.

Four analysis presets are available. The fao preset is the Article 2(4)-aligned default. The hansen_30 preset applies a 30% canopy threshold appropriate for analyses focused on closed-canopy humid tropical forest where open-canopy ecosystem conversion is not the primary risk. Operators select their preset at submission time.

PresetCanopy thresholdMin patchUse case
fao10%0.5 haEUDR Article 2(4) default
hansen_1010%noneOpen-canopy commodities
hansen_3030%noneDense humid tropical forest
eudr_strict30%0.5 ha + primary forest maskMaximum rigour

Datasets

SSH queries 14 datasets. Datasets marked context are shadow signals — they are computed in parallel but do not influence the compliance verdict or appear in sensors_run.

DatasetProviderMeasuresCoverageLicense
Hansen Global Forest WatchUniversity of Maryland / GoogleAnnual tree cover loss 2001–20232000–2023, annualCC-BY 4.0
JRC Tropical Moist ForestsEuropean Commission JRCAnnual deforestation and degradation in tropical moist forest 1990–20231990–2023, annualCC-BY 4.0
SBTN Natural Lands Map v1.1contextWRI / Science Based Targets Network (SBTN)Global natural lands classification at 2020 baseline2020 baseline (static)CC-BY-SA 4.0
DeDuCE Commodity AttributioncontextTrase / Chalmers UniversityCountry-level deforestation attributed to traded commodities2001–2022, annualCC-BY 4.0
Forest Data Partnership — CocoacontextFDP ConsortiumCocoa suitability probability 2020 and 20232020, 2023 snapshotsCC-BY 4.0
Forest Data Partnership — CoffeecontextFDP ConsortiumCoffee suitability probability 2020 and 20232020, 2023 snapshotsCC-BY 4.0
Forest Data Partnership — Palm OilcontextFDP ConsortiumOil palm suitability probability 2020 and 20232020, 2023 snapshotsCC-BY 4.0
Forest Data Partnership — RubbercontextFDP ConsortiumRubber suitability probability 2020 and 20232020, 2023 snapshotsCC-BY 4.0
JAXA Forest/Non-ForestcontextJAXAAnnual forest/non-forest classification from PALSAR-2 SAR 2015–20202015–2020, annualFree for research use
ESA WorldCovercontextESAGlobal land cover at 10 m resolution, 2020 and 20212020, 2021CC-BY 4.0
GEDI Canopy HeightcontextNASAGlobal canopy height from spaceborne lidar 2019–20232019–2023Public domain (NASA)
MapBiomas AlertMapBiomas CoalitionNear-real-time deforestation alerts in Brazil and other Latin American countries2019–present, monthlyCC-BY 4.0
PRODES DeforestationINPEAnnual primary forest deforestation in the Brazilian Amazon1988–present, annualPublic domain (Brazilian federal government)
KLHK Peatland MapIndonesia Ministry of Environment and Forestry (KLHK)National peatland extent and depth classification2019 baseline (static)Public domain (Indonesian government)

Extended table including GEE asset IDs, spatial resolution, DOIs, and known coverage gaps:

DatasetProviderMeasuresCoverageLicenseResolutionGEE AssetDOIKnown Gaps
Hansen Global Forest WatchUniversity of Maryland / GoogleAnnual tree cover loss 2001–20232000–2023, annualCC-BY 4.030 mUMD/hansen/global_forest_change_2023_v1_1110.1126/science.1244693Detection lag up to 18 months in persistently cloud-covered regions (Congo Basin, insular SE Asia). Detects tree cover loss only — does not capture open-canopy ecosystem conversion (cerrado, chaco, savanna).
JRC Tropical Moist ForestsEuropean Commission JRCAnnual deforestation and degradation in tropical moist forest 1990–20231990–2023, annualCC-BY 4.030 mprojects/JRC/TMF/v1_2023/AnnualChanges10.1016/j.scitotenv.2021.145901Known cloud shadow artefacts in equatorial Africa. Tropical moist forest biome only — does not cover dry forest, savanna, or peatland.
SBTN Natural Lands Map v1.1contextWRI / Science Based Targets Network (SBTN)Global natural lands classification at 2020 baseline2020 baseline (static)CC-BY-SA 4.030 mprojects/wri-datalab/assets/sbtn-natural-lands-map/v1-1/naturalLandsMap_v1_1_202010.46830/writn.23.00120Static 2020 baseline only — does not detect post-2020 changes. Best used as context signal for non-forest natural ecosystems (cerrado, chaco, wetlands).
DeDuCE Commodity AttributioncontextTrase / Chalmers UniversityCountry-level deforestation attributed to traded commodities2001–2022, annualCC-BY 4.0National (country-level)10.5281/zenodo.10674962Country-level signal only — does not measure deforestation on any specific plot. Attribution derived from national trade statistics.
Forest Data Partnership — CocoacontextFDP ConsortiumCocoa suitability probability 2020 and 20232020, 2023 snapshotsCC-BY 4.010 mprojects/forestdatapartnership/assets/cocoa/cocoa_2020Probability score only — threshold interpretation is operator-defined.
Forest Data Partnership — CoffeecontextFDP ConsortiumCoffee suitability probability 2020 and 20232020, 2023 snapshotsCC-BY 4.010 mprojects/forestdatapartnership/assets/coffee/coffee_2020Probability score only — threshold interpretation is operator-defined.
Forest Data Partnership — Palm OilcontextFDP ConsortiumOil palm suitability probability 2020 and 20232020, 2023 snapshotsCC-BY 4.010 mprojects/forestdatapartnership/assets/palm/palm_2020Probability score only — threshold interpretation is operator-defined.
Forest Data Partnership — RubbercontextFDP ConsortiumRubber suitability probability 2020 and 20232020, 2023 snapshotsCC-BY 4.010 mprojects/forestdatapartnership/assets/rubber/rubber_2020Probability score only — threshold interpretation is operator-defined.
JAXA Forest/Non-ForestcontextJAXAAnnual forest/non-forest classification from PALSAR-2 SAR 2015–20202015–2020, annualFree for research use25 mJAXA/ALOS/PALSAR/ANNUAL/FNF4SAR-based — captures structure, not spectral reflectance. May over-classify dense shrublands as forest.
ESA WorldCovercontextESAGlobal land cover at 10 m resolution, 2020 and 20212020, 2021CC-BY 4.010 mESA/WorldCover/v20010.5281/zenodo.5571936Two snapshots only (2020, 2021) — not a time series.
GEDI Canopy HeightcontextNASAGlobal canopy height from spaceborne lidar 2019–20232019–2023Public domain (NASA)1 km (resampled from 25 m footprints)LARSE/GEDI/GEDI02_A_002_MONTHLYSparse sampling outside equatorial band (±52° latitude). Footprint gaps filled by spatial interpolation.
MapBiomas AlertMapBiomas CoalitionNear-real-time deforestation alerts in Brazil and other Latin American countries2019–present, monthlyCC-BY 4.030 mprojects/mapbiomas-public/assets/alerts/v2024Coverage limited to Latin America (Brazil, Bolivia, Colombia, Peru, others).
PRODES DeforestationINPEAnnual primary forest deforestation in the Brazilian Amazon1988–present, annualPublic domain (Brazilian federal government)30 mprojects/mapbiomas-public/assets/brazil/prodesBrazil Amazon biome only. Annual update cycle — intra-year events captured by MapBiomas Alert.
KLHK Peatland MapIndonesia Ministry of Environment and Forestry (KLHK)National peatland extent and depth classification2019 baseline (static)Public domain (Indonesian government)250 mIndonesia only. Static baseline — does not capture drainage or degradation after 2019.

Analysis Methodology

  1. Plot geometry ingested (GeoJSON or GeoPackage)
  2. Tile pack fetched from pre-built COG cache, or built on-demand from Google Earth Engine
  3. Each active sensor queried: was forest cover lost within the plot boundary after 31 December 2020?
  4. Commodity strategy applied: per-commodity sensor selection and weighting
  5. Multi-sensor agreement calculated across all sensors that ran
  6. Compliance verdict issued: eudr_compliant = true if no post-cutoff loss is detected above the de minimis threshold across all active verdict sensors
  • De minimis threshold: default 0.0 ha (strict). Any detected loss triggers a non-compliant verdict.
  • Sentinel value handling: pixels returning −1 from GEE (out-of-coverage mask) are mapped to null and excluded from the aggregation.
  • Soft-fail behaviour: if a dataset is temporarily unavailable, analysis continues on remaining sensors; the unavailable dataset is excluded from sensors_run.
  • Shadow fields: computed in parallel but never influence the verdict or appear in sensors_run.
  • Job idempotency: submitting the same geometry + commodity + cutoff date returns the cached result.

Output Fields Glossary

Every analysis returns a DeforestationResult object. The six verdict fields below determine compliance status:

eudr_compliantboolean
True if no post-cutoff deforestation was detected above the de minimis threshold across all active verdict sensors.
deforestation_hafloat | null
Estimated area of forest loss within the plot boundary since 31 December 2020, in hectares.
deforestation_pctfloat | null
Forest loss as a percentage of the total plot area.
multi_sensor_agreementboolean | null
True when all active verdict sensors are unanimous (all detect loss, or all detect none). False when sensors disagree. null when fewer than 2 sensors ran.
causalitystring | null
Primary cause of detected deforestation, where classifiable.
sensors_runstring[]
List of the dataset identifiers that were queried and returned a valid result for this plot.
dra_signalboolean
Deforestation Risk Alert — true when the plot triggers a confirmed risk alert (triple sensor consensus, protected-area overlap, or mining/galamsey encumbrance). Directly informs the compliance verdict.

Shadow context signals — computed for every job but excluded from the compliance verdict and from sensors_run:

sbtn_natural_land_2020float | nullcontext signal
Mean fraction of the plot classified as natural land in the SBTN Natural Lands Map v1.1 (2020 baseline).
Range: 0.0–1.0, or null if out of coverage
Context signal only — not used in eudr_compliant or sensors_run. Useful for identifying plots that overlap with non-forest natural ecosystems (cerrado, wetlands, shrubland) where Hansen GFW tree-cover-loss detection is less relevant. Sentinel value −1 from GEE is mapped to null.
deuce_attribution_hafloat | nullcontext signal
Hectares of deforestation attributed to this commodity in this country in the most recent available year, according to the DeDuCE dataset.
Range: ≥ 0.0, or null if country/commodity not covered
Country-level signal derived from national trade statistics. Does NOT measure deforestation on the specific plot — it is a national context indicator. Commodity normalisation: palm_oil → palm, cattle_beef → cattle. Source: Trase / Chalmers University, doi:10.5281/zenodo.10674962.
deuce_attribution_yearint | nullcontext signal
Calendar year of the DeDuCE attribution figure in deuce_attribution_ha.
Range: 2001–2022, or null
Always paired with deuce_attribution_ha. null when deuce_attribution_ha is null.
fdp_cocoa_prob_2020float | nullcontext signal
Mean cocoa suitability probability for the plot at the 2020 snapshot (Forest Data Partnership).
Range: 0.0–1.0, or null
Context signal. High probability indicates the plot is climatically and geographically suitable for cocoa cultivation. Does not confirm cocoa is being grown.
fdp_cocoa_prob_2023float | nullcontext signal
Mean cocoa suitability probability for the plot at the 2023 snapshot.
Range: 0.0–1.0, or null
Paired with fdp_cocoa_prob_2020. Difference between 2020 and 2023 indicates suitability change.
fdp_coffee_prob_2020float | nullcontext signal
Mean coffee suitability probability for the plot at the 2020 snapshot.
Range: 0.0–1.0, or null
Context signal only — not used in compliance verdict.
fdp_coffee_prob_2023float | nullcontext signal
Mean coffee suitability probability for the plot at the 2023 snapshot.
Range: 0.0–1.0, or null
Context signal only — not used in compliance verdict.
fdp_palm_prob_2020float | nullcontext signal
Mean oil palm suitability probability for the plot at the 2020 snapshot.
Range: 0.0–1.0, or null
Context signal only — not used in compliance verdict.
fdp_palm_prob_2023float | nullcontext signal
Mean oil palm suitability probability for the plot at the 2023 snapshot.
Range: 0.0–1.0, or null
Context signal only — not used in compliance verdict.
fdp_rubber_prob_2020float | nullcontext signal
Mean rubber suitability probability for the plot at the 2020 snapshot.
Range: 0.0–1.0, or null
Context signal only — not used in compliance verdict.
fdp_rubber_prob_2023float | nullcontext signal
Mean rubber suitability probability for the plot at the 2023 snapshot.
Range: 0.0–1.0, or null
Context signal only — not used in compliance verdict.
fdp_declared_cropstring | nullcontext signal
The commodity declared by the operator at job submission, as used to select the FDP probability layers.
Range: cocoa | coffee | palm_oil | rubber | null
Stored for audit trail purposes. Determines which fdp_*_prob_* pair is populated; other commodity pairs will be null.
carbon_co2e_loss_mgfloat | nullcontext signal
Estimated CO₂-equivalent carbon stock lost within the plot boundary, in megagrams (tonnes).
Range: ≥ 0.0, or null
Derived from above-ground biomass density (Spawn et al. 2020) intersected with detected forest loss area. Context signal — not used in compliance verdict. Uncertainty ±20–40% typical.
jaxa_fnf_2020float | nullcontext signal
Mean JAXA PALSAR-2 Forest/Non-Forest classification score for the plot at the 2020 epoch.
Range: 0.0–1.0, or null
SAR-derived forest classification. Context signal for dense humid tropical forest presence. Sentinel −1 mapped to null.
esa_worldcover_classstring | nullcontext signal
Modal ESA WorldCover land cover class within the plot at the 2020 snapshot.
Range: Tree cover | Shrubland | Grassland | Cropland | Built-up | Bare / sparse vegetation | Snow and ice | Permanent water bodies | Herbaceous wetland | Mangroves | Moss and lichen | null
Modal class across all 10 m pixels within the plot. Context signal — not used in compliance verdict.
gedi_canopy_height_mfloat | nullcontext signal
Mean GEDI canopy height within the plot, in metres.
Range: 0.0–70.0, or null
Useful for verifying FAO 5 m minimum tree height criterion. Sparse GEDI sampling outside ±52° latitude means null is common at higher latitudes. Context signal only.

Limitations

  • ·Cloud lag: satellite-based detection has a lag of up to 18 months in persistently cloud-covered regions (parts of the Congo Basin, insular SE Asia). Recent loss events may not yet be visible in the data.
  • ·Sub-0.5 ha plots: plots smaller than 0.5 ha are below the FAO forest patch minimum. Results are provided but should be interpreted with caution.
  • ·DeDuCE scope: deuce_attribution_ha and deuce_attribution_year are country-level signals derived from national trade statistics. They do not measure deforestation on the specific plot.
  • ·Cerrado and chaco: conversion of open-canopy natural ecosystems (cerrado, chaco, savanna) is captured primarily by the SBTN Natural Lands Map and MapBiomas, not by Hansen GFW, which detects tree cover loss only.
  • ·SE Asia peatland: peatland loss is captured by KLHK for Indonesia only. No equivalent national dataset is currently available for Malaysia or Papua New Guinea.
  • ·JRC TMF artefacts: known cloud shadow artefacts in equatorial Africa may produce spurious degradation signals in a small fraction of plots.
  • ·No forward-looking model: all analysis is retrospective against the 31 December 2020 cutoff. No predictive deforestation model is currently active.

Version History

v1.02026-05-28Initial publication of SSH methodology and dataset registry.
  • ·Forest definition: FAO/EUDR Article 2(4) definition documented; four analysis presets described
  • ·Datasets: 14 datasets registered (Hansen GFW, JRC TMF, SBTN, DeDuCE, FDP ×4, JAXA, ESA, GEDI, MapBiomas, PRODES, KLHK)
  • ·Output fields: all DeforestationResult fields documented including shadow context signals
  • ·Limitations: cloud lag, sub-0.5 ha plots, DeDuCE country-level scope, cerrado/chaco coverage gaps