Skip to main content

Technology

Data-driven planning for healthcare resources

Capillary Health maps where care is hard to reach, tests plans on simulated regions, routes home visits on real roads and checks staff schedules for rest. Scheduling is live; the maps and routing run as demonstrations on public and synthetic data.

U.S. counties and county equivalents scored for access to long-acting HIV care
3,144
Public county data, 2023
of those counties modeled as access deserts
629
Public county data, 2023
of 3,500 simulated scenarios where Capillary did worse than a well-run planner
0
Regional benchmark, synthetic scenarios
department templates in live scheduling
8
capillaryhealth.com/scheduling

Map

Every county, scored for access

The access map scores all 3,144 U.S. counties and county equivalents for how hard long-acting HIV care is to reach. A county’s score is the geometric mean of its HIV burden percentile and its access gap, so a county scores high only when both are high. 629 counties are modeled as access deserts.

Data

County scores from MapMedicine’s public HIV access map, built from AIDSVu county HIV prevalence (2023), HRSA Ryan White HIV/AIDS Program sites (2023) and U.S. Census county boundaries.

The score is a research signal for planning, not a clinical recommendation.

Access to long-acting HIV care, by county

Public county data, 2023.

A map of 3,144 counties

The map draws every county and county equivalent in the 50 states and the District of Columbia. It loads about 1 MB of county shapes.

County figures are public aggregates. A mapped site is a Ryan White program site that could plausibly offer long-acting care. The map does not verify a product at any site.

Model

A planning benchmark across 7 states

The benchmark asks whether planning long-acting HIV visits across providers covers more visits than each provider planning alone. Four planning rules ran against identical resources in 7 states, 500 simulated scenarios each, 3,500 in all.

Against a well-run planner

Against a planner that schedules one provider after another and then repairs the plan, Capillary tied in 95.6% of scenarios, came out ahead in 4.4% and fell behind in none.

The prespecified rule for an advantage was not met: the median paired difference was 0.0%.

Against each provider planning alone

In the 1,869 scenarios where providers could share capacity, planning across providers covered more of the doses whose dosing window closes within three days.

+12.8%

median coverage of those doses (mean +19.3%)

A subgroup of the 3,500 scenarios, against a weaker comparator than the result beside it.

The gain grows with sharing, up to +0.59%

Against the well-run planner, the difference is exactly zero when nothing is shared, and grows as more pairs of providers allow sharing.

These are modeled planning results on synthetic delivery scenarios. They are not clinical outcomes, provider acceptance or adoption evidence. Read the methods and data.

Try the models

Four working demonstrations on public county data and synthetic operations. No account needed.

Route

Home visits routed on real roads

The routing engine plans visits for clinicians, couriers and equipment. Google OR-Tools builds a first plan that respects each person’s skills, shift, lunch break and visit limit. Then adaptive large neighborhood search takes parts of the plan apart and rebuilds them, up to 10,000 times, keeping the best plan it finds. Drive times come from OpenStreetMap roads, through the OSRM routing engine.

The solver gets coded IDs and map coordinates, never names or medical record numbers.

18 min22 min25 min15 min20 min25 minBase, 08:001Arrive 08:2008:00 to 10:002Arrive 09:3009:00 to 11:003Arrive 10:4510:00 to 12:004Arrive 12:3012:00 to 14:005Arrive 14:0513:00 to 16:00
One clinician’s sample route between home visits. Synthetic stops.

What a plan is scored on

The engine’s default weights. Leaving a visit unserved costs far more than any of them.

Schedule

Schedules checked for rest

Scheduling is live. Capillary checks every assignment as it is saved. Each clinician’s own hours page marks their hardest shifts, and department analytics reads a group’s calendar for patterns.

Rules on every save

Live

Each save checks role, overlapping shifts, minimum rest and approved time off for every assignment in the month, including the person’s published shifts at other sites in Capillary. Rest is counted in elapsed hours, so it stays right when daylight saving time starts or ends.

  • Day shift: less than 12 hours of rest from Night shift on Oct 11.
  • Night shift: overlaps Evening shift on Oct 14.
  • Fast track: clinician does not match the required role.

Messages a save shows, with sample shifts and dates.

Three ways to mark a hard shift

Live
  • From shift times

    Flags from the shift times alone: rest under 11 hours, a backward rotation, a 4th day or 3rd night in a row, or a shift over 12 hours. Two or more flags mark a shift high burden.

  • Risk model

    A risk index after Folkard and Lombardi: night shifts and long shifts carry more risk, and the risk rises with each night in a row.

  • Alertness model

    The three-process model of alertness, run over the 48 hours before a shift, with sleep assumed from the shift times.

The models give estimates about people in general, not a measure of one person. Capillary does not measure sleep.

Night shift471013sleepiness line (7)lowest 5.0 at 05:4507:0013:0019:0001:0007:00Awake since 07:00, no nap
The three-process model: alertness falls with time awake and rises with sleep, on a daily rhythm. Capillary draws it over the 48 hours before each hard shift.

Successive night shifts

1st night
1.00
2nd night
1.06
3rd night
1.17
4th night
1.36

Successive day shifts

1st day
1.00
2nd day
1.02
3rd day
1.07
4th day
1.17
Relative risk of injuries and accidents on successive night and day shifts, after Folkard and Lombardi. The first shift of each kind is 1.0.

Patterns across a department

Live

From a group’s calendar, department analytics counts hours, nights, weekends, holidays and rest for everyone on it, and shows coverage by hour of the week. It also learns the shifts each colleague usually works, so the swap finder lists likely colleagues first.

A pattern such as “nights only” is flagged only when chance alone would produce it less than 1% of the time, and never for someone with fewer than 8 shifts.

People on in each hour of a weekday in the sample emergency department, by group.

Evidence

What is live and what is a demonstration

Research behind it

The routing engine follows the home health care routing and scheduling problem as the operations research literature defines it.

  1. 1.Atta S, Basto-Fernandes V, Emmerich M. A concise review of the home health care routing and scheduling problem. Operations Research Perspectives 2025 (opens in a new tab)
  2. 2.Åkerstedt T, Folkard S, Portin C. Predictions from the three-process model of alertness. Aviat Space Environ Med 2004 (opens in a new tab)
  3. 3.Folkard S, Lombardi DA. Modeling the impact of the components of long work hours on injuries and "accidents". Am J Ind Med 2006 (opens in a new tab)
  4. 4.Ingre M, et al. Validating and extending the three process model of alertness in airline operations. PLoS One 2014 (opens in a new tab)

Bring us a planning problem

Book a call with a logistics expert. Bring your schedule, your region or your fleet, and we’ll show you what Capillary does with it.