Open standard · oat-recipe

How we write down a grow.

What this is
One open shape every Open Agriculture Technology grow recipe travels in
The promise
Print it, share it, or run it, same plan everywhere
For
Growers, builders, and the controllers they run

A grow recipe is the plan for a crop: across its life, what each input should be, and how far it can drift before you step in. The hard part was never having a plan: it was writing it down in a form you can print, hand to a friend, feed to a controller, and revisit next season without it turning to mush. oat-recipe is that one shape. It is the sibling of oat-ods: that standard is the data coming back from your sensors; this is the plan going out.

01Why a recipe standard at all.

Grow plans live in a hundred incompatible places: a spreadsheet, a controller's private settings, a notebook, a forum post. None of them travel. You can't hand your spreadsheet to a controller, and you can't hand the controller's settings to a friend. So good plans don't spread, and the day your gear changes, your plan is stranded.

oat-recipe fixes the shape, not the gear. It's the agreement about how a recipe is written down so the same plan can be read by a person, a machine, another grower's setup, or an AI assistant. That is the practical side of Collect, Have, Use: a plan you own, can read, and can actually run.

02One recipe, one shape.

A recipe names the crop, lays out its stages over the weeks of a cycle, and for each input gives a target and the bands around it, week by week. Here's a slice of a lettuce recipe:

{
  "oat_recipe_export": "1.1",
  "bundle": { "slug": "oat-ks-lettuce", "name": "Lettuce", "weeks": 5,
             "license": "CC-BY-4.0" },
  "stages": [ { "label": "Production", "start": 2, "end": 4 } ],
  "charts": {
    "light": {
      "dli_canopy":       { "2": { "target": 14, "unit": "mol/m²/d" } },
      "far_red_fraction": { "2": { "target": 0.08, "unit": "fraction" } }
    },
    "substrate": {
      "soil_water_tension": { "2": { "target": 15, "upper_alert": 50, "unit": "cbar" } }
    }
  }
}

Read it plainly: in week 3 (step 2), aim for 14 mol of light a day, keep the far-red fraction near 0.08, and start the next watering by the time soil tension reaches 15 cbar. Every input in the recipe is written the same way, so once you can read one row, you can read them all.

03Aim, OK range, act-if.

Every cell in a recipe is the same little object: a target, an OK range you'd rather stay inside (the warning band), and an act-if line you should never cross (the alarm band). Any of those can be left blank: a leaf-wetness ceiling has only an upper limit; a dissolved-oxygen floor has only a lower one.

Why it's built this way

Those same four numbers are read three ways with no second copy to drift. A person reads them as aim / OK range / act-if. A controller reads them as setpoint / deadband / alarm trip. A learning loop reads them as the line to hold and the drift that matters. You with a pencil and a greenhouse controller are running the exact same recipe; the only difference is who reads the bands.

04What you can put in a recipe.

The recipe covers the inputs the plant actually lives in, grouped by where they act: light, the aerial climate, the feed, and the root zone. Alongside the everyday ones (daily light, temperature, humidity, the NPK of the feed, root-zone temperature) v0.1 adds the specialist inputs: the signals the next tier of sensing unlocks.

Lighting and equipment brands are deliberately not part of a recipe: it specifies the target, not the fixture. And the format is open at the edges, so a grower (or a future tool) can carry a parameter we haven't named yet, and any well-built reader will simply pass it along.

05One recipe, three forms.

The same recipe comes out three ways, off one source, so they can never disagree:

  • A printed SOP: a stage-by-stage checklist with aim / OK range / act-if and a blank column for what you measured. The zero-hardware floor: a person can run it with a pencil.
  • A portable file (this standard): the export you can save, hand to another grower, or import. It even carries how you planned it (your fixture, your feed), not just the numbers, so the plan is genuinely yours.
  • A controller contract: the machine-faced version a controller, Home Assistant, or SCADA node reads to hold each setpoint and alarm on the bands.

06Yours to keep, easy to read.

The recipe is yours: one click exports the whole plan, the means as well as the ends. The format is published and self-describing, so any tool, a manufacturer's app, a spreadsheet, or an AI assistant, can read it without asking us. The machine-readable definition is the oat-recipe JSON Schema, fetch it, validate against it, and build a reader in minutes. The standard and Open Agriculture Technology's reference recipes are CC BY 4.0: reuse and adapt freely, with attribution. We bet on the source being clean, not on any one app sticking around.

Frequently asked questions.

What is a grow recipe?

A grow recipe is the plan for a crop across its life: stage by stage, what each input such as light, temperature, humidity, feed, and root-zone conditions should be, and the safe range around each target. Written down in a consistent format, it can be printed as a checklist or fed to a controller, so the same plan means the same thing whether a person or a machine follows it.

What is the difference between a setpoint and an alarm in a grow recipe?

A setpoint is the target value you are aiming to hold, such as a temperature or humidity level. An alarm is the limit that should not be crossed, the point where the condition has gone far enough wrong to need attention or action. Many plans also define a warning band between the two: the acceptable range around the setpoint before the alarm limit is reached.

Can I export my grow recipe and use it elsewhere?

Yes, if the recipe is saved in an open, documented format rather than locked inside one program. When it is exported as a standard file that captures how it was planned, not only the target numbers, any tool that reads that format can import it, whether that is another grower's setup, a spreadsheet, or a controller. Open formats are what make a plan portable.

Do grow recipes include far-red and light spectrum?

Yes. A recipe covers light quantity (daily light integral and photoperiod) and light quality, including the far-red fraction and the red-to-far-red ratio, as targets by crop and growth stage. Far-red is the lever that stretches or compacts a plant and influences flowering, so it is a first-class recipe parameter. The recipe specifies the target spectrum, never a particular light brand.