Treefera

Signal Model • Ingest, Model, Deliver

The Treefera Data Fabric

The Treefera Data Framework describes how we generate signals at Treefera. Three stages, Ingest, Model and Deliver, describe the broad principles of writing signals to the CDS, transforming those signals via models, and then delivering those signals to various channels. Every stage talks only through the CDS.

write read signal packet
write read write read CDS shared store · conventions Ingest raw → canonical levels 0 – 1 Model crop map · crop condition reads Lₙ · writes Lₙ₊₁ Deliver catalogue · dashboard any level · any channel research / testing CSV app report stream L1

signal level

L0

Ingest. Raw provider data lands.

The ladder · 0 to 6

L0raw ingestnative
L1canonicalSI
L2areal aggregationSI
L3weighted indicesSI
L4stressz
L5risk · area · map0–1·ha
L6productionmixed
stage 1 / 8

Signal Specification

What are we trying to solve

Decomposed signals: customers have asked for the intermediate signals, the indices, stress and risk, and decomposing them gives explainability, why a number moved, not just the headline yield. One interface: a single way to deliver any signal, and one fabric that MI, RI and EI all read from, so they stop being separate stacks. Extensibility: adding a signal, a commodity or a client is a known move, and harmonising the underlying data so that aligning area and yield numbers is managed once, not re-solved each time.

The levels · 0 to 6

Ingest at 0 and 1. From 2 on, each rise in level is due to a model transforming input signals to output signals. Fitted or expert-driven, same contract.

Level0
Ingest raw signals
Provider data lands untouched. For satellite (Sentinel-2, Sentinel-1, MODIS) the raw signal is the ESA and NASA L2A product; we go no earlier.
repostwx_forecast_ingest · tmp_ecmwf_forecasts · tf_environmental_factors_preparation
units native
Level1
Canonical CDS format
The same data harmonised to the CF convention. This is the downstream contract.
repostf-data-ml-utils
units SI
Level2
Areal aggregation
Aggregate the canonical signals from grid to the geo_identifier areas used everywhere downstream.
repostf-data-ml-utils
units SI
Level3
Phenological Weighted Indices & Crop Area Weighted Indices
Two weightings on the indices: temporal weights from PhenoWeight, the standalone crop-calendar timing library, and spatial weights from crop-specificity, focusing each index on where the crop actually grows.
repostf-data-ml-utils
units SI
Level4
StressSTRESS · z-score
A composite index. It combines the level 3 indices onto one z-score scale of standardised anomalies.
repostf-data-ml-utils
units z-score
Level5
AgRisk, Areas and Crop Map outputsRISK · 0 to 1
Risk is stress put through a damage function, scaled 0 to 1 MI RI. Planted, harvested and abandoned area · crop map.
repostf-data-ml-utils · model-foundry · treefera-market-insights
units 0 to 1 · ha
RI
Level6
Production and Crop Condition outputs
yield · production, which is yield times area · crop condition MI   Treefera Risk Score RI
reposmodel-foundry · treefera-market-insights
units mixed
The table · one row per signal and statistic

signals( level, initialization_date, valid_time, geo_identifier, commodity, variable, unit, statistic, value )   geo_identifier is Treefera canonical, units are SI. Every statistic (mean, lower_95 … upper_95) is its own row, so any signal at any level is served the same way.

lvlinitialization_datevalid_timegeo_identifiercommodityvariableunitstatisticvalue
42026-07-0731/12/2026ADM0:USA/ADM1:IowaCORNfrost_stressz-scoremean0.18
42026-07-0731/12/2026ADM0:USA/ADM1:IowaCORNag_stressz-scoremean0.41
52026-07-0731/12/2026ADM0:USA/ADM1:IowaCORNarea_harvestedhamean340 000
62026-07-0731/12/2026ADM0:USACORNyieldkg_halower_9511 246
62026-07-0731/12/2026ADM0:USACORNyieldkg_hamean11 545
62026-07-0731/12/2026ADM0:USACORNyieldkg_haupper_9511 845
62026-07-0731/12/2026ADM0:USACORNproductionkgmean3.90e11