DeepLeaf Yield DeepLeaf Yield

How far to trust the forecast

The Accuracy page shows, for each greenhouse, how far past forecasts were from the harvest that followed, and gives each horizon a plain trust level.

The Accuracy page in the app for the demo greenhouse. The This week card reads Rough first, 15.7% mean error over 13 checked weeks, plan with the range, not the number, then weeks checked, mean error in kilograms and per square metre, percent error, bias, inside range 8 of 11, models, and scale. The Next week card follows. The Accuracy page in the app for the demo greenhouse, in the dark theme. The This week card reads Rough first, 15.7% mean error over 13 checked weeks, then the error figures, bias, and inside range.
The Accuracy page at /app/accuracy, with the trust level first on each horizon card.

Where the numbers come from

The report reuses the backtest: every past week's forecast is replayed from what was known that week, then compared with the harvest logged since. Nothing is fitted to the answer. A greenhouse pools the checked weeks of all its crop cycles, so a cycle with ten checked weeks counts five times as much as one with two.

A week counts as checked once it has a harvest above zero. Weeks without a harvest are left out, so a greenhouse with no harvests shows "Not enough weeks yet" and no error figures.

Reading the table

Pick the greenhouse at the top of the page. There is one card for each week ahead, this week through week 8, with the trust level and a one-line reading first and these figures under it:

ColumnMeaning
TrustReliable, Rough, Far off, or Not enough weeks yet. See the thresholds below.
Weeks checkedPast forecasts that now have a harvest to compare with
Mean errorHow many kilograms the forecast missed by on average, either way. In brackets, the same per square metre of the cycle's area, or the row's when the cycle has none.
% errorThe miss as a share of that week's harvest, averaged
BiasThe average signed miss. Plus means the forecast ran high, minus means it ran low. A large bias with a small mean error is a steady offset.
Inside rangeWeeks where the harvest fell between the low and high forecast, out of the weeks that had a range
ModelsHow often each forecast was used: the walk (ripening model), the last harvest, the mean of recent harvests, or the History model
ScaleThe correction the walk forecast applies now, and how many checked weeks it rests on. Across cycles it is weighted by those weeks. "Not set yet" means no walk forecast has been issued.

The chart under each table draws the forecast (dashed) and the harvest (solid) per week for the cycle with the most checked weeks, with the range shaded. "Every week as a table" lists the same weeks as text.

Trust levels

The levels are checked in this order:

LevelWhen
Not enough weeks yetFewer than 4 checked weeks
ReliableAt least 8 checked weeks, mean % error at most 15%, and at least half the ranged weeks inside the range
RoughMean % error at most 30%
Far offMean % error above 30%
  • 4 weeks. The range needs two checked weeks before it appears, and with fewer than four one odd week still moves the mean by a quarter or more.
  • 8 weeks and 15%. Repeating last week's harvest missed by 32 to 49% on a public six-compartment cherry tomato trial. A forecast at half that, held over two months, is one to plan picking crews on.
  • Half inside the range. This week and the next two show plus and minus the mean past miss, so about half the harvests should fall inside. Weeks 4 to 8 show the 10th to 90th percentile, which is wider. Fewer than half inside means the range is too narrow to rely on.
  • 30%. A little better than repeating last week scored on that trial. Above it, the forecast is doing worse than that simple rule.

With "Rough", plan with the range rather than the single number. With "Far off", lean on your own estimate and check the walks and harvest logs of that greenhouse.

Download and API

"Download this report as CSV" saves one line per horizon for the greenhouse, then one per crop cycle and horizon. The same data are on the API:

  • GET /api/organizations/{org}/farms/{farm}/greenhouses/{house}/accuracy: the report, with every checked week per cycle
  • GET …/greenhouses/{house}/accuracy.csv: the CSV
  • GET /api/organizations/{org}/accuracy and accuracy.csv: every greenhouse in the organization, without the week-by-week rows

A greenhouse of another organization reads as not found.