Recipe
Macronutrients
Micronutrients
Make‑up water what the stock is dosed into
Fresh water composition
Drain composition (no drain analysis imported yet)
Values in mmol/L (µmol/L for micros). Blend = fresh × (1 − drain share) + drain × share. HCO₃⁻ is neutralised to the residual with the chosen acid.
Recipe summary
Fit with current salt bank solver result vs target
Checks
Stock tanks
Masses are for one full IBC at the factor above. Everything is dissolved in the tank with the stirrer running; no pre‑dissolving. Solubility limits are at 20 °C; the temperature field only tightens the warning margin.
Stock solution checks
Adjust a tank by hand stock A/B and acid to reach a target EC and pH
Stock A and B are dosed in equal volumes, using the recipe loaded on the Recipe tab (its EC per litre of stock sets the dose). Acid follows the carbonate equilibrium (logarithmic: HCO₃⁻ falls tenfold per pH unit, so acid = HCO₃⁻ × (1 − 10pH target − pH now)) plus the phosphate buffer (HPO₄²⁻ → H₂PO₄⁻, pKₐ 7.2) taken from the same analysis. Organic matter and CO₂ degassing are not modelled: add in two or three steps and measure in between.
Add to the tank
What the stock dose brings change in the tank, mmol/L
Salt bank composition as delivered · % by mass of the element
Primary products — solved first
Edit a cell and press Save bank. Composition is % by mass of the product, also for liquids. Solubility is g of product per litre of water at 20 °C and drives the saturation checks. Unit = the package you buy (kg for solids, L for liquids); €/unit gives the cost line and the mixing sheet counts packages.
Import a Normec result PDF certificate (with history attachment) or Excel export
Values are read in the browser and stored as mmol/L; the file itself is not uploaded anywhere.
Sampling report
Feed is compared with the recipe loaded on the Recipe tab.
Trend feed and drain over time
History
Click a row to open its sampling report. Change a sample’s type with the selector in its row. The newest drain and fresh samples feed the make‑up water profile on the Recipe tab automatically.
Check thresholds shared with the team
Ratios
Acids as delivered
Display personal, kept in this browser
Data
On the hosted page, data lives with the artifact and is shared with everyone who can open it. Opened as a plain HTML file, the tool runs stand‑alone and keeps everything in this browser. Nothing here deletes other people’s work except the recipe Delete button, which asks first.
How the numbers are made
Solver. Weighted non‑negative least squares on the enabled salts (relative error per element, so 2 % off on Mo weighs as much as 2 % off on K). Primary salts are solved first; secondary salts only fill remaining deficits. A dose you type in the Fit table is locked and removed from the solve.
EC. Sonneveld & Voogt: EC ≈ 0.095 × Σ cations (meq/L) + 0.19, the rule the WUR calculator uses. Typically within ±8 % of a meter at 25 °C.
Ion balance. Cations K⁺, Ca²⁺, Mg²⁺, NH₄⁺, Na⁺ vs anions NO₃⁻, H₂PO₄⁻, SO₄²⁻, Cl⁻, HCO₃⁻ in meq/L. Any mix of neutral salts is neutral, so an unbalanced target can never be hit exactly.
Saturation. Per salt against its solubility; per tank against concentration‑based solubility products derived the same way as in the WUR calculator (Ksp = s² or 4s³).
Units. mmol/L is the house unit. ppm element is mg/L of N, P, K, S… (labels, literature). Normec reports the ion instead: 1 mmol/L nitrate = 14.0 ppm N = 62.0 ppm NO₃⁻; phosphate ×3.07, sulphate ×3.0. The analysis import converts ions to mmol/L automatically.