Plumbing

Plumbing scheduling software for a trade where nobody knows how long the job takes

A plumbing call can be a 20-minute flapper or a four-hour slab leak, and you rarely know which until the plumber is on site. Your schedule has to survive both.

Same six stops, two ways to book them● live sketch
- - Phone order— Map orderThis sketch: less road

Every trade has jobs that run long. Plumbing is the trade where you often cannot tell which ones they will be from the phone call.

"Water under the kitchen sink" might be a loose compression nut. It might be a corroded supply line, a failed disposal, or a cabinet floor that has been soaking for a month. The customer describes the symptom. The plumber discovers the cause. Your schedule has to be built before that discovery happens.

That uncertainty is the core of plumbing scheduling, and most of the advice you will read for general field service skips it.

The end time is the problem, not the start time

Most scheduling tools treat a booking as a start time plus a fixed block. For plumbing, the start time is the easy part. The end time is the guess.

When a job runs over, three things move:

  1. The plumber's arrival at the next job.
  2. The drive to that next job, which may now happen at a different hour with different traffic.
  3. Every booking after that, because each one was promised assuming the previous job ended on time.

The third one is where days collapse. A single long job at 10:00 a.m. does not ruin a day by itself. It ruins the day when the 11:30, 1:00 and 2:30 were all booked tight, with the drive between them assumed to be short because nobody checked.

Set durations by service type, not by average

A single "plumbing call" block is wrong in both directions. It is too long for a toilet repair and too short for a water heater swap. A better job duration estimate comes from splitting your work into types and looking at how long each type actually takes in your own completion history.

Useful splits for plumbing:

  • Diagnostic or "find the problem" calls where the scope is unknown.
  • Known-scope repairs such as fixture swaps, toilet rebuilds, or a disposal replacement.
  • Drain calls, which vary with the line, the access and what is in it.
  • Water heater replacements and other half-day or full-day installs.
  • Emergencies such as active leaks and no-water calls.

Set each type's block near the longer end of what you see, not the middle. You are scheduling against the days that run long, because those are the days that cost you.

Emergencies in plumbing are not optional

An active leak is a fixed appointment the moment it is reported. A burst line or sewage backing up into a basement is not something the customer will wait on, and if you cannot go, they will call the next company.

There are two ways to fit emergencies in:

  • Bump planned work. The dispatcher moves a scheduled customer to make room. This is the default, and it produces two unhappy customers: the one who waited for the emergency, and the one whose appointment moved.
  • Hold capacity on purpose. Reserve a slot or two per day in the parts of the territory where emergencies tend to come from. Release it to flexible work if it is still unclaimed by late morning.

The second option only works if the reserved slot is somewhere a plumber can actually reach quickly. A reserved slot on a truck that will be 40 minutes away at 11:00 is not emergency capacity. It is a reservation on paper. More on the trade-offs in emergency call scheduling.

A worked example: one long drain call

This is an illustrative example with made-up numbers. Use your own completion times and drives.

A plumber has three calls booked after lunch. A drain call at 12:00 was given a 60-minute block. The next call is at 1:30, 20 minutes away. The one after that is at 3:00, 30 minutes away. The drain call turns out to need a second pass with a larger cable and runs 100 minutes.

Example: one drain call runs 40 minutes over
Drain call booked12:00 to 1:00
Drain call actual12:00 to 1:40
Arrival at 1:30 job (20 min drive)2:00
Arrival at 3:00 job (60 min job + 30 min drive)3:30
Offers checked against a 100-min drain block plus drives2:00 and 3:30
Arrivals against those promisesBoth on time

The drain call did not cause the late arrivals by itself. The tight booking did. The 1:30 slot was offered because the block from 1:00 looked open. If the slots had been checked against a realistic drain-call length plus the drive from each previous address, the two customers would have been offered 2:00 and 3:30. Same plumber, same work, same drives. The difference is that the promises match what the truck can do, so nobody waits and nobody gets a late-arrival call.

How drive time compounds the duration problem

Plumbing territories are often dense, especially in cities. Dense territories make drive time look small, so plumbers get booked back to back with 10 or 15 minutes between calls.

That works when every job ends on time. When one runs over, the next drive happens later in the day. In many metros, a 15-minute drive at 11:00 can be a 30-minute drive at 4:30. The schedule used one number for both.

This is what travel-time scheduling means in practice: the drive is computed for the hour it will actually happen, from the address the plumber will actually be leaving.

How CrewLink handles plumbing scheduling

CrewLink builds live travel time into availability. Before a slot is offered, it checks that a plumber can physically get there, with travel computed from the previous job, not from the shop. Slots that do not fit are not offered.

On the dispatch board, drive time sits next to each job instead of being buried inside it, so when a drain call runs over you can see exactly which drives and arrivals it pushes. It is built for companies running 5 to 50 trucks, and a walkthrough uses your own territory and service times.

CrewLink does not estimate job durations for you, and it is not a pricebook or invoicing tool. You set your service types and their times. It makes sure the drive between them is real.

What to take away

  • In plumbing, the uncertain part of a booking is the end time; build blocks by service type, set near the long end of your own history.
  • Days collapse when a long job meets a tight afternoon booked without checking the drive.
  • Hold emergency capacity where emergencies come from, on trucks that can reach those areas quickly.
  • Compute drives for the hour they will happen; a 15-minute morning drive is not a 15-minute afternoon drive.

Common questions

How many calls can a plumber run in a day?

Divide available working hours by the sum of average job length and average drive between jobs. For example, 8.5 working hours with 70-minute jobs and 20-minute drives is 8.5 ÷ 1.5, or about five to six calls. Then check how often your long jobs blow that up; the jobs per day guide walks through it.

How do you schedule plumbers when you don't know how long the job will take?

Book unknown-scope work as a diagnostic with its own block, and book the repair separately once the scope is known. Appliance repair companies use the same split for parts-dependent jobs. Give each service type a duration from your own history, set near the longer end, and leave the drive to the next job visible rather than hidden in the block.

How should a plumbing company handle emergency calls without bumping customers?

Reserve emergency capacity each day in the areas that generate most emergencies, and release it to flexible work at a set time if it goes unused. Bumping planned work should be the fallback, not the plan.

Is route optimization enough for a plumbing company?

Route optimization reorders jobs that are already booked. It cannot fix a slot that was promised when the drive did not fit. The difference is covered in route optimization vs feasible scheduling.

See your own day on it

CrewLink builds live travel time into availability, so the only slots it offers are ones a crew can physically reach. Walk through it with your own territory and service times — not a demo account.

Book a walkthrough