One job ran over.
By 3 PM, every appointment
after it was late.
Nobody told the customers.

OkPilot plumbing dispatch software catches schedule cascades when a job runs over, reroutes downstream appointments to available technicians, and notifies affected customers before they call you. It is built for plumbing companies that dispatch their own crews.

Jake's schedule today

8 AM1012 PM246
Faucet install
Water heater ⚠
Faucet #2
Drain
Toilet?
On time Overrun Cascaded Original slot

The customer at 3 PM does not know the 10 AM job overran.

They just know you are late. They took the afternoon off work. They called once at 2:45, once at 3:10, and once at 3:30. By the third call, they are looking at your competitor.

The cost is not the overrun itself. It is the three angry customers who had nothing to do with it. Plumbing schedules built on estimates will always cascade. The question is whether anyone catches it before the customer calls.

Jake's schedule, Tuesday

5 jobs booked

10 AM water heater (est. 2 hr) 4 hr
1 PM faucet install 3 PM (late)
3 PM drain clearing 5 PM (late)
5 PM toilet repair Bumped to tomorrow

One overrun. Three late arrivals. One rescheduled job. Four customers who called asking where the technician is.

What happens when you type "Jake's 10 AM is running an hour over. Which afternoon jobs can Maria take?"

You type

"Jake's 10 AM is running an hour over. Which afternoon jobs can Maria take?"

OkPilot responds

Jake's water heater job is at 2.5 hours against a 2-hour estimate. His 1 PM faucet install and 3 PM drain clearing are both at risk. Maria finishes her current job at 12:15 and is 8 minutes from Jake's 1 PM address. She can take the faucet install. The 3 PM drain clearing is a 1-hour job. If Jake wraps the water heater by 2, he makes the 3 PM with a 30-minute buffer. Want me to assign the 1 PM to Maria and notify the customer?

0 menus

You just asked a question

Real time

Live job durations tracked

Plumbing aware

Knows job types and durations

Heads up

Jake's water heater job is at 2.5 hours (estimate was 2). His 1 PM and 3 PM are at risk. Maria can take the 1 PM faucet install. Notify the 3 PM customer of a 30-minute delay?

Move 1 PM to Maria Notify 3 PM only
Heads up

Emergency call: burst pipe at 415 Cedar Ave. Jake is on a job until 2 PM. Maria finishes in 20 minutes and is 12 minutes from Cedar Ave. Assign to Maria?

Assign Maria Show other options

It catches the cascade before the customer calls

OkPilot watches the clock on every active job. When a job passes its estimated duration, it does the math on everything downstream. It knows which technician is free, which jobs can be reassigned, and which customers need a heads-up.

Emergency calls slot in the same way. It finds the closest available technician, simulates the impact on their remaining schedule, and shows you the tradeoffs before you approve anything.

You approve every action. It never reassigns a job or contacts a customer without your say.

Your technician sees the job, not a generic task

The app shows what the customer reported, the job type, the estimated duration alongside a live timer, and the customer's address with directions. If the technician determines a return visit is needed, they schedule it before leaving the site.

Before and after photos are required on every job. The technician cannot mark a job complete without uploading both. GPS, timestamp, and job notes are captured automatically.

Current job

Water heater replacement

Mrs. Chen, 1847 Oak Dr

Customer reported

"No hot water since yesterday morning. Tank is in the basement."

Duration

2h 31m Est. 2h 00m

Required

✓ Before photo uploaded
○ After photo
○ Job notes

Needs return visit?

Yes, schedule now No

Tell it you do plumbing

"We do plumbing. Jobs are unpredictable in length. Emergency calls come in all day. Technicians need before and after photos. If a job needs a return visit, schedule it before the tech leaves."

That is the setup. OkPilot creates the job types, the photo requirements, the overrun alerts, the emergency insertion logic, and the return-visit flow. 48 hours to live.

Your plumbing dispatch flow

1 Job booked (type + estimate)
2 Technician assigned (by skill + zone)
3 On site (before photo + timer)
4 Overrun alert (if past estimate)
5 Complete (after photo + notes)
6 Return visit? (schedule before leaving)

Since 2018

In market

2,000,000+ tasks

Handled

48 hours

To full setup

Plumbing dispatch questions

OkPilot tracks estimated vs. actual duration on every job in real time. When a job passes its estimate, it calculates the ripple on all downstream appointments and suggests which jobs to move to another available technician. Affected customers are notified before they call you.

When an emergency like a burst pipe comes in, OkPilot shows which technicians are closest, qualified, and have the lightest remaining schedule. It simulates inserting the emergency and shows you the impact on booked jobs before you approve.

Yes. When a technician determines a job needs a second visit, they flag it in the app before leaving. OkPilot schedules the return visit, assigns it to the same technician, and notifies the customer with the new date and window. The original job notes carry over automatically.

OkPilot also handles HVAC, pest control, and appliance repair dispatch. See all service features.

See it running your plumbing dispatch

Book a demo. We will load your schedule and show you a cascade caught and resolved before the customer calls.

Live in 48 hours

Per team member pricing

Book a demo
Get 30 days free trial