Full algorithmic transparency

How our calculators
actually work

Every coefficient, multiplier, and formula driving PlantSolve's 15 plant care calculators — documented from the source. Not a black box. Not "powered by AI." Real horticultural logic, openly shown.

Calculator index

15 calculators, one shared standard

All PlantSolve calculators operate in metric internally and convert to US customary units at output. Temperature is always converted to Celsius before any formula runs. VPD (Vapour Pressure Deficit) underpins the three highest-use calculators. Below is every calculator with its slug, followed by its full documented logic.

Shared physics layer

The VPD engine

Vapour Pressure Deficit is the difference between the amount of moisture air could hold at a given temperature and how much it actually holds. It governs transpiration rate — which directly controls how fast a plant uses water. Three calculators (Watering, Humidity, Heat Stress) use VPD as their atmospheric adjustment layer.

VPD calculation (Buck equation approximation)

// Saturation vapour pressure at temperature T (kPa) satVP(T) = 0.6108 × exp( (17.27 × T) / (T + 237.3) ) // VPD (kPa) = saturation pressure × moisture deficit fraction VPD(T, RH) = satVP(T) × ( 1RH / 100 )
Reference baseline: VPD at 24°C, 55% RH = ~0.99 kPa. This is the "comfortable transpiration" baseline. The Watering calculator expresses all interval adjustments as a ratio of current VPD to this reference, so higher VPD (drier air) shortens watering intervals proportionally.

Calculator 01

Watering Frequency

Try the Watering Frequency Calculator →

Computes a recommended watering interval in days using six multiplicative coefficients applied to a species base interval. VPD drives the atmospheric adjustment dynamically — this is not a lookup table.

Core formula

days = plantBase × (refVPD / currentVPD) × plantMult × potMult × sizeMult × soilMult × exposureMult // refVPD = vpd(24°C, 55%) ≈ 0.99 kPa | minimum currentVPD clamped to 0.08 // Output clamped: ferns → min 1.2 days; all others → min 1 day; max 45 days

Plant base intervals (days) + plant multipliers

CategoryBase (days)MultiplierRationale
Foliage tropical71.00Baseline — Pothos, Monstera, Philodendron
Succulent / cactus211.30High water storage; base interval 3× foliage
Fern40.75No drought buffer; minimum clamped to 1.2 days
Flowering50.85Active bloom increases uptake demand
Vegetable3.50.70High-demand, fast-cycling crops

Pot material multipliers

MaterialMultiplierWhat this means
Terracotta0.72Porous walls lose ~28% more moisture than plastic
Plastic / nursery1.00Baseline — no lateral moisture loss
Glazed ceramic1.12Impermeable walls retain slightly more moisture
Self-watering1.28Reservoir system extends effective interval ~28%

Pot size multipliers

SizeMultiplier
Small (<12 cm)0.65
Medium (12–22 cm)1.00
Large (>22 cm)1.55

Soil type multipliers

SoilMultiplier
Sandy / fast-drain0.58
Standard mix1.00
Moisture-retaining1.45

Exposure multipliers

The exposureMult inverts intuition slightly: outdoor exposure has the lowest multiplier because outdoor plants receive natural rainfall and humidity which the calculator does not account for — so it conservatively shortens the interval.

LocationMultiplierRationale
Indoor1.35Controlled environment; no rainfall. AC/heat amplify drying.
Balcony / patio0.90Ambient humidity partially offsets pot drying
Outdoor garden0.70Ground moisture, dew, and rainfall reduce watering need

Calculator 02

Humidity

Try the Humidity Calculator →

Compares current room RH against species-appropriate target ranges, computes VPD to express whether transpiration is in a comfortable band, and assesses airflow risk for fungal issues.

Plant typeTarget RH rangeRationale
Tropical foliage50 – 70%Replicates tropical forest understorey humidity
Fern60 – 80%Ferns evolved in persistently moist, shaded habitats
Succulent / cactus25 – 45%Arid origin; excess humidity encourages rot
Orchid50 – 75%Epiphytic roots need both moisture and airflow
Flowering40 – 60%Moderate humidity supports bloom without botrytis risk
VPD output thresholds: Above 2.0 kPa = "Dry-air stress likely." Below 0.4 kPa = "Air may be too stagnant or humid." 0.4–2.0 kPa = "Comfortable transpiration range." Airflow input triggers a fungal risk note when RH > 65% in still air.

