Junk Hauling Software: Dispatch Trucks and Time Windows With AI

Coding Liquids tutorial cover featuring Sagnik Bhattacharya for Junk Hauling Software: Dispatch Trucks and Time Windows With AI.
Coding Liquids tutorial cover featuring Sagnik Bhattacharya for Junk Hauling Software: Dispatch Trucks and Time Windows With AI.

Write the rules before you touch any software: window length, minutes per job by load size, truck capacity, when a dump run is forced, and when a same-day job is declined. Put the rules your dispatch software supports into it, give the rest to an AI assistant as written constraints, and check every proposed day against them before texting customers.

Jobber's route optimisation article says nothing about truck capacity or dump stops, and a day that looks tidy on a map can still send a full truck to the next job. An assistant is good at turning a pile of requests into a first draft of a day. The rules are what make that draft safe to send.

Follow me on Instagram@sagnikteaches

Rule 1: a window length you can keep on a bad day

Customers want a window, not a time, and you want one you will actually meet. Two hours is a sensible starting point for junk removal, and a one-hour window is only realistic if the previous job rarely overruns. Choose the length from your own lateness: for two weeks, record minutes late against the planned start for every job, then set the window so that nearly all arrivals fall inside it. A window you miss one day in four teaches customers to distrust all of them.

Connect on LinkedInSagnik Bhattacharya

Jobber supports this directly. The default is no window; you set one under Settings, Work Settings, Arrival Window, in lengths from 15 minutes to 4 hours, and choose between "Add window after start time" and the option that centres the window on the start time. You can override it job by job. The client sees the window in the client hub, in the booking confirmation and in visit reminders, and the message templates carry an {{ARRIVAL_WINDOW}} variable. Two limits matter: a window cannot be added to a job set as "anytime" or "schedule later", and it belongs to the job, so every visit of that job shares it. Jobber's help describes arrival windows as available on select plans, so check yours before you design around it.

Subscribe on YouTube@sagnikteaches

Use a fixed grid so customers and crews learn it: 8 to 10, 10 to 12, 12 to 2 and 2 to 4. Then work backwards from the dump's last arrival to find the last start you can honestly promise. If the dump takes its last arrival at 4 pm and sits 15 minutes from the job, a 45-minute job must start by 3 pm (16:00 minus 15 minutes of driving minus 45 on site). A 2 to 4 window then promises two hours of which you can only ever use the first. Close the last window at 3 pm instead, and say so on the booking page.

The Complete Excel Course with AI Integration thumbnail

The Complete Excel Course with AI Integration

From formulas and pivot tables to Power Query, DAX, VBA and AI with Copilot, ChatGPT and Claude — hands-on from the first lesson.

By Sagnik Bhattacharya and Virginia Thorn, Primetime Emmy Award winner

Buy now

Rule 2: job minutes from load size, stairs and heavy items

A schedule is only as good as its job durations, and "an hour each" is how a day collapses. Junk removal has a convenient unit: the fraction of the truck a load will fill, which you already estimate when you quote. Turn each fraction into a number of fill units (a quarter of the truck is one unit) and give each size a base time. Then add the modifiers that you know blow jobs out.

Load estimateFill unitsOn-site minutes
A quarter of the truck130
Half245
Three quarters360
Full truck480
Add for stairs or a long carry+10
Add for a heavy item that needs both crew (safe, piano, hot tub)+15
Add for sorting into donate, recycle and dump+10

These are starting values, not facts about your business. Time your next 20 jobs and replace each figure with your own. A three-quarter load with stairs is then 60 + 10 = 70 minutes, which is the figure the worked day uses for its third job. The load estimate itself comes from the quote, and quoting junk removal from photos by truck load explains how to get it before the crew leaves.

Rule 3: capacity, and when a dump run is forced

The truck holds four units. Every job adds its units to a running fill, and the dump rule is simple enough to put on a card in the cab: if the fill plus the next job's units would be more than four, go to the dump first. A full truck always goes to the dump before the next job. Nothing is left loaded overnight.

Write the dump parameters down with the same care as job times. The ones that matter are the handling time at the dump (queue plus unloading), the drive from each zone to the dump, and the last arrival the dump accepts. The worked day below assumes 25 minutes of handling and a last arrival at 4 pm, because the site shuts at 4.30 pm. Your numbers will differ; the discipline of having them in a rules block is the point.

Volume is not the only limit. Wet material, soil, concrete and metal reach the weight limit of a truck before they fill it. Add a rule such as "a load flagged heavy counts as double its units", and let the quote flag it.

Rule 4: a yes-or-no test for same-day inserts

