Pool service software that reads the test strip from a photo

Proof at every pool.
Read by AI.

Routes, photo proof, chemistry, money and the truck — one app runs the whole pool business. Your technicians see today's route, tap a house, take a photo. The AI names the service, catches anything suspicious and reads the strip for them. One button finds the best order for each route.

· · Works without signalBuilt by a pool service company
Google reviews & referrals from the photo pageThe visit photo page can ask for a Google review and a neighbor. Same ask for every customer, no cost per customer.
Register visit
Silva Family
Service photo
no photo, no visit
AI READ · 4 OF 5
Change photo
Something else?
Salt (bags)
Shock treatment
Follow-up
Problem / estimate
Water chemistry POOL
LAST
TODAY
Free chlorine ppmAI
2.5 ↑
3.0
pHAI
7.6 →
7.2
Alkalinity ppmAI
70 ↓
60
CYA ppmCHECK
70 ↑
80?
Salt ppm
3200 ↑
—
AI = read from the photo. Tap any box to correct. Salt is not on the strip.
View history
Chemicals added
pH ↓ · muriatic acid
16 oz
Add chemical
Submit visit
Submit waits while a CHECK box is open — one tap fixes it.
Real test strip photographed at the pool
AI read · 4 of 5
Free chlorine · 3 ppm
pH · 7.2
Alkalinity · 60 ppm
Stabilizer · 80? · CHECK
photo hash · unique ✓
08:41 · server time
Illustration of the app — the strip photo is real, shot on our own route.
Google reviews & referrals from the photo pageThe visit photo page can ask for a Google review and a neighbor. Same ask for every customer, no cost per customer. Proof for your customer · free marketing for you

One photo. Proof for them,
free marketing for you.

With Service done with photo on, when your tech logs the cleaning photo the homeowner gets a link to that visit: the photo, the date and the time, no password, no app. Turn on Reviews & referrals and that same page also asks for a neighbor who needs a pool guy, and for a Google review — the review ask is spaced out (from the 3rd visit, at most every 90 days, and it stops once they click), so a weekly customer isn't asked every week. Nothing extra to send. Want the full history? Your office can give each customer a separate 90-day pool page.

  1. 1
    The messagePool serviced, with a link to the photo.
    8:41
    BWBlue Wave Pools
    Text Message · Today 8:41 AM
    Blue Wave Pools via ZapRoute: your pool was serviced today. See the photo: zaprouteapp.com/p/Ab3xK9mp
    Text Message
  2. 2
    The photo pageThis visit's photo, date and time.
    8:42
    zaprouteapp.com
    BWBlue Wave Pools
    Silva Family1801 N Ocean Blvd, Boca Raton, FL · last 90 days
    Tue, Sep 22 · 8:41 AM
    Tue, Sep 22 · 8:41 AMPool cleaned · Chris
    Tue, Sep 15 · 8:37 AMPool cleaned · Filter washed · Chris
    Neighbors find us on Google
    Write a review on Google
    Know a neighbor who needs a pool guy?
    Share Blue Wave Pools
  3. 3
    The askPrivate stars for you, a Google button, a referral link.
    8:42
    zaprouteapp.com
    BW
    Blue Wave PoolsYour pool was serviced today · 8:41 AM
    How did we do?This goes to Blue Wave Pools only. It is not published anywhere.★★★★★Send 5 stars
    Neighbors find us on GoogleIf you have a minute, a review, good or bad, is the most useful thing you can do for a small local business.GWrite a review on Google
    Know a neighbor who needs a pool guy?You both get $25 off when your neighbor signs up.Share Blue Wave PoolsYour link: zaprouteapp.com/ref/K7M3QX
  4. 4
    Your officeRatings, Google clicks and new referrals, on one screen.
    ★
    Silva Family · 5 stars“Chris even fixed the skimmer lid.”Private feedback
    G
    Went to GoogleSilva Family tapped “Write a review”
    New referral from Silva FamilyMartinez family asked for a priceE-mail sent to the office
Sample data
  • AutomaticTurn it on once. From then on, every photo page does the asking.
  • Your rewardWrite the reward line, like $25 off for both. ZapRoute follows each referral until it becomes a client and reminds you to pay it.
  • Your paceFirst ask after the 3rd visit, then every 90 days, never again once they click. You set the numbers.
  • By Google's rulesEvery customer sees the same invitation. The stars stay private and never decide who gets the Google button.

Texts go only to customers who said yes, and only when you switch them on.

Referrals are the #1 marketing channel for 65% of pool companies. State of Pool Service 2026

