Home ยป Blog ยป ServiceTitan Capacity Planning: How to Stop Booking Jobs Off the Dispatch Board
Pixel art of a dispatcher at a wall-mounted widescreen viewing an abstract capacity board of colored time blocks, with two service vans waiting outside the window.

ServiceTitan Capacity Planning: How to Stop Booking Jobs Off the Dispatch Board

Here's the most common way I see CSRs find an open time for a customer. They keep the dispatch board open on a second screen, and while the customer is on the phone, they flip through it by eye. How about today at 4? Okay, tomorrow at 2? Can't do Saturday. Monday at 3, got it. It works, kind of. But it's slow, and it puts way too much on your CSR. You're asking them to eyeball drive time, tech skill, and where every job sits on the board, all while carrying on a conversation. Stuff gets dropped, and you end up with a messy, inefficient board.

ServiceTitan has two better ways to do this: Schedule Assistant and capacity planning. Which one you should use depends on how your team is set up. I'll walk through both, but first you need to get a few things in place, because neither one works without them.

Set up the foundation first

Both Schedule Assistant and capacity planning lean on the same three building blocks: technician shifts, arrival windows, and zones. If these aren't set up right, you'll either get no availability at all or availability you can't trust. So start here.

Technician shifts

Shifts tell the system when each tech is actually working. They're technically optional, but I recommend almost everybody use them, because so many other features depend on them. Schedule Assistant needs shifts. Capacity planning needs shifts. And here's the gotcha that catches people: if you turn shifts on but don't actually create any, your capacity shows as zero. The feature isn't broken. You just told it nobody's working.

You set shifts up under the Schedule tab, on the Technician Shifts page. You've got working shifts, on-call shifts, and time-off shifts. One thing worth knowing about time off. If you build a time-off shift, the tech won't show up in Schedule Assistant or capacity planning, which is good. But if a CSR tries to book on them straight from the call screen, they won't get any warning. A lot of people drop a non-job event on the board instead, because that does throw a warning. Honestly, this is one of the few spots where I'd skip the technically correct way and just use the non-job event. It's safer and you can do it right from the board.