A call at 11.40 am asking for a pick-up this afternoon is where schedules go wrong, because the dispatcher is tempted to say yes and fix it later. Replace the temptation with a test. Accept the job only if every one of these is true:

  1. No existing customer's window is broken by it.
  2. The fill never exceeds four units, counting any extra dump run the insert forces.
  3. The last dump arrival still falls before the dump's cut-off.
  4. The crew still finishes inside the shift, including the return to the depot.

If the day with the most room (usually the lighter truck) passes all four, accept and rebook the windows. If not, decline politely and offer the first window tomorrow. Declining is a valid answer, and a clear "tomorrow at 8 to 10" is better received than a "yes" followed by a late call.

What the software does with those rules

Dispatch software handles some of this well and none of it completely. As of October 2026, here is what the vendors' own pages say about the parts that matter to a junk hauler.

ToolTime windowsRoute orderingCapacity and dump stopsCost note
JobberArrival windows from 15 minutes to 4 hours, set per job; not on "anytime" or "schedule later" jobs; select plansRoute optimisation reorders only anytime visits, up to 7 days at once, run by admins on the web; Connect, Grow and PlusNot mentioned in the route optimisation articlePlan prices are on its pricing page; Connect from $99 a month on annual billing
Housecall ProNot listed in the plan features on its pricing pageEssentials: routes that group and sequence jobs to cut drive time; Max: one-click reorder by real drive time and live trafficNot listedAnnual billing: Basic $59, Essentials $149, Max $299 a month
RoutificRoutes are optimised "with time windows, capacities and driver shifts"Built for route optimisationCapacities supported, per its pageFree up to 100 orders a month; $150 flat a month from 101 to 1,000, priced by orders delivered rather than by driver
Spreadsheet with an AI assistantWhatever you write in the rulesWhatever the assistant proposes and you checkYour running-fill columnThe cost of the assistant plan you already have

Read the Jobber row together with its two help articles and a pattern appears. A visit with an arrival window has a start time, and the optimiser reorders only visits with no start time. So if you promise windows, as you should, the optimiser mainly helps with flexible visits, and you sequence the windowed jobs yourself. That makes the written rules more useful, not less.

A practical split for a small fleet is to let Jobber or Housecall Pro hold customers, bookings, windows and customer texts, and to use a sheet and an assistant for the fill ledger and dump runs. Once you run three or more trucks, or planning tomorrow takes you more than an hour, test a route optimiser that explicitly handles capacities and time windows against a real week of your jobs before paying. Jobber's setup for this trade is covered in Jobber for junk removal, and the wider question of AI in scheduling is in AI job scheduling and dispatch for field service teams. Vendor pages for these tools: Jobber's route optimisation article and Routific's pricing page.

A worked day: one truck, six jobs, three dump runs

All the figures here are illustrative. The truck holds four units and runs from 08:00 to 17:00 with a 30-minute lunch. The dump takes 25 minutes of queueing and unloading per visit and accepts its last arrival at 16:00. Drive times in minutes: from the depot to the north, central and south zones 20, 15 and 25; north to central 15, central to south 15, north to south 30; between two jobs in the same zone 5. From the dump: north 20, central 10, south 15, depot 15. Here are the six bookings.

JobZoneWindowLoadFill unitsOn-site minutes
J1North08:00 to 10:00Half245
J2North08:00 to 10:00Quarter130
J3Central10:00 to 12:00Three quarters, stairs370
J4Central12:00 to 14:00Quarter130
J5South12:00 to 14:00Half245
J6South14:00 to 15:00Half245
Total11265

Eleven units is two and three quarter truckloads, so there must be at least three dump runs, the last one as the shift finishes. Here is the day built by hand, with the fill after each step.

StepArriveLeaveWindowFill afterNote
J208:2008:5008:00 to 10:001Depot to north, 20 minutes
J108:5509:4008:00 to 10:003Same zone, 5 minutes
Dump10:0010:250Forced: J3 needs 3 units and 3 + 3 is more than 4
J310:3511:4510:00 to 12:003Stairs, 70 minutes
J412:0012:3012:00 to 14:004Reached the street at 11:50 and waited 10 minutes for the window; truck now full
Lunch12:3013:004Thirty minutes
Dump13:1013:350A full truck dumps before the next job
J513:5014:3512:00 to 14:002Only 10 minutes before its window closes
J614:4015:2514:00 to 15:00420 minutes inside its window
Dump15:4016:050Last arrival is 16:00, so 20 minutes to spare
Depot16:200Shift ends at 17:00

Add the day up so you know what it holds. On site: 265 minutes. Driving: 120. Dump handling: 3 × 25 = 75. Waiting for a window: 10. Lunch: 30. That is 500 minutes, or 8 hours 20 minutes, and 08:00 plus 8 hours 20 minutes is 16:20, which matches the table. The three dump runs, counting the driving to and from the dump, take 55 + 50 + 55 = 160 minutes, about a third of the whole day, and only 265 of the 500 minutes (53 percent) are spent loading. That ratio is why dump runs deserve their own rule.