The difference

What the others
don't have.

Six things you will not find in the apps most pool companies use — and the reason a pool company built its own app.

01

The AI reads the test strip

Point the camera at the strip; chlorine, pH, alkalinity and CYA fill in with a confidence score. Anything uncertain is marked CHECK for your office.

02

Photo required — the AI tags the visit type

No photo, no visit. The AI names the service from the photo and flags duplicates, end-of-day dumps and fake timestamps — time verified on the server.

03

The truck is on the books

Base → first stop → … → last → base. Miles and fuel cost for every route; each technician's miles by week and month, and gallons and fuel cost per month.

04

Chemical cost per pool

Every product logged at the pool, priced the day it was added. The pools that cost 2× the average are shown for a price review.

05

QuickBooks stays the truth

No QuickBooks? ZapRoute keeps the balances and posts the monthly charge on the 1st. On QuickBooks? One switch and QuickBooks stays the truth — ZapRoute prepares the invoice lines.

06

Trilingual, zero training

English, Portuguese and Spanish on every screen. The technician opens the app and the day is already there.

On one side the technician brushing the pool, on the other photographing the finished job

Did it. Photographed it. Done.

The proof leaves the technician's hand — not a report typed up later.

app.zaprouteapp.com/dashboard
Owner dashboard: month revenue, outstanding, past due, active pools, photos today, today's routes, miles and fuel
app.zaprouteapp.com/dashboard
Owner dashboard: month revenue, outstanding, past due, active pools, photos today, today's routes, miles and fuel
Not a route app

The whole business,
on one screen.

Money, chemistry, fuel, photos and the office desk — the same login the technician uses, with the numbers only the owner and the office see.

Click any screen to see it full size.

Sample data

app.zaprouteapp.com/balances
Balances: outstanding, past due and paid-up with aging buckets
Balances on the phone

Balances

Outstanding, past due and paid-up in one table with aging buckets — or, in QuickBooks mode, the same table read straight from QuickBooks.

app.zaprouteapp.com/ready-to-invoice
ZapRoute
Today
Dashboard
Live routes
Office desk
35
Notes
3
Route builder
My route
Clients
Clients
Estimates
Messages
2
Reviews & referrals
Money
Balances
Ready to invoice
Profit per pool
Reports
Reports
Company
Company details
Users
Estimate catalog
Water chemistry
Message settings
Billing settings
AM
Amanda
Office
Ready to invoice
Ready for QuickBooks
October 2026
October service + what ZapRoute did in September · suggested invoice date Sep 28 · terms from QuickBooks (Net 30)
Print list
Ready to invoice
$14,730
78 payers · 79 invoices
Monthly service
$13,980
from each pool's monthly value
Extras from visits & repairs
$750
9 salt · 2 filters · 1 repair on the monthly · 1 separate
Skipped
3
1 prepaid · 1 already invoiced · 1 not matched
Payer · lines in the order they go on the invoice
Where it goes
Qty
Amount
MI
Miller
2 pools · one invoice with a line per pool
1 invoice · $394.50Open customer in QuickBooks
Pool Service
Pools Cleaning Service · 456 Ocean Dr
1
$180
Pool Service
Pools Cleaning Service · 460 Ocean Dr
1
$150
Salt
1 bag - September 13
from the visit (Chris) Photo
Ignore
1
$17
Pool Filter
Approved - September 2
filter cleaning · from the visit (Chris) Photo
Ignore
1
$60
Repair
Pump capacitor - Approved Sep 2 - Done Sep 9
repair order · value of the order Photo
Monthly invoice
Separate invoice
1
$25
Discount
One week discount - suspended Sep 15–21
from the suspension already on file
1
−$37.50
RO
Rodriguez
2001 Camino Real
2 invoices · $2,371Open customer in QuickBooks
Pool Service
Pools Cleaning Service
1
$220
Repair
Pump replacement - Approved Sep 3 - Done Sep 9
separate invoice dated Sep 9 · value of the order Photo
Monthly invoice
Separate invoice
1
$2,151
SH
Silverspring HOA
Company · 6 pools · one invoice, one line per pool
1 invoice · $1,114Open customer in QuickBooks
Pool Service
Pools Cleaning Service · 6 pools ($180 each)
6
$1,080
Salt
2 bags - September 19 · Clubhouse pool
from the visit (Chris) Photo
Ignore
2
$34
KA
Kaplan
77 Bayview Ln · $200/mo
PREPAIDPrepaid until Dec 2026 — skipped until January
NG
Nguyen
1188 Sandpiper Cove · $160/mo
ALREADY INVOICEDInvoice #1071 · Sep 26 · $160Open in QuickBooks
PC
Palm Cove Condos
Company · 3 pools · $560/mo
NOT MATCHEDMatch customer
Showing 6 of 78 · type these into QuickBooks as you do today. Extras use the item names QuickBooks already has (Salt, Pool Filter…). Connects to QuickBooks: balances and payments come from it.
Ready to invoice on the phone

