You run three physical therapy clinics. Two of your best therapists float between all of them because that is the only way to keep every site staffed for evaluations, manual therapy, and the Medicare Part B caseload that pays the rent. On paper it works. In practice, the schedule is a minefield. Someone books a 2:30 with Dana at the Westside clinic, forgetting Dana is at Eastgate until 2:00 and Eastgate is 22 minutes away in afternoon traffic. Dana walks in at 2:41, sweaty and apologizing, the patient is annoyed, and the 3:00 is now running late too. Multiply that by two floating clinicians, three sites, and a front desk that changes people twice a year, and you have a scheduling problem that no amount of yelling fixes. This is exactly the gap multi-location practice management software is supposed to close, and most tools do not.
The root issue is deceptively small: a 30-minute hole on a shared clinician's calendar is not the same thing as 30 minutes of real availability. Yet almost every booking system treats them as identical. This post is about closing that gap on purpose, with travel time modeled as a hard block and patients routed to the clinic where the therapist actually is.
Why a 30-Minute Gap Is Not the Same as 30 Minutes of Availability
Availability, to a scheduling tool, means an unbooked span longer than a visit slot. That definition is fine for a single-site clinic where the therapist never moves. It falls apart the moment a clinician's day spans two addresses.
Say Marcus finishes a 90-minute block at your Downtown clinic at 12:00 and is due at Northpark at 1:00. Northpark is a 25-minute drive. He needs to close notes, use the restroom, eat something, and drive. Realistically he is not treating until 1:15. But your booking system looks at the raw calendar, sees nothing scheduled between 12:00 and 1:00, and cheerfully offers a 12:15 evaluation at Downtown to a patient calling in. Now Marcus either skips lunch and speeds, or the eval starts 20 minutes late and the whole Downtown afternoon compresses.
The cost is not abstract. A physical therapy no-show or same-day cancel driven by a late or wrong-clinic booking runs roughly 40 to 90 dollars in lost billable time, and a chronically late therapist bleeds one to two visits a day in schedule slippage. Across two floaters and three sites, that is easily 15 to 25 lost or degraded visits a week. At a blended 85 dollars per visit, you are looking at somewhere north of 60,000 dollars a year evaporating into a gap the software insisted was bookable.
The fix starts with a definition change. Real availability equals unbooked time minus travel obligations minus the fixed overhead of switching sites. Until your system computes availability that way, your front desk is doing arithmetic in their head all day, and they will get it wrong.
Modeling Travel Time as a Hard Block, Not a Sticky Note
The most common workaround groups try is a note. "Remember Dana leaves Eastgate at 2." That is not a system, that is a prayer. Notes live in one person's memory, and your front desk is the highest-turnover seat in the building.
The durable fix is to make travel time a first-class object on the calendar. When a clinician's daily template ends a shift at one clinic and starts the next at a different address, the software should automatically insert a travel block sized to the actual drive time between those two specific locations. Not a flat 15 minutes for everyone. The Downtown-to-Northpark hop is 25 minutes; the Westside-to-Eastgate hop is 22; a same-campus move might be 5. Those blocks should be geofenced to real distance, and they should be hard holds, meaning no booking logic anywhere is allowed to offer a slot that overlaps them.
Here is how the pain cascades when travel is invisible, and where a hard block interrupts it.
flowchart TD A[Floating PT ends shift<br/>at Clinic A] --> B[Software sees<br/>empty calendar gap] B --> C[Books eval at Clinic B<br/>during drive window] C --> D[Therapist arrives late<br/>and rushed] D --> E[Afternoon slips<br/>one to two visits] E --> F[No-show or cancel<br/>40 to 90 dollars lost] B --> G[Hard travel block<br/>sized to drive distance] G --> H[Gap is unbookable<br/>schedule holds]
Two more details separate a real travel model from a fake one. First, the block has to include the switching overhead, not just the drive: note closeout, room turnover, and the human minimum of eating and using the restroom. Ten to fifteen minutes on top of drive time is honest. Second, the block should be tied to the shift template, so when Dana's rotation changes for a week of PTO coverage, her travel blocks regenerate automatically instead of a manager hand-editing 40 calendar entries and missing four of them.
Routing Patients to the Right Clinic Before the Booking Is Made
Blocking travel time stops bad bookings. Routing makes sure the booking that does happen lands at the right site. These are two separate jobs and both matter.
When a patient calls to book with a specific therapist, the system has to answer a compound question: on the day the patient wants, which clinic is that therapist physically at, is there a real slot there after travel blocks, and is that site reasonable for the patient to reach? A patient who lives near Westside should not be routed 30 minutes to Downtown because that happened to be where the calendar had a hole. And a patient who insists on Dana specifically should be offered Dana at whichever site Dana is actually working that day, not told Dana is unavailable because the front desk only checked one location's calendar.
Getting this right by hand requires the front desk to hold the entire rotation of every floating clinician in their head, cross-referenced against three separate location calendars, while a patient waits on the line. It is genuinely hard cognitive work, and it is why so many multi-site groups quietly tell patients "let me call you back" and then lose them.
How CallSphere's AI Front Desk Books Across Three Sites at Once
This is the class of problem an AI front desk is built for, because it never forgets a rotation and it can hold all three location calendars in view simultaneously. CallSphere Health answers 100 percent of your inbound calls, 24/7, across every clinic, and it books against a single unified model of where each clinician is every hour of every day.
Concretely, the AI knows Dana is at Eastgate until 2:00, that the Eastgate-to-Westside travel block runs until 2:24, and that her first real Westside slot is 2:30. When a patient asks for Dana at 2:15, it does not offer the impossible slot. It offers 2:30 at Westside, or Dana at Eastgate earlier in the day, or the next-nearest therapist at the clinic closest to the patient. The patient gets one clear answer on the first call instead of a transfer and a callback.
The routing logic runs on three signals at once, and here is the flow.
flowchart LR
A[Patient requests<br/>therapist and time] --> B[Check clinician<br/>site for that day]
B --> C[Apply travel blocks<br/>filter open slots]
C --> D[Rank by patient<br/>nearest location]
D --> E{Fit at<br/>ideal clinic}
E -->|Yes| F[Book and send<br/>reminder]
E -->|No| G[Offer same PT<br/>other site or nearest]
G --> FBecause the same engine owns scheduling, it also does the parts that keep those hard-won multi-site slots full. Waitlist auto-refill pulls a waiting patient into a same-day cancellation at the correct clinic, so a Downtown drop does not get backfilled with someone Northpark expected. Multi-channel reminders go out with the right address, which matters enormously when a patient could plausibly show up at any of your three doors. And multilingual voice and text mean a Spanish-speaking patient near Eastgate gets routed and confirmed in Spanish without a human translator on the line. You can see the full scheduling and front-desk capability set on the /features page.
Running the Numbers Before You Add a Fourth Site
The scheduling chaos is not just an annoyance, it is a ceiling on growth. Groups avoid opening a fourth location precisely because they already cannot keep three coordinated. So it is worth putting a number on what the current mess costs before you decide whether the fix pays for itself.
Take the earlier estimate: 15 to 25 degraded or lost visits a week from wrong-clinic bookings and travel-blind gaps, at a blended 85 dollars. Call it a conservative 18 visits a week, which is 1,530 dollars weekly, or roughly 79,000 dollars a year. That does not count the patients who never rebooked after a therapist showed up 20 minutes late, and it does not count the front-desk hours burned untangling double-booked floaters instead of confirming tomorrow's schedule.
Against that, unified multi-location scheduling that enforces travel blocks and routes correctly typically costs a fraction of a single front-desk salary. The comparison that matters is not software cost versus zero; it is software cost versus the 79,000 dollars the gap is already taking, plus the growth you are not pursuing because coordination feels impossible. Practices weighing that trade-off can work through it against the plans on the /pricing page. When the schedule holds on its own, a fourth clinic stops being a coordination nightmare and starts being a straightforward capacity decision.
The First Week After You Turn On Travel-Aware Scheduling
The change you will feel first is quiet. The phone stops being a source of double-booking surprises, and your floating therapists stop starting afternoons out of breath. Within a week, the two clinicians who cover all three sites will notice their days actually have the buffers they were supposed to have, because the 12:15 that used to get slipped into their drive window simply cannot be booked anymore.
Set it up in this order. First, build a per-clinic weekly template for every floating therapist so the system knows exactly where each of them is by the hour. Second, define the real drive times between each pair of your locations, measured at the times of day they actually travel, and let travel blocks generate from those. Third, turn on AI booking so patients get routed to the right site on the first call. Do those three things and the 30-minute gap that used to book as availability goes back to being what it always was: the time your therapist needs to get from one clinic to the next without failing anyone.