Spatial Sustainability Hub
Spatial Sustainability Hub

Transparency Report

v1.1 · 2026-06-08

Introduction

The Spatial Sustainability Hub (SSH) produces technical evidence to support EUDR due diligence under Articles 8–11 of Regulation (EU) 2023/1115 — including geolocation checks, post-2020 forest-loss screening, risk indicators, and audit-ready evidence packets — 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.

SSH provides decision-support evidence. The operator or trader placing the product on the EU market remains responsible for the complete due-diligence assessment under Articles 8–11 and for submitting the due-diligence statement in the EU Information System.

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.1 · 2026-06-08

Forest Definition

SSH analyses use the FAO forest definition as codified in EUDR Article 2(6): 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.

The fao preset is the default for all analyses (EUDR Art. 2(6)). The preset used for each analysis job is recorded in the job metadata and surfaced in every per-plot evidence packet.

For the fao and eudr_strict presets, land classified as agricultural use or commodity plantation is excluded from the forest baseline (EUDR Art. 2(13)): pixels where FDP commodity probability maps indicate established crop presence, or where ESA WorldCover classifies the area as Cropland or Built-up, are masked out before the forest baseline is computed. This reduces the risk that mature cocoa, palm, rubber, or coffee plantations are misclassified as forest, while preserving an auditable record of the masks and thresholds used.

Four analysis presets are available. The fao preset is the Article 2(6)-aligned default applied to all standard analyses. 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 may select an alternative preset at submission time.

* Agricultural-use exclusion applies to the fao and eudr_strict presets only — FDP commodity maps (cocoa, palm, coffee, rubber) ∪ WorldCover Cropland/Built-up (EUDR Art. 2(13)).

PresetCanopy thresholdMin patchAgri-exclusionUse case
fao10%0.5 hayes *EUDR Article 2(6) default
hansen_1010%nonenoOpen-canopy commodities
hansen_3030%nonenoDense humid tropical forest
eudr_strict30%0.5 ha + primary forest maskyes *Maximum 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
  • Deforestation verdict (convergence rule): the final deforestation area is the refined union of Hansen GFW tree-cover loss and JRC-TMF post-cutoff transition, both intersected with the FAO forest mask (agricultural-use pixels already excluded). Loss pixels attributed to non-conversion by the causality engine (e.g. wildfire recovery, urban expansion) are subtracted from the union before the compliance verdict is issued. Degradation (JRC-TMF partial canopy loss without full transition) is tracked separately and does not affect eudr_compliant. Accuracy is validated through an independent per-country confusion-matrix assessment against held-out reference plots — not solely by internal reproducibility hashing.
  • 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.12026-06-08EUDR-faithful methodology: FAO-by-default, agricultural-use exclusion, Hansen ∪ JRC-TMF convergence verdict, per-country accuracy assessment.
  • ·Forest definition: fao preset is now the explicit default for all analyses (EUDR Art. 2(6)); documented in job metadata as methodology_version
  • ·Agricultural-use exclusion: fao and eudr_strict presets exclude FDP commodity maps ∪ WorldCover cropland/built from the forest baseline (EUDR Art. 2(13)), distinguishing forest from mature cocoa/palm/rubber/coffee plantations
  • ·Deforestation verdict: refined-union convergence rule — Hansen GFW ∪ JRC-TMF post-cutoff transition, intersected with the FAO forest mask, with causality-engine non-conversion pixels subtracted; degradation tracked separately
  • ·At-cutoff baseline: forest baseline computed at the 31 December 2020 reference date (not at analysis time)
  • ·Accuracy validation: independent per-country confusion-matrix assessment against held-out reference plots (not solely internal reproducibility hashing)
  • ·Output: every result now carries methodology_version (e.g. "eudr-faithful/2026-Q3") surfaced in the per-plot evidence packet
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