Ready to invoice

Every payer laid out like the invoice: the monthly line, salt and filters with date and photo, repairs on the monthly bill or on their own. Prepaid and already-invoiced greyed out.

app.zaprouteapp.com/live-routes
ZapRoute
Today
Dashboard
Live routes
Office desk
35
Notes
3
Route builder
My route
Clients
Clients
Estimates
Messages
2
Reviews & referrals
Money
Balances
Monthly charges
Profit per pool
Reports
Reports
Company
Company details
Users
Estimate catalog
Water chemistry
Message settings
Billing settings
AM
Amanda
Office
Live routes
Tuesday, Sep 1 · updated 11:02 · refreshes as photos arrive
Reassign homesRefresh
6
routes today
49 / 83
homes done
3
photos pending
412 mi
driven so far · $85.90
2
suspicious photos
Chris12 of 18
last activity 10:481 photo pending
Chris9 of 14
last activity 10:52
Marco6 of 12
last activity 10:31
Amanda P.11 of 11
last activity 10:20route done
Julio4 of 15
last activity 10:44late start 08:40
Dave7 of 13
last activity 10:451 problem reported
Chris · 12 of 1838.2 mi · about 1h50 · ~$7.40
✓
Johnson
10:21 · Cleaning · Chemical test · FC 3.0 · pH 7.6
AI 0.93
✓
Miller
10:48 · Cleaning · Salt 2 bags
AI 0.98
12
Palm Cove Condos · pool 1
Cleaning
photo pending · 14 min
13
Rodriguez
last test Aug 27 · FC 3.0 · pH 7.5
14
Thompson
filter change due in 18 days
15
Garcia
16
Silverspring HOA — Clubhouse
gate code 2288
17
Kaplan
Live routes on the phone

Live routes

Six technicians at once: who is where, what was done, which photo is still on the phone waiting for signal — and the selected route with the last chemistry reading beside each house.

app.zaprouteapp.com/chemistry-report
ZapRoute
Today
Dashboard
Live routes
Office desk
35
Notes
3
Route builder
My route
Clients
Clients
Estimates
Messages
2
Reviews & referrals
Money
Balances
Monthly charges
Profit per pool
Reports
Reports
Company
Company details
Users
Estimate catalog
Water chemistry
Message settings
Billing settings
AM
Amanda
Office
Chemistry report
CLIENT
Silva Family — 1801 N Ocean Blvd
FROM
Aug 20, 2026
TO
Sep 3, 2026
Show
Aug 20 – Sep 3 · Chris
5 visits
3 chemical tests
1 out of range
1 to check
2 read by AI
Print / PDF
Wednesday, Sep 3
Chris · 2 photos
pH HIGH
09:42 · Chemical test
09:58 · Cleaning
WATER CHEMISTRY · 09:42 AI 0.91
Free chlorine3.0 ppm
pH8.0HIGH
Alkalinity90 ppm
CYA50 ppm
Salt by hand3,200 ppm
CHEMICALS ADDED
pH ↓ · muriatic acid16 oz
Green dot = inside the range in force that day. HIGH / LOW in amber. AI = read from the strip photo, with the confidence.
Monday, Aug 31
Chris · 1 photo
No chemical test
10:12 · Cleaning
No readings this day.
CHEMICALS ADDED
Chlorine ↑ · tablets3
Thursday, Aug 27
Chris · 2 photos
1 to check
09:35 · Chemical test
09:51 · Cleaning
WATER CHEMISTRY · 09:35 CHECK 0.62
Free chlorine2.5 ppm
pH7.6
Alkalinity90 ppm
CYA40?CHECK
Salt by hand3,200 ppm
CHEMICALS ADDED
Chlorine ↑ · liquid½ gal
Fix reading
One client, one period, every day separated: the photos of the day with their TIME on the left, the test of the day with the results on the right. Days with no test say so. "Fix reading" opens the same Edit the office already has. Owner, supervisor and office see this screen; the technician does not.
Chemistry report on the phone

Chemistry report

