I designed a scheduling system that replaced three disconnected tools with one AI-assisted platform. In the first three months, the team reported ~32% more appointments booked than they had in the same period the prior year.
→ ~32% lift in appointments booked vs. prior year same period
→ Reduced schedule-creation time from 4+ hours per week to under 30 minutes
→ Coordination errors dropped substantially across all three care team tiers
→ Practitioners report higher confidence finding availability and managing client conflicts
ABA therapy — Applied Behavior Analysis — is therapy for autistic children. ABA care isn't a single weekly appointment, it's a layered program: clinical supervision from BCBAs, mid-level case management, and direct therapy from RBTs. A child's plan typically requires all three. In a specific ratio, weekly, for months or years.
The teams running these schedules were using three tools that didn't talk to each other. That meant manually cross-referencing a client's authorizations, qualifications and availability, and so much more, tab by tab, before they could make any match. Scheduling could take all of Tuesday morning. And the wrong match — or a missed one — could delay a child's care by weeks.
What was at stake wasn't operational efficiency. A single change in therapy coverage could mean the difference between a child hitting developmental milestones or not.
The surface problem was fragmentation. The real problem was tribal knowledge. In this match process, a client's needs and a practitioner's qualifications, availability, and preferences were happening invisibly, in the scheduler's head, every time.
The scheduling problem was fragmentation. The real problem was that every match relied on someone holding an enormous amount of context in working memory — which practitioners were available, who had the right qualifications, what a client's specific needs were, and which constraints overlapped.
When I started having conversations with the team, that pattern came up over and over. "I just know who to call." But when that person left, or was out sick, or was managing a caseload that was too large — the whole system slowed down. Families waited. Care was delayed.
Clockwork's job wasn't to replace that judgment. It was to give that judgment somewhere to live — so it could be shared, reviewed, and scaled across a whole team.
Smart Match is the only place AI lives in Clockwork. The team asked: "what if we just auto-assigned?" I ran that option alongside the current design. Auto-assignment would have suppressed the signal that coordinators needed most — knowing when a match was imperfect, and why.
This made the constraint legible. The decision was to build a system that made the reasoning visible, not just the output.
In a follow-up conversation three months post-launch, one coordinator said: "I forgot we used to use a spreadsheet for this." That was the signal.
But the outcome I care most about isn't the ~32% lift. It's that coordinators stopped working nights. They stopped maintaining a private spreadsheet of practitioner quirks and client constraints. That knowledge is now in the system — visible, reviewable, and shareable with anyone who joins the team next.
I'd run a deeper co-design pass with direct-care practitioners — the RBTs and BIs who were affected by scheduling decisions but rarely had input into them. The coordinator surface got thorough research. The practitioner surface got less. That imbalance shows up in parts of the schedule grid that feel slightly over-engineered for the coordinator and under-considered for the person receiving the schedule.
I'd also invest earlier in the data model for override tracking. The system records that a coordinator overrode a low match — but doesn't yet surface patterns across overrides. That's where the most useful learning would come from: not what Clockwork recommended, but what coordinators chose instead, and why.