Rachio + Flume Integration: How to Track Water Usage by Sprinkler Zone
Published May 24, 2026 · 8 min read
TL;DR
Rachio tells you which zone ran. Flume tells you the household's total water usage. Neither, on its own, tells you how many gallons each individual sprinkler zone used. Combining them does. The recipe: listen for Rachio's zone-start and zone-stop webhooks, then sum the Flume minute-level flow data inside that window. This guide walks through how the attribution works, what the data looks like in practice, and how to validate the numbers against your utility bill.
The data each device gives you
A Rachio smart sprinkler controller knows exactly which zone is running, when it started, when it stopped, and the scheduled duration. What it doesn't know is how much water actually flowed. Rachio estimates based on configured nozzle GPM, but those estimates can be off by 30% or more for real-world sprinkler heads, especially older brass nozzles or any zone with mismatched heads.
A Flume water monitor sits on your main supply line and measures actual flow with a magnetic sensor on the utility meter. It captures minute-level data: every minute, how many gallons passed through the meter. What Flume doesn't know is which fixture is using the water. From Flume's perspective, water flowing through a sprinkler valve at 8:14 AM looks identical to water flowing through your shower at the same minute.
The two devices are complementary. Rachio tells you what ran. Flume tells you how much flowed. Pair them and you can attribute actual gallons to individual zones: no estimates, no nozzle-GPM calibration, just the meter reading inside the window each zone was running.
What you can actually learn from per-zone data
The questions per-zone tracking can answer, that neither device answers on its own:
- Which zone is using the most water? Almost always not the one you'd guess. Long backyard turf zones tend to dominate; small flower beds usually don't.
- Is one zone over-watering? If Zone 3 (small drip bed) is running the same gallons as Zone 1 (large turf), there's a leak or a stuck valve.
- What does each zone cost per run? Under tiered billing, the same 300 gallons can cost $0.75 or $2.50 depending on where you are in your cycle.
- What percentage of your water bill is irrigation? For most households with automatic sprinklers, this is the single largest line item, often 50–70% in summer.
- Did the schedule change you made last week actually save water? Per-zone data lets you compare run-over-run, not just month-over-month.
What you need
Hardware: any Flume water monitor (Flume 2 is current) clamped to your utility meter, and any Rachio sprinkler controller (Gen 2 or Gen 3). Both must be set up with their normal cloud accounts.
Software: an account on Barranca Verde. The free tier connects everything and gives you 30 days of history. The paid tier ($5/month or $50/year) keeps a full year and unlocks the irrigation-vs-total chart.
API credentials: your Rachio API key (from app.rach.io → Account Settings → Get API Key; see the step-by-step guide), plus your own Flume API client: a Client ID and Client Secret you generate at portal.flumewater.com → Settings → API Access (step-by-step guide), entered with your Flume account email and password. Flume requires a per-user API client: a single shared key can only authenticate the account that created it. Your Rachio key and Flume Client Secret are encrypted with AES-256-GCM before being stored; your Flume password is used only to obtain an access token and is never stored.
How the integration works under the hood
It's a four-step pipeline, and each step uses an official, documented API:
- Webhook registration. When you connect Rachio, Barranca Verde registers a webhook subscription against the device. From that point on, every zone start and stop fires an HTTP POST to our endpoint in real time, usually within 2–3 seconds of the physical valve opening.
- Run-window logging. Each webhook gets deduplicated (Rachio occasionally replays them) and written as an irrigation-run row: zone ID, started-at, stopped-at, scheduled duration. At this point we know what ran but not yet how much water flowed.
- Flume usage sync. Every 15 minutes, a background job pulls minute-level usage from the Flume API for the past few hours. For completed prior days it also pulls the daily-bucket total (Flume's authoritative number, the same one their app shows). Both are stored, the daily bucket preferred for any day that's no longer "today".
- Attribution. For each completed run whose gallons-used is still unknown, the reconcile pass sums every minute-bucket whose timestamp falls inside [floor(startedAt, 1min), stoppedAt]. That sum is the run's gallons. Multiply by the tiered rate (more on this below) for cost.
There's one important detail: Flume's API has a 3–6 hour lag before minute-level data is queryable. So a zone that runs at 6 AM won't show actual gallons until ~10 AM at the earliest. The run shows up in your log immediately (from the Rachio webhook), but the gallon count populates a few hours later. You'll see a small banner in the dashboard whenever Flume's API is behind the most recent run stop.
A real run, end to end
Walking through what actually happens on the wire:
- 6:00:00 AM: Rachio opens the Zone 1 valve. Within ~2 seconds, the Rachio cloud posts a
ZONE_STATUS / ZONE_STARTEDwebhook to our endpoint. Row inserted: zone_id=zone-1, started_at=06:00:02, stopped_at=null. - 6:09:30 AM: Zone 1 finishes its scheduled run. Rachio posts a
ZONE_STATUS / ZONE_COMPLETEDwebhook. Row updated: stopped_at=06:09:30. - 9:15 AM: The 15-minute Flume sync runs. The 06:00–06:10 minute buckets are now available in Flume's API; they get pulled and stored.
- 9:15 AM (same tick): Reconcile pass sees the Zone 1 row has stopped_at populated but gallons_used = NULL. It sums the minute buckets from 06:00 to 06:09:30. Result: 268.4 gallons.
- 9:15 AM: The current cycle's prior-HCF total is queried; cycle-to-date sits at 38.2 HCF, putting this run in Tier 2 ($6.638/HCF). Cost calculated: 268.4 gal × $6.638 / 748 gal/HCF = $2.38.
- 9:15 AM: The run row now reads: 268.4 gallons, $2.38, Zone 1. It appears in the dashboard's run log, in the daily chart, and in the per-zone breakdown.
Cost attribution under tiered rates
Most utilities bill water in tiers: a low rate for the first N units of use per cycle, then escalating rates for each subsequent block. The unit is almost always HCF (hundred cubic feet, ≈ 748 gallons).
For example, a real bimonthly rate schedule:
| Tier | Threshold | Rate per HCF |
|---|---|---|
| 1 | 0–14 HCF | $2.518 |
| 2 | 14–58 HCF | $6.638 |
| 3 | 58–84 HCF | $7.219 |
| 4 | 84+ HCF | $10.082 |
That means the exact same 300-gallon zone run has wildly different cost depending on where you are in the cycle. Early-cycle (Tier 1): about $1.01. Mid-cycle (Tier 2): about $2.66. Late-cycle (Tier 4): about $4.04. Same zone, same nozzles, same minutes. 4x cost difference based on calendar position alone.
Per-run marginal pricing handles boundary-straddling runs correctly. If a run starts at 13.9 HCF cycle-to-date and uses 0.5 HCF, the first 0.1 HCF costs Tier 1 rate and the next 0.4 HCF costs Tier 2 rate. The math composes correctly across a full cycle of runs.
Validating against your utility bill
This is the part most water-tracking tools skip. To trust the numbers, you need to compare three things:
- What the utility billed you: the meter-read total on your paper bill. This is ground truth.
- What Flume's API reports for the same date range: what Flume's own dashboard sees.
- What your tracker's database shows: what's actually been synced.
The gaps tell you different things:
- Bill vs Flume: a small gap (2–5% under) is normal. Flume's sensor sits on the utility meter but reads it magnetically, so very slow flows below ~0.5 GPM (some drip irrigation, low-flow leaks) don't always register. Larger gaps suggest a physical issue worth investigating.
- Flume vs Tracker: should be zero. Any gap is a pipeline bug: a missed sync, a backfill error, or a timezone mismatch. Worth tracing.
In a real reconciliation we recently ran against a Pasadena Water and Power bill, the utility billed 59 HCF for a 62-day cycle. Flume's API reported 56.4 HCF for the same window. Our database initially showed 49.7 HCF, a 12% gap that turned out to be two specific missing days in the backfill (a timezone bug in our code, since fixed). Once corrected, our number matched Flume's exactly. The Flume-vs-utility gap of 4% remains as expected sensor variance.
Limitations and edge cases
- Indoor water use during a run. If someone takes a shower while sprinklers are running, that shower's gallons get attributed to the zone. Most households don't shower at 6 AM during summer irrigation, but it happens. The error is bounded: typical showers are 15–25 gallons against zone runs of 200–500 gallons.
- Multi-zone simultaneous runs. Rachio's "smart cycle" feature can run two zones at once on some controllers. When this happens, the gallons get attributed proportionally based on overlap duration. Per-zone numbers are still useful for trend analysis but less precise than a clean sequential schedule.
- Manual zone starts. Zones started manually from the Rachio app fire the same webhooks as scheduled runs; they're tracked identically.
- Flume offline. If Flume loses wifi or its battery dies, you'll see runs in the log with no gallon attribution. The reconcile pass keeps trying for 7 days; after that, those runs stay un-attributed.
- Billing day vs meter read date. Utility bills cycle on meter-read dates, which can drift by 1–2 days based on staffing. Tier math is correct within the cycle but the cycle boundary may not match the printed bill period exactly.
Getting started
The integration takes about five minutes to set up if you already have both devices on their cloud accounts. The flow is: sign up, connect Rachio (paste your API key, and Barranca Verde registers the webhook automatically), connect Flume (paste your Flume API Client ID and Secret plus your account login), and optionally enter your utility's tiered rate schedule. From there everything is automatic. Every zone run gets logged in real time, gallons populate a few hours later, and costs roll up against your billing cycle.
Track your sprinkler zones
Connect Rachio + Flume in 5 minutes. Free plan, 30 days of history.
Get started free