All case studies

Featured case study

Enterprise Scheduling Tool

AMH · Property maintenance operations · 3 months · 2023

Designing dispatch around decisions, not empty calendar slots

Client context. AMH (American Homes) is one of the largest single-family rental operators in the US, managing roughly 55,000 homes at the time of this project. Its operations team needed a clearer way to schedule maintenance work across markets.

The existing experience made it possible to place work onto a schedule. The harder question was whether an assignment actually made operational sense. A technician could have free time and still be the wrong choice because of location, workload, route impact, service constraints or the shape of their existing day.

I led the UX work across research synthesis, workflow definition, wireframes, user flows, the map-and-timeline interaction model, and moderated evaluation of the working product.

The resulting direction brought the information needed to assess an assignment into one scheduling workspace — before work was committed to the field.

Role
Product Designer — workflow definition, research synthesis, interaction model, wireframes, user flows, evaluative testing synthesis
Problem type
Operational decision support
Scale
1,300 technicians · 55,000 properties · multi-market operation
Outcome
Route-aware dispatch workspace with clearer assignment context before commitment
The scheduling workspace: a technician timeline above a live map of Las Vegas showing the technician's route, work-order markers with priority indicators, and a panel of selected unscheduled work orders
1 / 5
Route-aware scheduling workspace — map, timeline, capacity, route impact, and work-order detail in one view so dispatchers can evaluate assignment risk before committing work to the field.

01 The brief was scheduling. The problem was decision quality.

The original brief could easily have become a calendar redesign.

But placing work into an empty slot wasn’t the difficult part.

Annotated Microsoft Dynamics 365 Schedule Board showing technicians organised against an hourly timeline, visible utilisation, a travel-duration label, and the separate Filter and Map View.
Existing scheduling experience — sensitive operational data anonymised.
The decision to make

Is this technician actually a sensible person to assign this work to, at this point in their day?

A workable assignment depended on more than capacity — route, priority, service constraints and the shape of the technician’s existing day also mattered.

I worked alongside a subject-matter expert to understand how those factors shaped real scheduling decisions and what the first concept needed to represent.

But expertise by proxy could only take us so far. Once the concept was coherent enough to challenge, I put the working design in front of an experienced Field Manager.

The design goal

Put enough operational context around the decision for a Field Manager to judge an assignment before committing it.

View the operational risk behind the problemExpandCollapse
  • Dispatchers had to combine system data, manual scanning, and local market knowledge before committing assignments.
  • Poor scheduling could create inefficient routes, overloaded technicians, missed service windows, resident frustration, and manual rework.
  • Local geographic knowledge lived in a few veteran heads, creating key-person risk for a multi-market operation.
  • The product needed to make more of the decision logic visible and repeatable before work was sent to the field.

02 The decision model

The key user action was scheduling a work order, but the real decision was more complex: Should this technician take this work order at this time?

The decision model
Empty slots aren’t enough

Field Managers needed four signals to judge whether work actually fitted a technician’s day.

01 Capacity
Is there usable time?

Workload and non-work commitments

02 Location + route
Does the journey make sense?

Technician location and travel impact

03 Priority
What should be acted on first?

Urgency and ageing work

04 Service constraints
When can the work happen?

Resident and appointment context

Assignment fit

Right technician + right work + right point in the day

Research synthesis

03 What the evidence changed

I combined workflow analysis, operational input and later evaluation of the working product to understand what Field Managers actually needed at the point of assignment.

The important findings weren't isolated usability issues. They changed what the scheduling product needed to represent.

Research synthesis board showing key findings connected to product actions
01
Capacity

Empty calendar space didn't represent the full shape of a technician's day.Represent workload and non-work commitments.

02
Geography

Location and travel affected whether work fitted into a technician's day.Bring map and timeline together.

03
Priority

Urgent and ageing work could disappear inside a large unscheduled queue.Surface work by operational importance.

04
Context

Important service and work-order information depended on local knowledge.Bring work, technician and route context together.

05
Commitment

A poor assignment could still be committed quickly.Add a review step before final commitment.

Direct access to operational users was limited. Rather than presenting the research as broad validation, I treated it as evidence for reducing specific uncertainties and used a later moderated session with an experienced user to challenge the working design.

04 Four iterations: from map controls to a dual-view workspace

I worked the concept through four rounds of hand sketches before committing to higher fidelity. Each round resolved a different layer of the problem — first which layers the map should carry and let you toggle, then a second view and capacity, then the core interactions, and finally the structure that shipped.

01 / 04

The first round put everything on the map at once: technicians, work orders and routes. That exposed the problem straight away — drawn together, the layers became noise. The first real decision wasn't a layout but a control. Each layer became something the scheduler could show or hide.

Three decisions shaped the product

01
Put geography and time in the same decision space

The existing scheduling model treated time as the primary organising principle, even though the work itself happened across a large geographic area.

