Net Zero Watering
Pricing
from $5.00 / 1,000 irrigation calculations
Net Zero Watering
Apply only the water the plant used. Weather, rain, and plant type in — litres or gallons out.
Pricing
from $5.00 / 1,000 irrigation calculations
Rating
0.0
(0)
Developer
Josh Berry
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
a day ago
Last modified
Categories
Share
What does Net Zero Watering do?
Net Zero Watering tells you the exact volume to apply so you replace what the plant used — not a guess, not a timer, and not a soak “just in case.” Send the weather, recent rain, plant type, and canopy size. You get litres or US gallons from the FAO-56 Penman–Monteith method: farm-grade irrigation science, minus the spreadsheet.
Try it from the Input tab or POST JSON to /calculate. Pick a plant such as tomato (see common plants). If you skip plant type, the crop coefficient defaults to 0.8. On Apify you get a stable API URL, scheduling, monitoring, and pay-per-calculation billing — you pay when you ask, not while the Actor sits idle.
Why use Net Zero Watering?
Overwatering wastes money and drowns roots. Underwatering stresses fruit, turf, and greenhouse crops. Net Zero Watering turns the sensors you already have into a single number: water to apply — enough to cover crop demand after rain is credited, and not a drop more.
- Water the plant, not the calendar. Demand is scaled with a built-in coefficient for 100+ plants (tomato, lawn, grapes, citrus, corn, …). Rain since the last watering and rain still coming is subtracted so you do not irrigate on top of a storm.
- One POST instead of a spreadsheet. Controllers, farm software, and scripts send weather and get a volume back. No-code users fill the Input tab and run.
- Metric or imperial, same field names.
units: "metric"is litres, m², mm, °C, hPa.units: "imperial"is US gallons, ft², inches, °F, inHg. - Honest about missing data. Wind defaults to 2 m/s, radiation can be estimated from temperature, and every assumption is listed in the response so you can trust the number — or override the coefficient yourself.
- Built for live irrigation, not a crawl. Standby keeps the API ready. Each successful
/calculateis a short request, not a long Actor start.
How to use Net Zero Watering
- Open this Actor on Apify.
- On the Input tab, set
units, wettable area (canopy_areaorpot_diameter— if both are filled, canopy area wins), temperature, humidity, pressure or elevation (sea level is assumed if you skip both), latitude, rainfall, andplant_type. - Click Start — or POST the same JSON to
/calculateon the Standby URL. - Read
water_to_apply. That is litres (metric) or US gallons (imperial). When it is zero, you are already at net zero for this interval.
API example:
curl -X POST "https://sciguy--evapotranspiration.apify.actor/calculate" \-H "Authorization: Bearer <APIFY_TOKEN>" \-H "content-type: application/json" \-d '{"units": "metric","canopy_area": 1.5,"tmin": 18,"tmax": 30,"relative_humidity": 55,"pressure": 1013,"latitude": 40.0,"precip_since_last": 0,"precip_forecast_until_next": 2,"date": "2026-07-15","plant_type": "tomato"}'
A classic run writes the same result to the default dataset. Schedule it from a watering controller, a greenhouse dashboard, or a daily check for every zone you manage.
Input
All quantity field names are unit-agnostic. Required units is metric or imperial. You must also send:
- Wettable area:
canopy_areaorpot_diameter - Temperature:
temperatureor bothtminandtmax relative_humidity(0–100)pressureorelevation(pressure preferred)latitudeprecip_since_lastandprecip_forecast_until_next(0 is allowed)
Optional: pressure_type (absolute default, or sea_level), date, days_since_last, days_until_next, wind_speed (defaults to 2 m/s after conversion), wind_height (metres), solar_radiation or sunshine_hours, coastal, dewpoint, plant_type, plant_age_years, growth_stage (ini / mid / end), kc.
See the Input tab for the Console form.
Output
You can download the dataset in JSON, HTML, CSV, or Excel. A typical item:
{"units": "metric","water_to_apply": 8.41,"irrigation_depth": 5.61,"eto_per_day": 4.75,"etc": 7.61,"kc_used": 1.15,"kc_source": "lookup","plant_key": "tomato","kc_stage": "mid","precip_credit": 2.0,"interval_days": 2,"canopy_area": 1.5,"assumptions": ["unit system metric", "northern hemisphere growing season … → Kc mid"],"fao56": {"pressure": 101.3,"psychrometric_constant": 0.0674,"saturation_vapour_pressure": 2.98,"actual_vapour_pressure": 1.64,"delta": 0.189,"net_radiation": 12.4,"wind_2m": 2.0}}
water_to_apply is litres when units is metric and US gallons when imperial. Depth fields (irrigation_depth, eto_per_day, etc, precip_credit) are millimetres or inches. fao56 is always SI.
Data table
| Field | Meaning |
|---|---|
water_to_apply | Volume to apply (L or US gal) |
irrigation_depth | Depth equivalent of that volume |
eto_per_day | Grass reference demand (FAO-56) |
etc | Crop demand over the watering interval (kc × ETo × days) |
kc_used / kc_source | Coefficient actually applied (lookup, input, or default) |
plant_key / kc_stage | Looked-up plant key and ini/mid/end stage |
precip_credit | Rain already in plus rain forecast |
interval_days | days_since_last + days_until_next |
fao56 | Penman–Monteith intermediates |
Pricing / Cost estimation
How much does it cost to water smarter? $5.00 USD per 1,000 successful calculations — $0.005 each time /calculate (or a Console run) returns a volume. You are not billed while the API sits idle. A backyard controller checking once a day is about half a cent a day. A greenhouse asking once per zone still beats one overwatered crop or a wasted tank of water.
There is no crawl and no long run: each request is a short CPU answer. Set a schedule and only pay when you actually ask how much to apply.
Tips or Advanced options
- Send tmin and tmax, not only mean temperature. FAO-56 vapour pressure is more accurate with the daily range.
- If your weather provider reports sea-level pressure, set
pressure_typetosea_leveland includeelevation. - Airport wind is often 10 m; set
wind_heightto 10 so it is converted to 2 m. dewpoint, when you have it, is preferred over relative humidity for actual vapour pressure.- Pass
growth_stage(ini,mid,end) if you already know phenology; otherwise the Actor infers it fromdateandlatitude(northern growing season 1 March–31 October, southern 1 September–30 April). plant_age_yearsselects an age bucket 0–10. Those buckets currently copy the same coefficient; age-specific values can replace them later.
Plant types and Kc
plant_type is a human-readable key. Variations are separate keys (onions-dry, grapes-wine, banana-1st-year). Common examples:
| Key | Crop | Kc ini | Kc mid | Kc end |
|---|---|---|---|---|
tomato | Tomato | 0.60 | 1.15 | 0.80 |
lettuce | Lettuce | 0.70 | 1.00 | 0.95 |
potato | Potato | 0.50 | 1.15 | 0.75 |
maize-field-grain-field-corn | Field corn (also corn) | 0.30 | 1.20 | 0.47 |
beans-green | Green beans | 0.50 | 1.05 | 0.90 |
watermelon | Watermelon | 0.40 | 1.00 | 0.75 |
strawberries | Strawberries | 0.40 | 0.85 | 0.75 |
turf-grass-cool-season | Cool-season turf (also lawn) | 0.90 | 0.95 | 0.95 |
grapes-wine | Wine grapes | 0.30 | 0.70 | 0.45 |
apples-cherries-pears-no-ground-cover-killing-frost | Apple/cherry/pear, bare ground, frost | 0.45 | 0.95 | 0.70 |
The Actor ships with 100+ keys (every onion, citrus canopy, and hay-cutting variation). Aliases such as corn, onion, and strawberry map onto those keys. If plant_type is omitted or unknown, the coefficient is 0.8. The full catalog is in PLANTS.md.
FAQ, disclaimers, and support
Net Zero Watering estimates how much water a stand needs so you can irrigate to replace demand, not to flood it. It is not agronomic advice: soil type, drainage, salinity, and irrigation uniformity still matter. Built-in coefficients assume typical well-watered crop stands; they are not a substitute for a local agronomist.
Using the Actor to drive valves or pumps is your responsibility. Respect local water-use rules.
Questions and feature requests: use the Actor Issues tab. Custom plant tables, extra weather sources, or a private deployment are available as a custom solution.