Calculator 03

Heat Stress Diagnosis

Try the Heat Stress Diagnosis Calculator →

A composite scoring model — not a single formula. Points are accumulated from four independent inputs, then clamped to a 0–100 scale with three severity tiers.

Stress score accumulation

score += temperature points score += humidity points score += direct sun hours points score += symptom timing points score += VPD bonus (if VPD > 3 kPa: +8) score = clamp(round(score), 0, 100) // Special case: symptom = "all_day_wet" and score < 40 → score forced to 40

Temperature score points

TemperaturePoints
≥ 42°C (107°F)+45
36–41°C (97–106°F)+35
32–35°C (90–95°F)+24
28–31°C (82–88°F)+14
Below 28°C+0

Humidity score points

RHPoints
≤ 25%+24
26–35%+18
36–50%+10
Above 50%+0

Direct sun hours

HoursPoints
≥ 8 hours+20
5–7 hours+12
3–4 hours+6
< 3 hours+0

Symptom timing

PatternPoints
All day, wet soil+26
All day, dry soil+14
Leaf scorch only+20
Midday, recovers+8

Severity tiers

ScoreLevelAction triggered
0 – 39LowMonitor during temperature spikes
40 – 69ModerateFilter afternoon sun; recheck in 48 hours
70 – 100HighMove plant; morning-only watering; add shade + airflow

Calculator 04

Sunlight

Try the Sunlight Calculator →

Produces a 0–100 light score that maps to a light-level label and plant suitability list. Direction sets the base; hours and distance adjust it; obstruction penalises it.

Light score formula

score = direction base score score += min(hours × 5, 35) // max +35 from sunlight hours score -= distanceMetres × 8 // −8 per metre from window score -= obstruction penalty score = clamp(score, 0, 100)

Direction base scores

OrientationBase score
Outdoor / unobstructed95
South-facing80
West-facing75
East-facing65
North-facing35
No window15

Obstruction penalties

ObstructionPenalty
Clear glass−0
Sheer curtain−12
Partially blocked−25
Deep / recessed−40

Score → light level bands

ScoreLight levelExample species
80 – 100Full sun / very brightBougainvillea, herbs, cactus, aloe
60 – 79Bright indirectFicus, Monstera, Peace Lily, Money Plant
35 – 59Medium indirectSnake Plant, Pothos, Lucky Bamboo
0 – 34Low lightSnake Plant, ZZ Plant, low-light Pothos
West-window note: If hours ≥ 5 and direction is west, the calculator adds: "West exposure can scorch thin leaves; use a sheer curtain in summer." This is hardcoded as a conditional advisory, not a score adjustment.

Calculator 05

Houseplant Fertilizer

Try the Houseplant Fertilizer Calculator →

Calculates a dose in ml or grams and a feeding frequency in weeks. Three hard-block conditions override the formula entirely and output "Do not fertilize."

Hard blocks — output "Do not fertilize" when any of these are true: plant species = carnivorous (Venus Fly Trap) · growth stage = dormant · plant health = recovering · temperature > 42°C outdoors.

Dose formula (when no block applies)

raw = baseDose × (potVolumeLitres / 4) × plantDemand × stageMod × healthMult × tempMult(T) × strengthMult dose = max(0.5, round(raw, 1)) // minimum dose: 0.5 ml/g

Base doses by fertilizer type

TypeBase doseActive freq.Slow freq.
Liquid5 ml2 weeks6 weeks
Powder / water-soluble4 g2 weeks6 weeks
Granular8 g8 weeks12 weeks
Organic liquid20 ml2 weeks4 weeks

Temperature dose multiplier — tempMult(T)

Temperature (°C)Multiplier
Below 12°C0.15
12 – 14°C0.30
15 – 32°C1.00
33 – 35°C0.75
36 – 38°C0.50
39 – 42°C0.35
Above 42°C0.00

Plant demand values

SpeciesDemandNPK recommendation (active)
Pothos1.0High-N foliage feed
Monstera1.1High-N foliage feed
Peace Lily0.8Balanced NPK; bloom → High-P support
Snake Plant / Aloe0.25Very dilute balanced feed
Bougainvillea0.9Low-N active; High-P/K bloom
Hibiscus1.2Balanced with micronutrients
Rose1.15High-N early; High-P/K bloom
Venus Fly Trap0Hard-blocked — no fertilizer, ever