Every window is met, but J5 has only ten minutes of margin, because it sits behind a lunch break and a dump run. The plan is correct and brittle: if J4 or the lunch slips by more than ten minutes, J5's window is broken. A good scheduler notices that and takes lunch later or lets J5 go first. Asking the assistant to list every job with less than 15 minutes of margin is a cheap way to find these weak points.

The rules prompt for an AI scheduling assistant

Now give the same jobs to an assistant, with the rules written as hard constraints. Two details make the answer checkable: it must show a running fill and a clock for every row, and it must list what it could not satisfy instead of quietly bending a rule.

You are a dispatcher for a junk removal company with one truck. Build tomorrow's schedule.
HARD RULES (never break; if impossible, say so and list what you could not do):
1. Truck capacity 4 fill units. Before any job, if running fill + job units > 4, go to the dump first.
   A full truck dumps before the next job. End the day empty.
2. Arrival must be inside the job's window. Arriving early means waiting until the window opens.
3. Each dump visit takes 25 minutes at the dump, plus the drive. The dump accepts its last arrival at 16:00.
4. Lunch: 30 minutes, between 12:00 and 14:00.
5. Shift 08:00 to 17:00, starting and ending at the depot.
DRIVE MINUTES: depot to North 20, Central 15, South 25; North-Central 15; Central-South 15;
North-South 30; same zone 5. Dump to North 20, Central 10, South 15, depot 15.
JOBS (id, zone, window, fill units, on-site minutes):
J1 North 08:00-10:00 2 45 | J2 North 08:00-10:00 1 30 | J3 Central 10:00-12:00 3 70
J4 Central 12:00-14:00 1 30 | J5 South 12:00-14:00 2 45 | J6 South 14:00-15:00 2 45
OUTPUT: a table with columns Step, Arrive, Leave, Window, Running fill, Margin to window close.
Then list any job with under 15 minutes of margin, and the total of on-site minutes.

A first reply can look convincing and still be wrong. This one is illustrative: I built it to show the kinds of slip worth looking for.

StepArriveLeaveWindowRunning fill
J208:2008:5008:00 to 10:001
J108:5509:4008:00 to 10:003
J310:0011:1010:00 to 12:006
Dump11:2011:300
J411:4012:1012:00 to 14:001
J512:2513:1012:00 to 14:003
Dump13:2513:350
Lunch13:3514:050
J614:2015:0514:00 to 15:002
Dump15:2015:300
Depot15:45

Three faults, each visible in one column. The running fill after J3 is 6, so the truck carried one and a half loads, because the dump between J1 and J3 is missing. J4 arrives at 11:40, twenty minutes before its window opens. And each dump block lasts 10 minutes (11:20 to 11:30) instead of the 25 in rule 3, which is the main reason the day ends at 15:45 when the honest figure is 16:20. Those 35 minutes are exactly the sort of optimism that makes a crew late for the last customer. Send the table back with the three faults quoted and ask for a corrected version, then audit that one the same way. If it still breaks a rule, state the rule earlier or more plainly in the prompt.

Check any AI-built day in five minutes

You do not need to trust the assistant if you can audit it faster than you could have scheduled the day. These six checks take about five minutes and work on any proposed schedule, whether it came from an assistant, a colleague or a tool.

  1. Read down the fill column. It must never exceed four, it must drop to zero at every dump, and it must end at zero.
  2. Compare every arrival with its window. No arrival before the window opens unless the plan shows waiting time, and none after it closes.
  3. Time every dump block. Arrival to leave must equal the handling time in your rules, and the last arrival must be before the cut-off.
  4. Spot-check three drive legs against your drive-minutes table.
  5. Sum the on-site minutes and compare with the job list. Here: 45 + 30 + 70 + 30 + 45 + 45 = 265. A different total means a job was shortened or dropped.
  6. Check the end. Lunch taken, truck empty, back at the depot before the shift ends.

If the plan fails any check, quote the failed line back and ask for a corrected table. If it fails the same check twice, schedule that part by hand.

The 11:40 phone call: testing a same-day insert

At 11:40 a customer rings and wants a half-truck collected this afternoon in the central zone (call it J7: 2 units, 45 minutes, any time from 12:00). The truck is on J3 and the plan above is already running. Ask an assistant and it may well suggest the end of the day: "after the last dump, arrive 16:15, finish 17:00". Run the four tests from rule 4.

  • Windows: J7 is flexible, so no window is broken. Pass.
  • Capacity: the truck leaves the last dump empty and J7 puts 2 units on, so the fill is fine, but the truck then holds a load at 17:00 and the dump closed at 16:30. It would end the day loaded, which breaks rule 1. Fail.
  • Dump cut-off: the load cannot be dumped before the 16:00 last arrival. Fail.
  • Shift: it finishes at 17:00 before any return to the depot. Fail.

