The jar knows which harvest it came from.
Food traceability software assumes a factory. You have a copper pan, a cheese room or a small press. Spravy turns harvests into batches and lots, so a jar traces back to the row it grew in.
Traceability lives in a paper exercise book.
EU food law asks food businesses to know one step back and one step forward. Spravy records that as you work — inputs consumed as lots, outputs minted as lots.
The recipe changed and nobody wrote it down.
Last year's batch had less sugar, and only your memory says so. Recipes here are versioned, and a recipe with production history locks itself — you duplicate it to evolve it.
The batch is done. The stock is a guess.
A finished batch should become sellable stock by itself, with lot codes and expiry dates. Those dates feed the farm-wide alerts, instead of a second spreadsheet.
From harvest lot to labelled jar.
A production batch consumes input lots and mints output lots. A quality check gates completion, so nothing half-finished becomes stock.

From any jar you can walk back to the harvest, hop by hop. And forward from any harvest to every product it became.
In V1, and what comes next.
The honest list. The full detail is on the transformation feature page.
| Capability | |
|---|---|
| Versioned recipes — a recipe with production history is locked, duplicate to evolve it | V1 |
| Production batches with planned, in-progress and completed states | V1 |
| Quality check gate: a batch cannot complete without passing | V1 |
| Batch codes (BATCH-YYYY-NNNNNN) and lot codes (LOT-YYYY-NNNN), every output lot linked to its batch | V1 |
| Stock lots with an append-only movement ledger | V1 |
| Bidirectional traceability: lot → batch → input lots, hop by hop | V1 |
| Expiry dates that feed the farm-wide alerts panel | V1 |
| Label generation with lot codes | 2027 roadmap |
Give every jar a lot number and a history.
Spravy opens end of 2026. The waiting list goes first.