Calculator 06

Aquarium Fertilizer Dosage

Try the Aquarium Fertilizer Dosage Calculator →

Based on three established dosing methodologies — Estimative Index (EI), PPS-Pro, and Low-tech. Volume is always in litres internally; US users input in gallons which are converted.

Dose formula

macro = round(tankVolume × strategyBase.macro × densityMult × co2Mult, 1) micro = round(tankVolume × strategyBase.micro × densityMult × co2Mult, 1)
StrategyMacro base (ml/L/week)Schedule
Estimative Index (EI)5/20 = 0.25Alternate macro/micro days; 40–50% weekly water change
PPS-Pro (lean)7/10 = 0.70Small daily doses; keep nutrients lean
Low-tech (no CO₂)2/20 = 0.10Once weekly after water change

Plant density multipliers

DensityMultiplier
Light0.75
Medium1.00
Dense1.25

CO₂ system multipliers

CO₂ sourceMultiplier
None0.65
Liquid / DIY0.85
Pressurised1.15
EI + no pressurised CO₂ warning: The calculator outputs: "EI dosing is high-energy. Without stable CO₂, reduce light intensity and watch for algae." This is a hardcoded conditional advisory.

Calculator 07

Potting Mix

Try the Potting Mix Calculator →

Outputs a 4-component substrate recipe as ratios of total volume. Drainage modifier adjusts the ratios before normalisation to ensure they always sum to 1.0.

Plant typePotting soilPerlite/pumiceOrchid bark
Standard tropical55%20%10%
Aroid30%30%30%
Succulent / cactus25%50%15%
Fern50%15%5%
Flowering45%20%10%

Remaining % = worm castings / compost. Drainage modifier shifts aeration ±10% before renormalisation.

US unit note: Volume input is in quarts for US users. Component volumes are calculated directly in quarts — the code explicitly avoids converting quarts to litres to prevent double-conversion. This is documented as a critical bug fix in the source.

Calculator 08

Repotting

Try the Repotting Calculator →

Accumulative scoring model — not a single formula. Produces a verdict string at three thresholds and recommends next pot size by adding a type-specific increment to current diameter.

Score accumulation + next pot size

score += root status points score += watering speed points score += season points score += species modifier nextPotCm = currentCm + increaseCm // increaseCm: succulent = 3 cm, tree = 8 cm, all others = 5 cm

Root status points

StatusPoints
Root rot visible+45 (forced)
Severely root-bound+60
Roots visible at drainage+30
Normal+0

Season + watering speed

InputPoints
Active growth season+10
Hot / summer−10
Cool / winter−15
Soil dries fast+20
Soil dries slow−15
ScoreVerdict
≥ 55 (or rot present)Repot now or soon
25 – 54Monitor for 4–8 weeks
0 – 24Do not repot yet

Calculator 09

Grow Bag Sizing

Try the Grow Bag Sizing Calculator →

Selects the minimum-viable bag size from a lookup table of 7 standard sizes, then computes wet weight and terrace load. Load thresholds are based on common reinforced concrete balcony safe load guidelines (100–150 kg/m²).

Standard bag sizes used in lookup: 5L (20×18cm), 10L (25×25cm), 15L (30×28cm), 20L (32×35cm), 30L (40×35cm), 50L (50×40cm), 75L (60×45cm). Bags are selected as the smallest where volume ≥ plant minimum AND depth ≥ root depth minimum.
Mix typeDensity (kg/L)
Cocopeat-heavy0.55
Standard potting mix0.70
Garden soil0.85
Load verdictThreshold
Comfortable load< 100 kg/m²
Approaching terrace limit100 – 149 kg/m²
High load — redistribute≥ 150 kg/m²

Calculator 10

Neem Oil Spray

Try the Neem Oil Spray Calculator →

Calculates neem oil and castile soap dose from water volume and infestation level, with sensitivity downscale for delicate plants. Soap dose is always 50% of neem dose by volume.

Dose formula

tspPerL = base rate for infestation level tspPerL *= sensitivity modifier neemTsp = round(tspPerL × volumeL, 2) neemMl = round(neemTsp × 5, 1) soapMl = round(neemMl × 0.5, 1) // soap always 50% of neem volume

