Swing Education
Multi-Day Classroom Coverage
Timeline
2 months
Role
Lead Product Designer
Tools
Figma
Skills
Research, Design System, Prototyping, Experimentation
Context
School administrators can request a substitute teacher for one or multiple consecutive days.
Regardless of request duration, there is a 1:1 relationship between request and substitute teacher.
Problem
The 1:1 relationship between request and sub leads to a significant loss in revenue. Subs disregard multi-day requests that don't fully work with their schedules and we lose further days when a sub filling a multi-day request cancels midway through (~$1.35M).
TLDR
The MVP failed but I used those learnings to pivot
The pivot recovered 67% of cancelled days, recapturing an estimated $904K in gross revenue
How might we increase fill rates for multi-day requests?
Hypothesis
Providing substitutes with the flexibility to pick up individual days within multi-day requests will lead to an increase in total filled days.
Research
User interviews confirmed that subs valued flexibility and surprisingly, school administrators valued coverage over consistency. Given this user feedback, we believed that flexibility would be a win-win scenario for both user groups.
Analyzing the existing sub flow

Request Index

Request Details

Request Dates & Times
Consideration 1
How can the UI indicate to a sub that the request is flexible?
Consideration 2
How can subs select the individual days they would like to work?
Consideration 3
How can subs edit or cancel the days they've selected?
Proposing a vision

Request Index

Request Index

Request Dates & Times
Design Direction 1
Explored a hover interaction on the Request Index and the Request Details to communicate flexibility.
Design Direction 2
Proposed adding checkboxes to the All Dates / Times page to facilitate selection of individual days.
Facing constraints
Engineering shared that fully implementing flexible multi-day requests would require reworking the underlying data model, in addition to UI changes across both the admin and sub apps. We needed to test the concept before investing resources in this direction.
Experimenting with a lightweight MVP
For the MVP, we made no changes to the admin app. The sub app designs relied on existing components to indicate flexibility and capture availability. Subs submitted their availability through a form on the Request Details and Customer Support coordinated with schools to update the requests manually.



Design Decision 1
Tweaked copy of the tooltip and temporarily added a "New" badge to catch users' attention
Design Decision 2
Although a bit clunky, we added a form into the UI using only existing components to keep build as lean as possible
Design Decision 3
After submission, the alert persisted on the Request Details until Customer Support was able to coordinate the request with admins
Assessing MVP performance
An overwhelming number of subs were opting to take individual days, but by the time the support team began coordinating their request, another substitute had already signed up for the full assignment - resulting in no fills through the feature.
Refining the MVP
To streamline operations, we introduced a 4-hour delay before a request became flexible. This aligned with typical fill times and reduced manual coordination, but resulted in very few fills.
Pivoting the solution
The MVP and fast-follow produced minimal results, with too few fills to warrant continued investment. We pivoted to reducing mid-request cancellations as a more impactful path to increasing fill rates for multi-day requests.
We believed this would increase fill rate because subs cancel midway through a multi-day request at a rate of 23%. Roughly half of the mid-request cancel reasons cite temporary reasons (doctor’s appointment, car broke down, etc.)
Current sub cancellation flow

Sub navigates to Request Details

Forced to cancel all remaining days

Cancellation confirmed
Creating flexibility in the cancellation flow

Adding option for some or all

Reusing MVP build

Tying back to existing flow
In an ideal state I would use structured inputs to ensure clean, high-quality data.
Reflections
Testing over perfection
This project reinforced the value of testing hypotheses through small, iterative experiments, even when the MVP wasn’t perfect. The initial implementation used existing components and a clunky form, but the goal wasn’t to deliver the best UI - it was to deliver enough to validate assumptions, learn from real outcomes, and pivot when initial ideas didn’t produce the expected impact.
Navigating misalignment
This experience reinforced the importance of framing design decisions within both user and business contexts, using data and outcomes to guide iterative pivots, and recognizing that sometimes the “best” user experience requires strategic trade-offs to achieve broader goals.
Swing Education
Substitute Teacher Onboarding
a complete UX overhaul defined by a new design system and modernized backend
Read more
Swing Education
Absence Management
an exploration of UI concepts to reduce administrative burden
Niki Donlon
Get in Touch