One client, one period, every visit: the photos, the readings with the AI confidence, what was out of range and what was added. Print or PDF for your records.

app.zaprouteapp.com/chemical-costs
Chemical costs: this month, per pool, biggest line, by product
Chemical costs on the phone

Chemical costs

By product, by technician, by pool — week, month or year. Every product priced the day it was added, so you see what each pool really costs.

app.zaprouteapp.com/profit-per-pool
Profit per pool: what each pool bills, what it costs in chemicals, fuel and time, and what is left
Profit per pool on the phone

Profit per pool

What each pool bills, minus the chemicals it drank, the fuel to get there and the minutes spent. The ones losing money are named, with the price that would fix them.

Pool technician adjusting the pump next to the filter

The repair starts on the route.

A visit flags a problem, the office builds the order, the customer approves by link — before and after, both with a photo.

The technician's day

From the first stop
to the closeout.

Zero training. The technician opens the app and the day is already there — in the language they chose.

Chris's Tuesday, minute by minute: his phone and what the office sees.

Skip the story ↓Sample data
  1. 08:00 — The route is on the phone. The office sees the same day.

    Chris's phone shows his Tuesday route: 7 homes, 17.2 miles, about 53 minutes of driving. The office's Live routes shows the same day: 6 routes, 0 of 26 homes done.

  2. 08:10 — Tap the house, take the photo. The office sees it land.

    Chris taps Zimmerman Residence and takes the photo. The home turns green on his phone, and the photo shows up under Latest proof in the office: Chris 1 of 7, last activity 08:10.

  3. 09:05 — No signal at Prescott? The visit is saved on the phone.

    At Prescott Residence there is no signal. The visit is saved on the phone and the home shows Photo pending, 4 minutes. The office sees 1 photo pending.

  4. 09:20 — Signal's back. The photo uploads by itself — nothing is lost.

    The signal returns and the phone says All photos uploaded. The office gets the Prescott photo, still marked with the time it was taken. Chris 3 of 7.

  5. 10:40 — One photo of the strip. The AI fills in the readings.

    At Silva Family, Chris photographs the test strip. The AI reads free chlorine 3.0, pH 7.2, alkalinity 60 and CYA 80, and marks CYA as CHECK for a person to confirm. The office gets the chemical test: AI read 4 of 4, 1 to check. Chris 6 of 7.

  6. 11:48 — Back home. Every stop proven, every mile counted.

    Chris is back home: 7 of 7 homes, 17.2 miles, 53 minutes of driving, about $3.34 of fuel. The office shows his route done and 26 of 26 homes done.

What happens on the street shows up in the office — the minute the phone has signal.

Routes & the truck

Every mile,
every gallon,
every dollar.

Set your base and your truck once (mpg and fuel price). The route is measured base → first stop → … → last stop → base; each route shows its miles and fuel cost, and each technician gets miles by week and month, plus gallons and fuel cost per month.

  • Learned order: the sequence the technician really drives is saved.
  • One-button optimization with the miles saved — apply, undo, or fine-tune by hand.
  • Fuel cost per route and per technician per month.
  • Route builder: the office builds the day on the map and drags a house from one technician to another.
  • New pool? ZapRoute shows where it fits best — technician, day and spot with the fewest miles.

A sample Tuesday: 7 pools and the drive from home. Reorder it yourself, change the truck — or let ZapRoute find the best order.

Schematic map · not to scale · SAMPLE DATA

Edit the order yourself

