<aside> 🔒

Recreated for this portfolio. This rebuilds the kind of briefing I brought to Tandem Care's leadership. The company's data is confidential, so the region, caregivers, hours and costs are illustrative, built to show how the model worked. The decision and its outcome are real.

</aside>

The recommendation, up front

Move to split operating hours: 8 a.m. to 2 p.m. and 4 to 8 p.m. That lets us extend service to 8 p.m. for the bedtime visits families are asking for, without paying for a 12-hour day. In a modeled region of 8 caregivers (illustrative figures), split hours cut paid downtime by about 88% compared with a straight 8 a.m. to 8 p.m. day, and nearly eliminate daily overtime, with no change in client visit hours delivered.


The problem

Families were asking for bedtime visits, so we wanted to extend the service day from its 6 p.m. close to 8 p.m. But caregivers clock in at their first visit and out at their last. Every gap between visits is paid time with no client in front of them. Stretch the day to 8 p.m. and a caregiver with an 8 a.m. first visit and an 8 p.m. last one is on the clock for 12 hours, with overtime built in, even if they only worked eight hours of visits.

We were paying for the shape of the schedule, not the care.


What the visit data showed

Time block Visits starting (illustrative, one week)
8 to 10 a.m. 22
10 a.m. to 12 p.m. 26
12 to 2 p.m. 20
2 to 4 p.m. 6
4 to 6 p.m. 18
6 to 8 p.m. 14
xychart-beta
    title "Visits starting, by time block (illustrative, one week)"
    x-axis ["8-10a", "10a-12p", "12-2p", "2-4p", "4-6p", "6-8p"]
    y-axis "Visits" 0 --> 30
    bar [22, 26, 20, 6, 18, 14]

Demand drops sharply between 2 and 4 p.m. That dip is where most paid downtime was coming from: caregivers waiting between a lunchtime visit and an evening one.


What it looks like in a real day

Two example caregivers from the modeled region, a straight 8 a.m. to 8 p.m. day vs split hours. Same visit hours, same care delivered. Some visit start times shift into the new blocks, and the paid gaps shrink.

Caregiver C: the 8 a.m. to 8 p.m. day

gantt
    dateFormat HH:mm
    axisFormat %-I %p
    todayMarker off
    section Straight 8 to 8 day
    Visit             :done, c1, 08:00, 2h
    Paid downtime     :crit, c2, 10:00, 30m
    Visit             :done, c3, 10:30, 90m
    Paid downtime     :crit, c4, 12:00, 1h
    Visit             :done, c5, 13:00, 2h
    Paid downtime     :crit, c6, 15:00, 2h
    Visit             :done, c7, 17:00, 1h
    Visit             :done, c8, 18:00, 2h
    section Split hours
    Visit             :done, n1, 08:00, 2h
    Visit             :done, n2, 10:00, 90m
    Paid downtime     :crit, n3, 11:30, 30m
    Visit             :done, n4, 12:00, 2h
    Unpaid break      :n5, 14:00, 2h
    Visit             :done, n6, 16:00, 1h
    Visit             :done, n7, 17:00, 2h

Straight 8-to-8 day: paid 12 hours for 8.5 hours of visits (3.5 hours of paid downtime, 4 hours over 8). Split hours: paid 9 hours for the same 8.5 hours of visits (30 minutes of paid downtime, 1 hour over 8).

Caregiver A: a typical day with a midday gap

gantt
    dateFormat HH:mm
    axisFormat %-I %p
    todayMarker off
    section Straight 8 to 8 day
    Visit             :done, a1, 08:00, 2h
    Paid downtime     :crit, a2, 10:00, 1h
    Visit             :done, a3, 11:00, 90m
    Paid downtime     :crit, a4, 12:30, 2h
    Visit             :done, a5, 14:30, 1h
    Visit             :done, a6, 15:30, 90m
    Visit             :done, a7, 17:00, 1h
    section Split hours
    Visit             :done, b1, 08:00, 2h
    Paid downtime     :crit, b2, 10:00, 30m
    Visit             :done, b3, 10:30, 90m
    Visit             :done, b4, 12:00, 1h
    Unpaid break      :b5, 13:00, 3h
    Visit             :done, b6, 16:00, 90m
    Visit             :done, b7, 17:30, 1h