Base rates (tsp/L)

Leveltsp/L
Preventative0.5
Mild infestation1.0
Severe infestation2.0

Plant sensitivity modifiers

SensitivityModifier
Normal× 1.0
Sensitive leaves× 0.6
Succulent / cactus× 0.5

Calculator 11

Growth Timeline

Try the Growth Timeline Calculator →

Estimates weeks to a visible growth milestone using four multiplicative modifiers. Output is a range (estimated weeks to estimated weeks × 1.35) to reflect realistic variability.

Timeline formula

weeks = clamp(baseWeeks × stageMult × lightMult × careMult × tempMult, 2, 52) // Output range: weeks to Math.round(weeks × 1.35)

Base weeks by type

Plant typeBase weeks
Foliage8
Succulent14
Flowering10
Vegetable6
Aquatic5

Growth stage multipliers

StageMultiplier
Cutting× 1.40
Rooted cutting× 1.10
Juvenile× 0.80
Mature× 0.60
Temperature multiplier: Below 16°C or above 34°C → × 1.35 (growth slowed). 20–29°C → × 0.90 (optimal range, fastest growth). All other temperatures → × 1.00.

Calculator 12

Sowing Calendar

Try the Sowing Calendar Calculator →

Pure lookup model — no formula. Cross-references crop type (warm/cool season) against 5 USDA Hardiness Zone bands to return primary and secondary planting windows, harvest estimate, and method.

Zone bandWarm crop primary windowCool crop primary window
Zone 3–4 (coldest)Early June (after frost)Early May
Zone 5–6Mid-to-Late MayEarly April
Zone 7–8Mid-AprilMarch
Zone 9–10MarchOctober – November
Zone 11+ (tropical)Year-round (best Nov–Feb)December – January

10 crops covered: Tomato (75 days), Pepper (80), Okra (60), Cucumber (55), Leafy Greens (40), Cilantro (45), Radish (30), Cauliflower (75), Peas (60), Basil (50). Days-to-harvest appear in output.

Calculator 13 — Courtyard Suite

Mulch Calculator

Try the Mulch Calculator Calculator →

Computes bulk mulch volume from area × depth, with a 30% volume reduction for "around plants" coverage mode (representing realistic path exclusions).

Volume formula

volumeL = areaSqm × (depthCm / 100) × 1000 // coverage = "around_plants": volumeL × 0.70 bagsNeeded = ceil(volumeL / 50) // 50 L = standard retail bag size

Calculator 14 — Courtyard Suite

Compost Calculator

Try the Compost Calculator Calculator →

Application depth is set by application rate, then adjusted by a soil-texture factor before volume is calculated. Acknowledges that clay soils need less compost but benefit most from deep incorporation.

Depth and volume formula

depthCm = baseDepth[application] × soilFactor[soilType] volumeL = areaSqm × (depthCm / 100) × 1000 bagsNeeded = ceil(volumeL / 40) // 40 L = standard compost bag

Application base depths

RateBase depth (cm)
Light top-dressing0.5
Standard amendment2.0
Heavy renovation5.0

Soil texture factors

Soil textureFactor
Sandy× 1.4
Loamy× 1.0
Clay× 0.7

Calculator 15 — Courtyard Suite

Soil pH Calculator

Try the Soil pH Calculator Calculator →

Calculates amendment quantity to raise pH (agricultural limestone) or lower pH (elemental sulphur), adjusted for pH difference and soil texture. Based on standard lime-requirement methodology from soil science extension literature.

Amendment formula

kgPer100Sqm = baseKg × abs(targetPHcurrentPH) × textureFactor totalKg = (kgPer100Sqm / 100) × areaSqm // baseKg: raise pH → 2.5 kg/100m²/pH unit | lower pH → 0.45 kg/100m²/pH unit

Soil texture factors

TextureFactor
Sand× 0.70
Loam× 1.00
Clay× 1.60

Materials used

ActionMaterial
Raise pHPulverised (agricultural) limestone
Lower pHElemental sulphur
Hard safety limits built into output: Metric: Do not exceed 250 g/m² sulphur in a single season. US: Do not exceed 5 lb/100 sq ft sulphur. pH changes > 1.5 units trigger a "split into two applications 3 months apart" advisory.