Crop recipes
The standard nutrient solutions and root-zone target values of "Nutrient Solutions for Greenhouse Crops" (Van der Lugt et al. 2020, version 4), per crop and growing system, with the adjustments the booklet gives per crop stage. A recipe is a total composition for the drip solution; the calculator subtracts what the water brings.
Water
The starting water is one source or a mix — bore water, rain from the basin, drain going round again — each with its own analysis and its share of the mix. Import the lab report as PDF, open a saved source, or type the analysis in mmol/L as the lab reports it (N, P and S as the element). Ions you did not measure can stay at 0.
Import lab reports
Water composition
How much of the starting water comes from each source. The shares must add up to 100 %.
Drain helpers: how much drain can go in?
With the other sources kept in their ratio: the largest drain share that keeps sodium or chloride under the cap, and the share that brings the start water to the EC. Needs a source of kind "drain".
Fertilisers on the shelf
Tick what you can dose. Every salt is defined by its formula, so its nutrient content is derived, not typed in. All ticked products are dosed together by least squares — no product is "first".
Your fertilisers
Products as they are on your pallet, by the label: calcium nitrate 15.5-0-0 + 26.5 CaO with its 1.1 % ammonium, a liquid with its density. Tick the ones to dose; they are solved together with the salts below and land in the tanks by the same rule. Pick a common one from the list and rename it, or add your own from the bag.
New fertiliser
Salts
Acids
Acids sit in the same solve as the salts: their nitrate or phosphate counts towards the recipe, and total acid is pinned to the bicarbonate demand.
Micronutrients
µmol/L in the drip solution. A crop recipe sets them; each element is one product and one division. What the water already carries is entered per source above and subtracted.
| Element | Target (µmol/L) | Product |
|---|---|---|
| Fe | ||
| Mn | ||
| Zn | ||
| B | ||
| Cu | ||
| Mo |
Stock tanks
The doses are divided over tanks A and B — calcium never with sulphate or phosphate, potassium nitrate split to level the two — and each salt is read against its solubility at the tank temperature.
Target recipe
What the drip solution should contain in total — the water's own contribution is subtracted before anything is dosed.
Your own target concentrations, on the same row as a crop recipe: macro elements in mmol/L, micronutrients in µmol/L. The EC is the glasshouse rule of thumb for these numbers; the pH is the target below.
| Macro elements — mmol/L | dS/m · pH | Micronutrients — µmol/L | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| NO₃⁻ | NH₄⁺ | P | K⁺ | Ca²⁺ | Mg²⁺ | SO₄²⁻ | Cl⁻ | Si | EC | pH | Fe | Mn | Zn | B | Cu | Mo | ||
| Your targets | – | – | ||||||||||||||||
| Macro elements — mmol/L | dS/m · pH | Micronutrients — µmol/L | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| NO₃⁻ | NH₄⁺ | P | K⁺ | Ca²⁺ | Mg²⁺ | SO₄²⁻ | Cl⁻ | Si | EC | pH | Fe | Mn | Zn | B | Cu | Mo | ||
| Booklet | ||||||||||||||||||
| Your adjustment | ||||||||||||||||||
| Target | ||||||||||||||||||
Saved setups
Water, recipe, pH and products together, named — "Tomato, section 3, well water". Shared with your company; doses are recomputed when you open one.
How the water has moved
Where the numbers come from
Nothing here is read from a fertiliser table. A salt is its molecular formula; its nutrient content follows from IUPAC atomic weights. Recipes are the standard solutions of "Nutrient Solutions for Greenhouse Crops" (Van der Lugt et al. 2020, on the Dutch Bemestingsadviesbasis), or you type your own.
EC is computed from the ions themselves (Kohlrausch's law with Davies activity coefficients, the model PHREEQC uses) — within 0.3 % of measured values for a single salt and about ±10 % on a mixed nutrient solution. The glasshouse rule of thumb, 0.095 × Σ cations + 0.19, is shown alongside as a cross-check.
Acid demand uses carbonate speciation at the target pH; phosphoric acid is credited with the 1.02–1.17 protons it actually donates at fertigation pH rather than a whole number. Doses are found for all products at once by non-negative least squares, so the compromise a limited set of salts forces is spread across the recipe instead of landing entirely on whatever is dosed last.
For the diluted drip solution, the saturation index of calcite, gypsum and brushite (the calcium phosphate that forms first in a dosing line) is computed the way PHREEQC does — Davies activities against published solubility products. A 1:100 stock tank sits at 3 mol/L, six times past where any activity model holds, so the tanks are handled by rule — calcium never with sulphate or phosphate, potassium nitrate split to level the tanks — and each salt is read against its CRC solubility at the tank temperature.
A lab report is read by position, not by its text: pdfplumber gives every word with its coordinates, the header row of ion symbols defines the columns, and each value belongs to the column it sits under — the only reading that survives a PDF whose text layer comes out in drawing order. Values below the detection limit are filled in as 0 and marked; Si, Al and K/Ca are read and shown but never filled in; a lab's EC-corrected history rows are kept but flagged, never mistaken for a measurement. Water sources mix conservatively — each ion by share — except the carbonate system, where total inorganic carbon and alkalinity are what a closed mix conserves, so the pH of a blend is solved from those, not averaged: a pH 8.2 bore diluted with unbuffered pH 6 rain stays at 8.2.
Treat the output as a starting recipe: confirm EC and pH of the drip solution with a calibrated meter, and dissolve a new stock recipe once in a bucket before filling a tank. Solubility limits are per litre of water and ignore common ions; the warning from 70 % is the margin for that.