Fish-to-plant ratio
Does your fish stocking match your grow bed area? Nitrogen supply vs nitrogen demand.
Or enter rough totals instead (used when rosters are empty)
Skip the species pickers and enter totals directly. Useful for back-of-envelope sizing before picking specific fish or crops.
Override fish + plant defaults (optional)
Defaults pull from species data when you use the rosters. Override these if you know your specific conditions differ.
What this does
Enter fish biomass, grow bed area by crop type, and the calc reports whether the nitrogen the fish produce roughly matches what the plants demand. The "fish and plant specifics" section lets you tune for diet (carnivorous fish eat more protein), life stage (juveniles eat 2-3x what mature fish do), water temperature (cold water cuts feed rate roughly in half), and plant maturity (seedlings draw a fifth of mature-canopy demand).
The math
Fish produce nitrogen through excretion and uneaten feed. Daily feed is roughly 1.5% of fish body weight for a mixed-stage system at warm temperatures. Juveniles eat ~3%; mature fish ~1.2%; cold-water fish about half the warm-water rate. Feed nitrogen content depends on protein: carnivorous-fish feed runs ~9% N, omnivorous feed ~7%, herbivorous feed ~5.5%.
Plants consume nitrogen at category-specific rates. Per square meter of mature canopy:
- Leafy greens (lettuce, kale): 1.5 g N/day
- Herbs (basil, mint): 1.0 g N/day
- Fruiting crops (tomato, pepper): 3.0 g N/day
- Root crops (radish, beet): 2.0 g N/day
Seedlings draw about 20% of these rates, vegetative-stage plants about 60%. A bed planted with fresh transplants is effectively N-light for several weeks, which is why aquaponics systems are easy to start (slow plant uptake gives the biofilter time to mature).
Balanced means supply matches demand within reason (1.0 to 1.5x demand). Below 1.0, plants starve. Above 1.5, nitrate builds up in the water.
What this calc doesn't yet do
These limitations are real and matter for fine-tuning:
The calc operates at the category level for plants (leafy/herbs/fruiting/roots), not species level. Watercress draws roughly twice the nitrogen of lettuce per square meter, but the calc treats them both as generic leafy greens. The garden planner has per-species data; integrating it into this calc is the next step.
The fish side uses three coarse buckets (diet, life stage, water temp) rather than specific species. Different fish within the same bucket have meaningful variation: an oscar excretes more per gram than a bluegill even though both are carnivorous, and tilapia at growing-out weight differs from tilapia at harvest. Per-species fish data exists in the stocking calculator; the same integration plan applies.
Aquaponics-specific concerns like potassium and calcium deficiency aren't covered. Fish waste is N-rich and K-poor; even a perfectly N-balanced system will run K-deficient for fruiting crops without supplementation. The nutrient mix calculator covers the K supplementation side; this one focuses on N balance only.
Day-night cycles aren't modeled. Plants stop taking up nitrogen at night while fish keep excreting, so ammonia spikes overnight in dense systems. The calc averages over 24 hours.
Cross-references
For initial system sizing from a target tank volume, use the system sizing calculator. It uses the same feed-rate and feed-to-bed ratios this calc does, so the numbers are consistent.
For nutrient mixing when fish waste isn't enough (typically K supplementation), use the nutrient mix calculator.
For per-crop compatibility and growing system selection, use the garden planner.