Look for a gap earlier in the day and there is none. After the 13:35 dump, J7 at 13:45 to 14:30 would delay J5 to 14:45, outside its window, which ends at 14:00. The test result is a no, and that is a perfectly good outcome. Offer the customer tomorrow's first window, or move the job to a second truck if you run one and it passes all four tests. A message you can send: "Hi [first name], we can't safely fit you in this afternoon, but we can be with you tomorrow between 8 and 10. Shall I book that?"

Three customer texts that keep a window honest

A window is a promise, and the messages around it are what make it feel kept. Jobber's booking confirmation and visit reminder templates carry the window through the {{ARRIVAL_WINDOW}} variable, so the customer sees the same range you booked. Three short messages cover most of a day, and an assistant can adapt the wording to your voice if you give it these as examples.

  • Booking: "Hi [first name], you're booked for [day], arriving between [window]. Please have everything in one place and tell us about stairs, heavy items or anything we should not take. [your name]"
  • Heads-up: sent when the crew leaves the previous job. "Hi [first name], we're about 30 minutes away. Reply here if the access has changed. [your name]"
  • Running late: sent the moment the plan will miss a window. "Hi [first name], the job before yours is taking longer than planned. We now expect to reach you at [new time]. If that doesn't work, reply and we'll rebook. [your name]"

The third text is the one most firms skip, and it is the cheapest piece of reputation protection in the list. A late arrival that was announced twenty minutes ahead is a minor irritation. An unannounced one is a one-star review.

Review the week with four numbers

The rules are guesses until you have measured them against real days. At the end of each week, paste the crew's log into an assistant, or into a sheet, and compute four numbers.

MeasureHow to get itWhat a bad number tells you
Windows metJobs arrived inside the window divided by jobsWindows are too short, or job minutes are too low
Units per dump runTotal fill units divided by dump runs. The worked day: 11 units over 3 runs is 3.7 of 4Far below capacity means dumps are wasting time; at 4 every run is full
Minutes per dump runLeave-job to leave-dump, from the logHigher than your rule means the handling time is wrong
Overtime minutesFinish time minus shift end, summedDays are overbooked or inserts are being accepted too freely

After two or three weeks the numbers tell you which rule to change. If windows are missed mostly on days with stairs, raise the stairs modifier from 10 to 15 minutes. If every dump run takes 40 minutes against a 25-minute rule, change the rule and the schedules fix themselves. Keep the rules block in one document with a date on it, so the assistant always works from the current version. For the same discipline applied to a bigger fleet, see AI route planning for small delivery fleets and mobile teams, and for a closely related one-vehicle business, quoting from photos and planning the day for a man and van.

Junk removal dispatch: questions about windows and dump runs

How long should a dump run take in my schedule?

Measure it rather than guess. For the next ten runs, note the time from leaving the last job to leaving the dump, then plan with a figure near the slowest of the ten, not the average, because a schedule built on averages runs late half the time. Keep the drive from the dump to the next job as a separate figure, since it changes with the next stop. Review it monthly, as queues change with the season.

Can a spreadsheet replace paid dispatch software?

For one or two trucks, yes. A sheet with a row per stop, a running-fill column and a clock column does what the worked example needs, and an AI assistant can fill it from your rules. What you lose is customer texts, live crew positions and photo records. Many owners start with the sheet, learn their rules properly, then buy software with that list in hand.

What should the crew do if the customer is not ready?

Decide the rule in advance and put it in the booking text: wait up to ten minutes, ring the customer, then either start if the items are accessible or move to the next job and offer a later slot. Do not leave it to the crew to improvise at the door. Log each case, because a pattern of unready customers is a reason to shorten windows or charge for waiting time.

Does an AI assistant know what the dump will refuse?

No. Paint, chemicals, tyres, gas cylinders, appliances with refrigerant and electronics are commonly restricted or charged differently, and the rules depend on your disposal site and local regulations. Keep a refused-items list from your own sites and put it in the rules block, so the assistant flags those jobs for a person instead of scheduling them like any other.

Further reads

Sources: Jobber help articles (route optimisation on the New Schedule, Arrival Windows), Routific and Housecall Pro pricing pages, read in October 2026; all schedule times and figures in the worked day are illustrative.

Want your dispatch rules written down and tested?

On a 1:1 call we'll put your window, load and dump-run rules into a form an AI assistant can follow, test them on a real week of jobs, and decide what your dispatch software should handle.

Book a 1:1 call with me