This page is the reference behind the Market Intelligence dashboard: where each number comes from, how it is checked, and where it is less certain.
The product has two halves. A crop map — a 10 m deep-learning mask — finds the crop and measures its area. In-season crop condition reads how the crop is doing from daily weather and satellite signals. Where a reliable yield record exists, the two combine into a supply forecast (yield × area). Where it doesn't, as for tree crops, the condition read stands alone as a stress signal. Six steps, the same method for every commodity.
Treefera fuses ten classes of heterogeneous signals — satellite imagery, gridded weather, training data, official statistics and customer intelligence. Each is normalised, time-aligned and assimilated with explicit treatment of bias and uncertainty, then feeds the product's two halves: the crop map — a deep land-cover classifier that finds and measures the crop — and in-season crop condition — a Bayesian model that reads how the crop is doing and, where a yield record exists, turns it into a yield forecast.
Every forecast begins at a single administrative unit tracked through the season - a county for US grains, a district or municipality for tree crops. But a region isn't a field: towns, other crops, pasture and water make up most of any region. A deep land-cover model identifies the pixels that are actually the crop, at 10 m resolution, from optical and radar imagery - radar (SAR) reads through cloud, and deep learning separates tree crops hidden under shade canopy that pixel classifiers miss.
Every reading that follows is taken only from these pixels. The same mask also measures planted area on current-year imagery - official area surveys can lag close to a year before they publish.
Over the masked crop pixels we read the ground continuously. Reanalysis weather (ERA5-derived, 0.25° gridded, daily) gives extreme heat, frost, precipitation deficit and vapour-pressure deficit; optical satellite (10 m, roughly every 5 days) gives vegetation health through NDVI-class indices.
Each signal is tracked against its own record: this season's coloured line, the spread of prior years behind it as a 10th–90th percentile band, and the long-run mean. That is how we know whether today is normal - and by how much. No signal is read in isolation from its history.
A hot week during flowering costs far more than a hot week early in the season. Each signal carries a phenological weight profile - a continuous curve across the season that says how much a stress on any given day actually matters to final yield. This is PhenoWeight, the link between weather and yield.
The profiles differ by crop and by signal: heat peaks at pollination, frost matters at sensitive stages, drought bites through grain fill or pod development. The dashboard shows this as a stage timeline in calendar dates with a marker for where the season is now - so a shock can be read against how much it matters today, not just whether it happened. This stage-weighting is why the model registers damaging stress weeks before it shows up in official reports.
Where reliable yield history exists, we set a region baseline - what this ground yields in a normal year - from its yield history, the steady lift from technology and genetics, and local management practices. That baseline is the model's prior; we adjust from it using this season's masked, stage-weighted signals. The adjustment is agronomically consistent: heat at pollination pulls yield down, a healthy canopy lifts it - the model moves the baseline only in ways the crop's biology allows. Official reports enter as biased observations, weighted by their track record.
The stress inputs are not a black box: each component counts events past crop-specific thresholds - degree-days above the heat limit, nights below frost, rainfall deficit against requirement - weighted by the stage profile and combined over the mask. And confidence is a calibrated spread, not a label: the forecast interval is read against the no-information spread - climatology. A posterior much tighter than climatology is high confidence, and the band tightens as the season progresses - in the 2020 US corn season the 95% band narrowed from 8.8 to 6.3 bu/ac.
Where no reliable yield record exists, we don't fake a number. The same machinery tracks a weather-stress percentile versus climatology over the production area instead - the worked example below shows how that reads for India sugar.
We run that exact pipeline for every region the mask shows the crop - each with its own mask, its own weighted signals, its own anchored forecast. Signals roll up by area-harvested weighting, yields by production-weighted average, production by summing. The same method covers grains across thousands of US counties and tree crops across hundreds of districts - Brazil coffee alone spans 5,570 municipalities.
A per-area yield is only half the supply story. The same mask that selected the signal also measured the area - so yield times area gives production, the supply number markets price on. Area is both current and forecast forward, with confidence intervals; detecting it on current-year imagery is itself an edge over surveys and reference layers that can be a year stale.
The edge is measured, not asserted. Every forecast is judged only against data it never saw - held to the benchmark the market already watches (USDA WASDE for US crops, the official boards and surveys elsewhere) and tested walk-forward, out of sample. By late July 2022 the model read 174.8 bu/ac for US corn - 0.07 off the realized 174.9 - while WASDE still sat at 177; WASDE closed the gap about two months later. Area is cross-checked against independent references such as MapBiomas and scored on held-out field sites. The datasets went live on the API in June 2026; the live track record is short, and backtests are labelled as backtests.
An earlier, sharper read on supply is an earlier read on price. There are two ways desks use it, and they run on different clocks:
It is not a release-cadence product: the numbers do not try to move with the market week to week. The cadence is fixed:
| Component | Updates | Notes |
|---|---|---|
| Futures | ~1 min | front-month, live feed on the dashboard |
| Weather & signals | daily | reanalysis + satellite over the mask |
| Model outputs | weekly | initialised Monday (data as of Monday) · released via API Wednesday after QA · history back-dated to the same cadence |
India has no reliable historical yield series for sugarcane, so we don't publish a yield number. The product is a standing-area map plus a cane-area-weighted weekly stress score against climatology.
The stress read splits by water source: irrigated Uttar Pradesh shrugs off heat that rainfed states cannot - the same weather scores differently over different ground. An imperfect model, stated as such, is still the only weekly in-season read available.
ReasonFlooding pooled in the Krong Ana river valley, roughly 600 m below the 500–1,500 m coffee belt. No overlap with the highland arabica and robusta.
Market reaction+4.5%. Traders reacted to TikTok and social-media flood footage.
Treefera signalNo impact on supply. The footprint is intact and the inundation is confined to the lowland valley — no sourcing action required.
The mask from step 1 is what made this call checkable: intersect the flood polygons with the classified coffee area and the exposure reads out in hectares, not headlines.
Mask, observe, weight, model, scale, check. The method is fixed; the commodity is the mask you point it at. The product ships as an API - versioned, back-dated, weekly - and the dashboard you saw is the internal surface built on top of it.