A timeline could show that a technician had space. A map could show where the technician and property were. Neither, independently, answered whether the assignment fitted the technician's day.

I brought the two together.

The timeline made workload and sequence visible while the map exposed the geographic consequence of the same decision. Selecting a technician or work order therefore changed both views of the problem at once.

The trade-off was greater information density. The benefit was that the user no longer had to mentally reconcile time and place across separate contexts.

AMH Scheduling workspace showing a technician timeline and route-aware map in the same decision space

05 Decision 02 — Narrow the work before judging the fit

Field Managers weren't choosing from a handful of jobs. In a market like Las Vegas, the unscheduled queue could contain more than a thousand work orders.

I designed the workflow so they could first narrow that queue using operational criteria such as priority, work type, status and duration, then assess the remaining work against the technician's existing workload and route.

The aim was to move from “What work is waiting?” to “What work realistically fits this technician's day?”

The AMH Scheduling unscheduled work-order queue showing more than 1,200 jobs and operational filters for narrowing the candidate work
01 Narrow the work

Work type, status, duration and priority reduce the candidate queue.

The AMH Scheduling workspace combining a technician timeline with a map and route for evaluating assignment fit
02 Judge whether it fits

Workload, sequence and travel reveal the usable shape of the technician's day.

06 Decision 03 — Let people move quickly, but slow down the commitment

Field scheduling is high-volume work. Adding confirmation to every small interaction would make the product frustrating.

But allowing a drag-and-drop action to immediately commit a consequential assignment created the opposite problem: speed without enough visibility into what had just changed.

I therefore treated scheduling as a staged commitment.

Field Managers could explore, filter, select and position work quickly. Before the assignment became final, the interface exposed the information most relevant to the consequence: technician, work order, travel, start time, duration and resulting finish.

The extra step introduced deliberate friction — but only at the point where the cost of a mistake became meaningful.

AMH Scheduling confirmation step showing work orders, travel time, start time, duration and resulting finish before final commitment

07 Engineering changed the question

My early concepts showed every technician's route simultaneously.

Conceptually, that made sense: if route visibility was important, showing all routes appeared to provide the most information.

Engineering exposed the cost of that assumption.

Every rendered route required a routing-API request, recalculated as schedules changed. Repeating that across multiple technicians and markets would compound into meaningful operating cost.

Instead of asking “How can we preserve every route?”, I went back to the decision itself.

Field Managers needed to compare the positions of many technicians, but they only needed detailed route information for the technician they were seriously considering.

The model therefore became:

Location pins for everyone; calculated route for the selected technician.

We gave up simultaneous route comparison, reduced unnecessary API usage and also reduced map clutter.

Later evaluation supported the simplification: once a technician was selected, the participant wanted the remaining technicians removed from view altogether.

Selected user flows

Beyond the primary scheduling walkthrough, three more flows carry the product logic.

Adjust a work order’s timeExpandCollapse

Field Managers could reposition work on the timeline while keeping its effect on workload, sequence and travel visible.

AMH Scheduling workspace showing a technician timeline, mapped work orders and the resulting route
Undo schedule changesExpandCollapse

Undo kept schedule changes reversible, allowing Field Managers to explore a better sequence before committing the revised day.

AMH Scheduling workspace with route-aware schedule controls for revising a technician’s day
Create a custom schedule block with locationExpandCollapse

Non-work commitments could be added with a location so the timeline and route reflected the technician’s real day, not only assigned work orders.

AMH Scheduling flow for creating a custom schedule block with location

08 What changed, and what would come next

The work shifted the product from a calendar-first scheduler into a route-aware dispatch workspace.

Assignment decisions became clearer because dispatchers could see capacity, location, route impact, priority, and service constraints before work was committed.

Product outcome

The workflow shifted from calendar-first scheduling to route-aware dispatch decision support.

User / team outcome

Dispatchers had clearer capacity, route, priority, and service context before assigning work.

Operational outcome

The workflow reduced ambiguity before high-consequence assignments and created a repeatable scheduling model across markets.

What I would measure nextExpandCollapse
  • Median time to schedule and creation-to-assignment time
  • Reschedule, reassignment, missed-appointment, and double-booking rates
  • Average travel time, mileage, route density, and technician utilisation
  • Backlog age, priority counts, jobs per technician per day, and schedule gaps
  • Filter usage, drag-and-drop completion, confirmation abandonment, map load time, and route rendering performance
What I would improve nextExpandCollapse
  • Return-visit creation and recovery flows for rescheduling, cancellation, reassignment, and missed-appointment follow-up
  • Service-window warnings, live status instead of manual refresh, and automated resident notification
  • Better map legibility at scale, clearer technician clustering, and clearer work-order markers
  • Keyboard-accessible scheduling actions and non-colour-only priority indicators
  • Rule-based or AI-assisted recommendations that support dispatcher judgement without removing control
  • Stronger production measurement around scheduling speed, route efficiency, utilisation, backlog health, and usability