Move a pool with ↑ ↓, or drag it by the handle. The map, the miles and the fuel follow every change.

    Your truck

    New client · where it fits bestNew client? See where the pool fits best.

    Three weekly routes on one map. Drop a new pool anywhere: ZapRoute checks every spot on every route and shows where it adds the fewest miles.

    Schematic map · not to scale · SAMPLE DATATap the map to drop a pool

    Nothing goes on a route until you tap a button.

    app.zaprouteapp.com/route-builder
    Route builder: every pool on the map, the day's stops and the order the technician really drives

    Route builder

    Every pool on the map. Pick the day and the technician, drag a house in or out, and the miles and the fuel change while you look. Save it and tomorrow's route is that one.

    Technician dipping the test strip in the pool, phone in the other hand
    Register visit: the service photo, what was done, the chemicals added

    The strip goes in the water. The numbers go in the app.

    One photo of the strip on Register visit — the AI fills in the readings for the technician.

    The AI

    The camera is
    the timesheet.

    No photo, no visit. Every stop needs a picture before it counts — and the AI looks at every one of them.

    Names the service

    Cleaning, chemical test or filter — the AI names it from the photo, and the technician can correct it for 30 minutes. Salt and shock stay one tap away.

    Catches the tricks

    Repeated photos, batch uploads at the end of the day, fake timestamps. Time is verified on the server, not on the phone.

    Reads the strip, never decides alone

    The technician submits and moves on. Seconds later the AI reads the strip and the values land on the visit tagged AI — anything it wasn't sure about is marked CHECK for your office to confirm. The photo stays as the proof.

    Writes the first draft, you press send.

    Past-due reminders and replies to your customers' texts, written by the AI and sent only when you approve.

    The AI · strip reading

    Watch the AI read the strip.

    One photo of the test strip. The AI reads every pad against the bottle's color chart, gives each number a confidence score — and flags what a person should check.

    The photo
    A real test strip photographed at the pool, with four color pads: orange, purple, olive green and brown-orange.

    Real strip photo, shot on our own route.

    Bottle color chart

    Stylized bottle color chart: pH, free chlorine, alkalinity and CYA swatches.

    Illustration. The AI reads the whole photo together with the bottle's chart — it is not a color meter. The lines show what it compares.

    Reading from this photoSample data
    ItemReadingConfidenceStatus
    Free chlorine (ppm)—
    —
    —
    pH—
    —
    —
    Alkalinity (ppm)—
    —
    —
    CYA (ppm)—
    —
    —

    on the bar = 0.75. Below it, the reading is marked CHECK.Dots: the color on the pad ≈ the chart swatch it matched.

    Nothing read yet.

    AI4 of 4 read · 1 to check

    CHECK goes to the office. Nothing is final until a person looks.

    Salt is not on the strip.

    Photo proof · anti-fraud

    Can you spot the tricks?

    One technician's Tuesday: 8 proof photos. Three are tricks. Tap the ones you think are suspicious — then let ZapRoute check them.

    Chris Demo· Tuesday ·Sample data
    3 to find · 0 marked Tap a photo to mark it as a suspect. Tap again to unmark.

    Score

    YouMark your suspects
    ZapRouteWaiting for the check

    What gets checked

    Three checks on every photo

    FingerprintEvery photo file gets a fingerprint (a hash). The same file sent twice has the same fingerprint.
    PlaceWhen the technician's location is on: was the photo taken within 300 m of the pool?
    AIDoes the photo show the service that was marked?

    Mark your suspects, then press Let ZapRoute check.

    Check log

      Nothing checked yet.

      How the AI behaves

      The AI reads, names and flags. A person has the last word.

      Every reading is tagged AI, and anything it isn't sure of is marked CHECK for a person. It never sends a message, bills a customer or changes a price on its own.

      Your data

      Each company sees only its own.

      Photos get a second copy every night in a separate Google Cloud bucket. We don't sell data, and the app shows no ads.

      Pricing

      Pay for the pools
      you service.

      • You pay for the pools you serviced last month or keep active today — whichever is higher.
      • Every feature on every step. Unlimited technicians and users.
      Soloup to 60 pools
      $59/mo
      Max61 pools or more
      $1/pool/mo

      30 days free, no card

      EN

      One button finds the best order for each route.

      Every screen, every message, every email — in the language each user picks.

      PT

      Um botão acha a melhor ordem de cada rota.

      Cada tela, cada mensagem, cada e-mail — no idioma que cada usuário escolhe.

      ES

      Un botón encuentra el mejor orden de cada ruta.

      Cada pantalla, cada mensaje, cada correo — en el idioma que cada usuario elige.

      Ask Zappy · inside the app

      649 answers. Zero made up.

      When somebody has a question, Ask Zappy answers it inside the app — in English, Portuguese and Spanish, from the product manual and nowhere else. When the manual does not cover something, it says so instead of inventing a feature.

      Tested on 202 real questions · average 8.8 / 10

      Preset answers are excerpts from the manual. The real Ask runs inside the app.

      Sky map: each of the 649 questions in the ZapRoute manual is drawn as a star, grouped into 8 galaxies by topic. The answers below are also given as text.

      Answer in

      Try one

      Ask Zappy

      Ready · answers from the manual

      A family in the pool of a waterfront house on a sunny afternoon

      This is what he is selling.

      Not routes, not photos, not reports — the certainty that the pool is ready when the family walks in.

      Tomorrow's route can
      already be in the app.

      Sign up and bring your pools in — paste the list or send a file — hand out the week in Route builder, and the technicians get their route in the morning.