Arrival windows (and why they're not business hours)

An arrival window is what you promise the customer. We'll be there between 10 and 2. You set your default windows under Operations, then Arrival Windows, and those become the presets your CSR picks from when booking. I'll be honest, arrival windows are more confusing than they need to be, and here's why. ServiceTitan also has a separate setting called business hours that looks almost identical. People assume they're the same thing. They're not.

Business hours mostly just control one thing: the warning a CSR gets if they try to book outside your hours. That's it. It catches the oops, I picked 10pm instead of 10am mistake. Arrival windows are the customer-facing promise that feeds Schedule Assistant and capacity planning. My advice is simple. If you tell customers anything about when you're showing up, set up arrival windows and turn on the option to display them. Leave business hours alone if they're already set. There's no reason to mess with them.

One more thing that trips people up. Your jobs don't slot perfectly into those two-hour windows. What you really have is a pool of available hours. Capacity planning isn't boxed in by the window edges. It just looks for enough continuous open time for the job to start inside the window. So a one-hour job sitting in your 8-to-10 slot still leaves room for another job to start in that same window.

Zones

Zones group your service areas. Some companies do primary, secondary, and tertiary. Some do north, south, east, west. It's up to you. I recommend setting them up because zones feed Schedule Assistant, capacity planning, Dispatch Pro, and Scheduling Pro. You build them under Settings, Operations, Zones, usually by zip code since that's more precise than going by city. You can also assign techs to specific zones from their profile, so a tech who only works the north side only gets offered for north-side jobs.

There's a gated feature called Limit Jobs and Locations to be Within Zones that stops CSRs from booking outside your zones entirely. Support has to turn it on. Just be careful if you do. You have to actually enter every zip code you serve, or your CSRs won't be able to book those jobs and you'll cost yourself work.

Schedule Assistant: best when CSRs and dispatchers are the same people

If the same person books the call and runs the board, Schedule Assistant is the one I'd use. It's a gated feature, so you can't flip it on yourself. You'll have to ask support or your CSM. You also need tech home addresses set on their profiles, because Schedule Assistant assumes techs drive from home to their first call. If they actually leave from the office, just put the office as their home address.

Once it's on, you fill in the business unit and job type on the call screen, then hit Schedule Assistant. You tell it your date range, up to 21 days out, plus any customer preferences like mornings or a specific tech. By default the range is capped at seven days, but you can ask support to bump it to 21. Little pro tip there. Then it hands you the best options, sorted by driving efficiency. The top one adds the least drive time to a tech's day, and it shows you the breakdown so you can see exactly where the job fits in their route. If that slot doesn't work for the customer, you scroll down to the next most efficient option. Most of the time you want driving efficiency. The only reason to sort by first available is an emergency or a high-value job where you'll trade some drive time to get there fast.

Adaptive Capacity Planning: best when CSRs and dispatchers are separate

If your CSRs and dispatchers are different roles, capacity planning is the better fit. The current version is Adaptive Capacity Planning, which replaced the old Adjustable Capacity Planning. It's more powerful, but it's also more complex. If you just onboarded and you've already got a lot on your plate, I'd start with Schedule Assistant and come back to this later. If you've been on ServiceTitan a while and you're ready to tighten up dispatching, this is a solid project to take on.

The whole point is to balance customer demand against tech availability. Instead of asking your CSR to do all that math on the fly, you do the strategy on the back end. Then when the CSR clicks Get Adaptive Availability on the call screen, they only see the slots that fit your plan. That's the real win. You're not crossing your fingers that a human can run a complex strategy mid-conversation. You let the computer do it.

Strategic rules

Rules are where this gets useful. Let's say you're an HVAC company and summer's coming. You've still got maintenances to finish, but the emergency AC calls are starting. You can build a rule that only books maintenances in the first half of the day, so the afternoon stays open for demand calls. Now you keep working through maintenances without having to call customers back and bail on them. You set these up under Settings, Adaptive Capacity and Settings, on the Strategic Rules tab. You name the rule, give it a date range so it turns itself off when the season ends, set your conditions, then apply a multiplier. A multiplier of zero takes all the capacity away for those conditions. And when two rules overlap, the most restrictive one wins.

The gotchas that'll trip you up

A couple of settings matter more than they look. The availability threshold adds buffer time to every job for the capacity math only. So if you set 30 minutes, the system treats each job as half an hour longer to account for drive time. Useful for not overbooking. Just know it applies to the last job of the day too, so a 4-to-6 job with a 30-minute buffer pushes past a 6pm shift end and won't get offered.

The bigger one is the business unit setting. Techs can only sit in one business unit, but plenty of them do crossover work. If you've got techs working across business units, turn off the option to include business units in the availability calculation. Now it goes purely on skills. The catch is your skills have to be right. The right skill tied to the right job type, and tied to the right techs. And if a job type has no skills assigned at all, the system assumes any tech can do it, which is why you'll sometimes see a job type showing way more hours than it should.

Last one. Sometimes the capacity report shows open hours but the call screen offers nothing. That usually means the open time is fragmented. Four separate 30-minute gaps between jobs add up to two hours on the report, but you can't drop a two-hour job into them because the time isn't continuous. The report counts it. The booking screen can't use it.

So which one do you actually pick?

If one person books and dispatches, use Schedule Assistant. If those are separate roles, go with Adaptive Capacity Planning. Either way, get your shifts, arrival windows, and zones set up first, because both methods fall apart without them. And if capacity planning feels like a lot the first time through, that's normal. It's a feature that clicks once you actually start using it, not just reading about it.

If this was useful, the guide goes much deeper. It's searchable video lessons covering scheduling, dispatching, capacity planning, and every other part of ServiceTitan, built for every role on your team. You can check it out here: Blue Collar Nerd Ultimate ServiceTitan Guide.

Table of Contents

ServiceTitan Mastery For Your Whole Team

Searchable video lessons, role-based modules, and a private community โ€” everything your team needs to actually use ServiceTitan with confidence.

See Pricing →