Grow Calculations

How to Calculate Yield, Light, and Climate Loads for Indoor Farms

The five core calculations every greenhouse and indoor grower runs, worked out with real units and numbers you can copy.

Start with Daily Light Integral, the input that sets yield potential. DLI in mol per square meter per day equals PPFD in micromoles per square meter per second times photoperiod in hours times 3600, divided by 1,000,000. Run a canopy at 400 micromoles for a 16 hour photoperiod: 400 times 16 times 3600 is 23,040,000, divided by one million gives 23.0 mol per square meter per day. Leafy greens want 12 to 17, fruiting tomatoes want 22 to 30. Measure PPFD with a quantum sensor held at canopy height in a 3 by 3 grid, then average the nine readings before you plug in.

Convert that lighting plan into energy with the Grow Light Energy Cost method. Monthly kWh per fixture equals rated watts times photoperiod hours times operating days, divided by 1000. A 645 watt LED bar at 16 hours across 30 days draws 645 times 16 times 30 divided by 1000, or 309.6 kWh per fixture per month. For a room of 120 fixtures that is 37,152 kWh. Multiply by your blended rate, say 0.11 dollars per kWh, for 4,087 dollars monthly. Add driver losses of 8 to 12 percent if you rate at the wall instead of the diode.

Yield per Square Foot ties biology back to floor space. The formula is total saleable weight divided by production area, then annualized by cycles per year. Suppose a rack tier grows 4 butterhead heads per square foot at 0.4 pounds each, so 1.6 pounds per square foot per cycle. At 11 cycles per year that tier returns 17.6 pounds per square foot annually. Count only saleable weight after trim, not gross biomass. For stacked systems multiply by tier count: five tiers at 17.6 gives 88 pounds per square foot of building footprint each year.

Climate Control Load tells you how much cooling to size. Lighting is usually the largest term because nearly all fixture wattage becomes heat. Convert watts to sensible heat at 3.412 BTU per hour per watt: 120 fixtures times 645 watts times 3.412 equals 264,088 BTU per hour, roughly 22 tons of cooling from lights alone. Add envelope gain U times A times delta T, plus dehumidification latent load from transpiration. A tomato canopy transpires 3 to 5 liters per square meter per day, and each liter removed costs about 2,257 kilojoules, so latent load often rivals the sensible figure.

Nutrient Mix Consumption comes from target EC and daily uptake. Stock injection ratio sets dilution: a 1:100 injector means one part concentrate to 100 parts water. If plants draw 2.5 liters each per day and you run 8,000 plants, feed volume is 20,000 liters daily. At a 1:100 ratio you consume 200 liters of stock concentrate per day. Track EC drift with a meter: hold nutrient EC near 2.4 mS per cm for fruiting crops, and if runoff EC climbs above 3.5 you are underfeeding water and salts are accumulating in the root zone.

Water Use per Crop closes the loop on irrigation planning. Applied water equals crop water demand divided by irrigation efficiency, where demand is reference evapotranspiration times a crop coefficient. If ET0 is 5 millimeters per day and greenhouse cucumber Kc peaks near 1.1, demand is 5.5 millimeters per day, or 5.5 liters per square meter. Across 2,000 square meters that is 11,000 liters daily. Divide by drip efficiency of 0.90 and you must deliver 12,222 liters. Meter actual flow, because clogged emitters routinely drop delivered volume 15 to 20 percent below the setpoint.

Chain these together before committing capital. Set DLI from the crop, size fixtures and read kWh from the Grow Light Energy Cost calculator, then feed that wattage into Climate Control Load so cooling tonnage matches heat gain. Use Yield per Square Foot to confirm the space pays back, and let Crop Cycle Planning fix how many turns per year multiply that yield. Keep units consistent: micromoles for light, mol per day for DLI, liters for water and nutrient, BTU per hour or tons for load. One misaligned unit, like watts read as kilowatts, throws every downstream number off by a factor of 1000.

Published 2026-07-02.