All Case Studies
HealthcareForecastingClassificationOptimization10 min read

South Texas Urgent Care Network

Patient Volume Forecasting & No-Show Prediction for a Multi-Clinic Network

PythonXGBoostProphetscikit-learnPandasRecharts

31%

Wait Time Reduction

avg across clinics

$215K

Labor Savings

annual

19%

No-Show Rate

from 30%

01The Challenge

A five-clinic urgent care network across McAllen, Edinburg, Mission, Pharr, and Weslaco was struggling with unpredictable patient volumes, chronic overstaffing during slow hours, understaffing during surges, and a 30% no-show rate that wasted provider time and disrupted scheduling.

Three problems drove the engagement:

  • Staffing mismatch: All five clinics used the same flat staffing model — 6 providers from 9am to 5pm — regardless of actual demand. Monday mornings routinely hit 30+ patients per hour while Saturday afternoons saw 8. Providers were either idle or overwhelmed.
  • No-show waste: Nearly 1 in 3 scheduled appointments resulted in a no-show. The network had no way to predict which patients would miss, no overbooking strategy, and no outreach system to reduce no-shows.
  • Winter Texan surge: Between October and March, patient volumes increase 40% as seasonal residents ("Winter Texans") arrive in the Rio Grande Valley. The clinics didn't adjust staffing for this predictable annual pattern.

Data Landscape

The data landscape: 3 years of visit records (~120,000 visits across 5 clinics), appointment scheduling data with no-show flags, daily staffing logs, patient demographics, and local flu surveillance data. The EHR system exported clean CSVs but the network had no analytics team.

02Our Approach

We built three interlocking systems: a patient volume forecast that predicts demand 14 days ahead, a no-show classifier that flags high-risk appointments for proactive outreach, and a staffing optimizer that matches provider hours to predicted patient flow.

  • XGBoost Classifier no-show prediction model identifying high-risk appointments for proactive outreach and overbooking
  • Prophet Forecasting daily patient volume forecast with Winter Texan seasonality and flu-season regressors
  • Staffing Optimizer demand-matched staffing recommendations by hour, shifting providers to match actual patient flow
  • Clinic Benchmarking multi-metric comparison across 5 clinics for wait times, satisfaction, and operational efficiency
  • Pandas + Recharts data pipeline and interactive operations dashboard for clinic managers

Visit Records

120K+ visits

Volume Forecast

14-day ahead

No-Show Model

AUC = 0.82

Staff Optimizer

Hourly scheduling

Ops Dashboard

Real-time metrics

03Key Findings

Patient Volume by Day & Hour

7:00
8:00
9:00
10:00
11:00
12:00
13:00
14:00
15:00
16:00
17:00
18:00
19:00
20:00
21:00
Mon
14
41
36
36
39
32
33
29
37
29
34
22
22
23
23
Tue
13
31
28
29
28
29
20
28
23
17
24
16
17
14
18
Wed
9
30
28
27
30
19
25
23
21
25
24
18
17
24
15
Thu
11
25
25
30
27
26
28
27
16
26
25
17
19
14
14
Fri
12
32
39
30
31
27
26
25
24
26
27
16
21
21
17
Sat
10
20
23
23
25
13
18
15
13
16
14
10
15
14
18
Sun
8
17
22
22
22
14
20
15
19
17
9
16
12
13
8
Low
High

Average patient volume across all clinics by day-of-week and hour. Monday mornings (8–11am) are consistently the highest volume window. Weekends drop significantly. This pattern drives the staffing optimizer — matching provider count to these demand curves eliminates both wait times and idle hours.

No-Show Prediction — Feature Importance

SHAP values showing which features most influence no-show predictions. Prior no-show history is the strongest predictor — patients with 2+ prior no-shows are 3.4x more likely to miss again. Appointment lead time is second: appointments booked 14+ days out have double the no-show rate.

No-Show Classifier — ROC Curve

Receiver Operating Characteristic curve for the XGBoost no-show classifier. AUC = 0.82 indicates strong discrimination between show and no-show patients. At the operating threshold (FPR = 0.15), the model catches 65% of no-shows — enough to enable targeted reminder calls and strategic overbooking.

Clinic Performance Comparison

Five-axis radar comparing clinics on patient volume, average wait time (inverted — higher is better), satisfaction score, no-show rate (inverted), and Winter Texan patient percentage. Mission and Weslaco handle Winter Texan surges best; McAllen Central has the highest volume but longest waits.

Staffing Optimization — Current vs Recommended

Provider count by hour: current flat staffing (dashed) vs demand-matched recommendation (solid). The optimizer shifts 2 providers to the 8–11am surge window and reduces afternoon/evening coverage. Net result: same total provider-hours, 31% lower wait times.

04Business Impact

Avg Wait Time
47 min32 min
-31%
Annual Labor Cost
$1.28M$1.065M
-$215K
No-Show Rate
30%19%
-11 pts

Projected Annual Value

$215K labor savings + 31% wait time reduction

The staffing optimizer redistributed the same total provider-hours across the day to match actual demand. Monday morning coverage increased from 6 to 8 providers; Saturday afternoon coverage dropped from 6 to 3. Average wait times fell from 47 to 32 minutes network-wide.

The no-show model enabled a two-pronged intervention: automated SMS reminders 48 hours before flagged appointments, plus strategic overbooking of 2 slots per high-risk session. The combined effect reduced no-shows from 30% to 19%, recovering ~4,200 appointment slots per year.

Winter Texan volume forecasting allowed the network to hire 3 temporary providers each October instead of scrambling in November. Advance planning cut temporary staffing costs by 22% while maintaining satisfaction scores above 4.2/5.0 during peak season.

05Technical Details

Volume Forecast (Prophet)

  • Granularity: daily, per-clinic
  • Regressors: flu_index, temperature, day_of_week, is_holiday
  • Seasonality: Winter Texan (Oct–Mar) + flu season (Nov–Feb)
  • Accuracy: MAPE = 11.2% on 3-month holdout

No-Show Classifier (XGBoost)

  • Features: prior_noshows, lead_time, insurance, day, distance, age, time_slot, provider
  • Target: no_show (binary classification)
  • Performance: AUC = 0.82, precision = 0.71 at recall = 0.65
  • Threshold: optimized for actionable outreach capacity (~15% FPR)

Staffing Optimizer

  • Method: constrained optimization (minimize wait time subject to budget)
  • Constraint: total provider-hours per week ≤ current budget
  • Granularity: hourly staffing levels by day-of-week
  • Validation: 4-week A/B test at McAllen Central before network rollout

Facing similar challenges?

Let's discuss how data science can drive results for your business.