Book More Efficiently With Adaptive Capacity

Richard Coburg walks through ServiceTitan's adaptive capacity planning, which matches technician availability to customer demand. It determines availability by business hours, technician shifts, and arrival windows, then uses skills and zones to filter who can take each job. You can set strategic rules with multipliers, adjust capacity per time slot, and see breakdowns by day, week, or team.
What's going on, everybody? It's Richard Coburg at hey, the Blue Collar Nerd. And in this video, we're going to be talking about adaptive capacity planning. So if you're familiar with adjustable capacity planning, this is the new version of that. Now, the basic premise behind capacity planning is to help your CSRs and dispatchers schedule jobs more optimally by balancing customer demand with technician availability and ensuring that high priority jobs get scheduled. And now adaptive capacity planning is bringing some new features to the table, like enhanced capacity reporting and and automatic capacity adjustments based on strategic rules. For example, let's say you were an H Vac company. You still have some maintenances to get through, but it's starting to get warm as you move towards summer and so you're starting to get a few demand calls. People calling in with broken air conditioners. Well, using adaptive capacity planning, you could set up a strategic rule that says, hey, from this date until this date, my last two arrival windows of the day don't allow any booking of maintenance in those arrival windows. I only want my maintenances booked in the first half of the day so that the second half of the day is open for any demand calls that come in, thus allowing you to continue getting your maintenances done while ensuring that you're not going to miss out on those demand calls. So if we're going to be setting up adaptive capacity planning, the first thing that we need to do is understand how our time frame configuration is going to be set up. If you are not using arrival windows or technician shifts, then business hours are going to be used to determine your basic availability window. If you're just using business hours, then it's assumed that all techs are available during all business hours. If we are using technician shifts, then those will be used in our availability calculations. That's going to give us more precise control over our availability because we're able to specify certain technician shifts and we have regular shifts on call shifts, overnight and time off shifts. So instead of all techs being assumed to be available all business hours, we can say this tech is working this shift, but this tech is working that that shift and this tech is off right now. It's important to note though, if you have the technician shifts feature turned on, then you have to actually set up technician shifts. If there's no shifts made, then capacity is going to show a zero. Okay? And then on top of technician shifts, we can use arrival windows. So arrival windows and technician shifts can be used congruently. But if both of those are off, then we default to business hours and arrival windows allow us to create structured time slots for our job bookings. The advice I typically give is that if you offer your customers a time slot verbally, if you say will be there between 10 and 2, then you should be using the arrival windows feature in Servicetitan. Now, some important notes with how adaptive capacity planning interacts with arrival windows. Jobs are allowed to span between multiple arrival windows, so the system is just looking for continuous time. It is not restricted by the arrival window boundary. For example, let's say I have arrival windows of 8 to 10 and 10 to 12. Well, if I book something in my 8 to 10, but the job length is only one hour, then that means a second job can still start within that time window. So it can start at 9 o', clock, and as long as there's no other job on the other side of that blocking it, then I can put another job there that starts at 9 and spans to, let's say, 12. And you're also optionally able to use skills and zones to get even more specific about which technicians can perform which jobs. For example, you could say, don't consider my technician Mike as available for a water heater install job, even if he technically has hours available if he doesn't have the water heater installation skill. Or you could say, if my technician Mike is assigned to zone A, then don't consider him available for jobs in zone B. Now, before we get too in the weeds with the reporting and strategic rules and all of that stuff, let me show you the end result. Let me show you what we're doing this for. So when the CSR is on the call screen, they can select their job type and business unit like always. But now, instead of doing something crazy like manually flipping through the dispatch board to try and find openings, they can click this button that says get adaptive availability. And then we're going to get this window showing all of our availability availability, taking into account our technician shifts, the jobs that are already on the board, and any strategic rules that we've set up or even manual adjustments that we've made to take capacity away or even add extra capacity. So all of this complex strategizing, it's already been done on the back end. We don't need to count on our CSR or our dispatcher doing that on the fly, while potentially like trying to carry on a conversation with a customer, that's really hard to do. Instead, we can feel confident that the only windows being offered are going to be good options for us. So we see here that we have a skill filter automatically applied. That's because the job type that I chose requires the skill H Vac maintenance. We could also manually filter for a certain technician if we wanted to see if a particular tech had availability. And. And we can filter for zones either manually or automatically based on the technician zones that's available in the settings. We'll get to it later. Okay, now let me show you the enhanced capacity reporting. So to get to that, we're gonna go to the schedule tab. This is also where we set up technician shifts, by the way, in case you're unfamiliar. And that's also where we have our capacity reporting. So we have both a daily and weekly view available. And we are also able to adjust the hierarchy of how we are viewing this report. So. So we have a primary, secondary, and tertiary available to us. So right now I have mine set up as the primary being job type and secondary being technician. Meaning here are my job types, and if I expand them, there are my technicians. Okay, so for the job type, no cool. Here I have 28 hours available out of 30 total possible hours. And if I were to expand that, I can see how that breaks down by technician. So I'm on the weekly view here. So on Sunday, Adam has 10 out of 10, Mike has 10 out of 10, and Richard has only 8 out of 10. So he's got something booked. But let's now change how this hierarchy is set up. So I'll click on this little settings cog here. I see this preview of what we've got. So job type into technician. I'm going to delete everything, or not everything. I'm going to delete the secondary level so that I'm left with just the primary. And now let's say I want my primary to be business unit, and then I can say add level. And maybe I want my secondary to be job type. And then let's even add our tertiary level and I'll make technician my tertiary. Okay. And now you can see it's broken out that way. So business unit is our main level here. So our H VAC sales business unit has 16 hours out of 20 possible hours available. I can then expand that and see the job types within it. So this one just has H Vac estimate one job type, and then I can expand that to see that broken out by technicians. So David and Harry are my two technicians who could potentially do H Vac estimate jobs. Now you might notice for some of these, we have this red line and like a parentheses with a subtracted number that's to imply that there's been some sort of negative adjustment to the capacity. Let me switch to my daily view here. So I currently have a strategic rule set up. We'll get into strategic rules later. But I've got one set up that is taking away some, but not all of the capacity available for the membership cooling visit job type in my first two arrival windows of the day, and it is taking away 50% capacity. So it's taking away two hours out of the four total. So every technician is having one of their two total available hours removed. Now, if you're brand new to capacity planning, now's about the time where you're probably feeling a little bit confused. I want to go ahead and like, validate that. That's normal. There's a bit of a learning curve here. All right, now let's move into strategic rules. So to get there, I'm going to go into settings, adaptive capacity settings. We've got two tabs here, one for settings and one for strategic rules. We'll get to the settings in a moment. Let me start with strategic rules. So here I have a rule already set up. That's why you were seeing that red line with the red negative number. Taking away some capacity for that maintenance job type before. But let me actually deactivate that for now and start from fresh. So I'll say create rule here. So let's go with that example that I gave at the beginning of this video. We're an H Vac company. It's starting to get hot, but we still have maintenance to do. So we want to do all of our maintenance in the first half of the day to leave the second half of the day open for demand calls that might come in throughout the day. So it's up to you how you want to call that. I'll call it End of Spring. You can put in a description if you want. It's probably a good idea because the description is for you after you eventually disable this and maybe you want to use it again next year, but you forgot what end of spring does. It would be helpful to have a description there. Okay. We're then able to choose do we want this rule to be ongoing until we turn it off, or do we want to set it up for a particular date range? Again, up to you. In this example, if I were to go with ongoing, that's fine, but that means I have to remember to come in here and turn it off. If I wanted it to be more automated, I would set up a date range so I could say from Tomorrow until maybe the end of May, I want this rule to be applied. Okay, so now I can set up my conditions. So my conditions can be date and time based as well as business unit, job type, tech and zone. So for this example, it's my last two arrival windows of the day that I'm trying to leave open for demand calls. So I'm going to say if right now it's set to weekday, but I'm going to click the dropdown and I'm going to say if arrival window contains and I'm going to say my last two, which is two to four or four to six. Okay, end. Now this is an end statement here, but not an or. So it has to match this criteria as well as this criteria, not either or. So I'm going to say and if job type contains membership cooling visit. In this example account, that's the only maintenance job type. If you had multiple though, you could add them all. Or if you had a specific maintenance business unit, you could do it by business unit as well. For me though, I'm doing it by job type. Okay, and then we need to select our multiplier. So this means we're going to take the total available hours and multiply it by this percentage expressed as a decimal. So If I had two hours of raw capacity and I selected 50%, that's two times 0.5, which is one. So we're removing 50% of the capacity. So I don't want any membership cooling visits booked in these arrival windows. So I'm going to say zero, because two times zero is zero, it's going to take away all of the capacity. So for this particular job type. But if we're using one of these percentages, though, keep in mind how I described that adaptive capacity planning is looking for can I start a job in this arrival window and is there room on the other end? So if a technician has two hours of capacity within the eight to 10 arrival window and I say, okay, take away 50% now, they still have one hour of capacity there. Which means if my membership cooling visit is a two hour job type, it can still start in that arrival window with that one hour of capacity, as long as there's not a job on the other side blocking it. This concept of hours not limited by the arrival windows can be difficult to wrap your head around. At least I'm speaking from my own experience, so it's hard for me to wrap my head around. Your mileage may vary, but for me I think that we in the industry tend to think about Our dispatch board broken up into these kind of chunks, into these two hour arrival windows or whatever. And every chunk is a slot where a job perfectly slips in. But that's not really true, right? Like you might choose to put your jobs on the board that way. But then look at those blue lines that demonstrate like what actually happened when the tech like arrived to the job to when they closed the job. They don't perfectly line up with those job bubbles. They probably cross into other arrival windows and all sorts of stuff. So our dispatch board isn't truly just like this cake with like five or six slices. It's a pool of hours. But anyways, again in this example it's less complicated than that because we're just going with zero. We're not booking any membership cooling visits within those arrival windows. Okay, so now I'll go ahead and say create rule. Okay, so now let's first take a look at that on our report. So I'll go back to schedule and capacity reporting and under my maintenance business unit I'll go ahead and expand that. I actually do have a second job type under that business unit, so I really should add that into my rule. So easy enough. I'll just say edit that was essay quarterly inspection and save rule. Cool, let me go back in there. The rule starts tomorrow, the 21st. Expand that again and there we go. So now both of those job types have zero out of four hours available. That's for my two to four and my four to six. I have to scroll over to C. So let me click that and same thing over there. Zero out of four. So we have two possible technicians. You have two potential hours, but we've taken both of them away. Okay, so what does that mean in practice? Let's go to our call booking screen. We're going to try and book a membership cooling visit. We're going to get our adaptive capacity and we're going to go to all available here because I want to start with tomorrow. That's when my rule starts. And you'll see I only have 8 to 10 and 10 to 12 available. I cannot book those later two time slots, they just don't show up. However, let's say that this was a no cool call. Now if I say get adaptive capacity and I go look at tomorrow, now those last two time slots are showing up. I'm allowed to book a no cool call. I'm just not allowed to book a maintenance. So tons of possibilities with strategic rules but super, super useful stuff. By the way, if you do have multiple rules that Overlap in some way, the most restrictive rule is always going to win. So, for example, let's say you've built a rule for a business unit and then another rule for a technician who is in that business unit. The business unit threshold is set at 120%, but the technician's threshold for that exact same time period is set at 50%. Well, in that case, when you're booking a job that's in the business unit and that technician is eligible to do that job, then the 50% multiplier is going to be used, not the 120%. Right. Because there's two potential rules that could apply there, and the 50% rule is the one that's more restrictive. Now, strategic rules are not the only way we have to manipulate capacity. We can also do it manually. So if we go back to our capacity report here, let's say we were expecting this day to be really, really hot. The hottest day of the year. Well, maybe then we're planning on going all out and we can actually overbook a little. We'll make it work. Maybe we'll see what we got. And some lower priority jobs we'll try and reschedule and see if the customer's okay with it. And if not, we're okay with losing them. Sorry, I need to switch to my daily view. Manual adjustments can only be done from the Daily View because we need to do it by the individual arrival windows. Okay, so Monday the 24th, we're expecting it to be really, really hot. I expand down to my lowest unit, which in this case is technician. And then I can manually hit these plus or minus buttons to add or subtract capacity. So maybe I'm going to add two hours to Adam and Mike's schedules. And I'm doing that within the 8 to 10 arrival window. Okay. And we're seeing how that propagates all the way up. So all the way up at business unit level. Now we have 14 hours available out of 10 because we've added those four. So if I set it up like this, now the system is going to allow me to book two two hour jobs on Adam within the eight to ten timeslot stacked on top of each other. Okay, now finally, let's talk about the adaptive capacity planning settings. So first at the top here we have the availability threshold. So the availability threshold essentially adds buffer to the end of a job duration to allow for drive time. It only does that though. In terms of the calculation, the actual job on the dispatch board is going to show us the same length. So this is set up with 30 minutes. So it's going to take 30 minutes at the tail end of the job length and remove that from capacity. So remember, when adaptive capacity is determining, can a job go here? It's looking at, can it start within this arrival window and then is there enough room, as far as my capacity calculation, is there enough room for the length of this job to fit? So when it's calculating that, it's now essentially adding half an hour to the end of the previous job and the end of this job. So a 2 hour job with a 30 minute threshold needs 2.5 hours of continuous space. So this is essentially a tool to help you prevent overbooking your technicians. If you are confident that your drive times were kind of accounted for already by your arrival windows, then you can just turn this off. And this is going to be a bit of a trial and error thing. So maybe I'll start with it off and say our texts are getting a little bit overbooked. Let's actually set a 30 minute threshold and see how that goes. Another thing to keep in mind with this because this is something that tripped me up when I was trying to learn all of this myself. Because we're looking now for we have this set to 30 minutes. Okay. Now the job as far as adaptive capacity planning is concerned, if we have a two hour job, it actually takes two and a half hours in the eyes of adaptive capacity planning. Anyways, it's taking that half an hour extra and saying, well, we need that for drive time. Now that applies even to the last job of the day. So let's say Charles has a two to four scheduled and now I want to book another two hour job within the four to six time slot. There's actually not enough room in this scenario to do that. Charles is not going to show up as an option because even though we are seeing two hours of space here on the board, it's going to be adding an extra half hour to the end of that. Again, not visually, we won't see that extension but. But in the eyes of the calculation it's adding that half hour. So a two hour job plus half an hour now puts us past the end of Charles's shift. So adaptive capacity plan is going to look at that and say, nope, not enough room. I would need continuous time from 4:00pm until 6:30. Okay, so just something to be mindful of there with this availability threshold. Okay, so next we have our calculation defaults. So do we want to default to include non managed technicians capacity in the availability calculation? That one is exactly what it sounds like. I don't really have anything to add. Default to include all on call technician shifts in availability calculation. On my screen here it says on call overnight shifts, but when you're looking at it, it should just say on call overnight shifts count as normal shifts. And so on call is the only thing that the setting will affect. So if you understand technician shifts, you should also understand that one. If we've got a technician who has an on call shift, does that count as availability or not? Okay. And then default to include zones in availability calculation is whether or not we want the zones that are assigned to the technicians to matter. So in my technician settings, I am able to assign techs to particular zones, and if I only want my technicians working within those zones, then I would toggle that switch on. And then when I say get adaptive capacity, the zone filter is going to be automatically filled out for me to only show me capacity for technicians who are within the zone of this particular job. Okay. Default to include business units in availability calculation. So this setting solves a problem that we used to have with adjustable capacity planning. So with adjustable capacity planning, which is the predecessor to this feature, if you had technicians who worked in more than one business unit, that was problematic. It didn't really work very well for reasons I won't get into, because it doesn't matter anymore because now we have this switch. So with the switch off, the business unit that the technician is assigned to is not going to be considered as a factor when determining if they're available to perform a particular job type. So remember that in Service Titan you can only assign a technician to a single business unit. So typically you're going to assign them to the business unit that they work in most often. But it's fairly common in a lot of companies for there to be some crossover where technicians will work in one business unit, sometimes in a different business unit, other times, if that's the case for you, you'll want to toggle the switch off. And now we're going purely on skills and potentially zones. If we have this toggled on, which is to say if you have techs who work in multiple business units and you have this toggled off, you have to get really specific with your skills. So you have to make sure that all of your job types have skills associated with them, and all of the technicians who you want to be able to perform particular job types have the skills required for those job types. So for example, I have my job type here for H Vac estimate and it requires the H Vac sales skill. So if I have this switch to include business unit in the availability calculation toggled off, then any technician with the H Vac sales skill will be able to perform the H Vac estimate job type regardless of what business unit that technician is assigned to. Whereas if I had this toggled on, the technician would still need to have this skill if I have a skill assigned here. But they would also need to be inside of the H Vac sales business unit, because that's the business unit assigned to this job type. And like I said, it's really important to get specific with your skills if you're going to have that switch off. Because if you have a job type, for example, that doesn't have any skills assigned to it, it's just going to be assumed that any technician can perform that job type. At the same time though, keep in mind that a technician needs all of the skills required for a job type in order to show up as available for that job type. So you don't want to go too crazy either. If a job requires 10 skills, then their technician has to have all 10 of those in order to be donating their hours to that job type. Anyways, once that's set up to where you are no longer accounting for business unit in the availability calculation and you're depending purely on skills and potentially zones, well then you can just use technician specific strategic rules to determine when certain technicians do certain job types versus other job types that they're capable of performing. Now, the last thing I want to call out is a feature that is coming soon, but not yet available as of the time of me recording this video. And that is the deep dive drawer. And, and it's going to show you all of the inputs that are going into each cell. So basically it's going to be making it more transparent how that capacity that you're looking at is being calculated, which should make troubleshooting things a whole lot easier. All right, I know that was a lot. This is a more advanced feature. So if you're new to capacity planning, don't feel too bad if all of that didn't make perfect sense right off the bat. In my opinion, this is one of those things that's really difficult to truly absorb unless you get in there and start doing it. And once you are in there doing it and you run into a question, you, you can revisit this video and hopefully that question will be answered somewhere in here. Even though there is a bit of a learning curve, it is worth it, especially if you do any sort of online booking. This makes sure that that is really accurate and it ensures much more efficient job booking in general. Again, without having to depend on your CSRs or dispatchers manually doing these impossible calculations in their head. Anyways, that's all I got for today. Be sure to hit like if you liked the video and found it valuable, be sure to subscribe to Surface Titan's YouTube channel. If you haven't done that already, hit that Bell icon so that YouTube notifies you anytime we upload a new video. Appreciate it. Peace.
More from Bill

Capturing the 80%: How SmartAC’s Gen-2 Targets Non-Membership Homeowners | Podcast Ep. 296

Build better customer data with every booking in ServiceTitan | TAD Tune-Up Series

The Biggest Change for Roofers Coming From Other Roofing Software to #ServiceTitan?







