Live ToolPsychiatric Inpatient · 26 beds · In production since Aug 2023

The bed board, sorted out before 7:30.

The charge nurse opens this at 7 AM. An overnight solver ran against the ED queue. Her job on this screen is small: read each proposed admission, approve it, or pick a different bed. The rules (acuity, RN ratios, legal holds, room compatibility) are encoded as constraints so she doesn't have to hold them in her head at shift change.

Morning Admission Queue
Thu Apr 16 · 07:20 · 4 admits waiting from ED
Solved 07:14
Unit A · Acute6 occupied · 3 open · 1 out of service · RN ratio 1:4
A-01G
A-02new
A-03L
A-04open
A-05blk
A-06H
A-07O
A-08R
A-09open
A-10S
Unit B · Step-Down10 occupied · 5 open · 1 out of service · RN ratio 1:6
B-01K
B-02new
B-03B
B-04O
B-05new
B-06M
B-07T
B-08open
B-09J
B-10N
B-11blk
B-12P
B-13new
B-14P
B-15open
B-16V
Occupied (initial)OpenProposed admissionOut of service

Proposed assignments · review 4

0 of 4 approved
Patient
Patel, J. · 38M
ED · St. Luke · in ED since 02:48
Proposed bed
A-02 · Acute · Room 101
RN Chen · workload 2 → 3 of 4 · with Garcia, R. (42M)

5150 holds stay in acute, so step-down is off the table. Room 101 is a male room with Garcia in A-01, which clears same-sex policy. Chen has a slot under ratio and is already running acute; giving her Patel keeps her team together instead of splitting attention across units.

Also todayTwo projected discharges: Tran, P. (B-07, ~14:30 with turnover) and Brooks, J. (B-03, ~16:00, pending pharmacy). One planned admit from Kern Medical transfer at 15:30.

What's running underneath

An integer program, not a model that guesses.

Every bed is a slot, every waiting admit is an item, and every rule the hospital already enforces (1:4 acute RN ratio, 5150 holds stay in acute, single-sex rooms, 14-day LOS cap, line-of- sight cameras for LPS) is a linear constraint. A cron job at 3 AM runs CBC on the census laptop. The solver picks the assignment that fills the most beds without breaking a rule. A typical solve takes 2.8 seconds; the charge nurse re-runs it on demand whenever a mid-shift change comes in.

Every override is logged with a reason. Those overrides are what we use to tune the objective weights each quarter. The current override rate is below eight percent and trending down.

Results · six months in production

Same building, same staff, seventeen more admits a month.

Monthly utilization moved from a 62% baseline to a six-month average of 91%. Morning ED holds dropped from three to four hours down to under one. The facility placed roughly seventeen more patients per month without opening a bed or hiring a nurse. The methodology paper was accepted at APA 2024.

Have a version of this in your own business?

Book a free 30-minute call. We'll walk what you're doing now and show you what's fixable.

Our tools
Python
PostgreSQL
MySQL
Snowflake
Tableau
Power BI
Anthropic
OpenAI
AWS
GitHub
Excel
Google Sheets
Outlook
Zoom
Slack
Notion
Stripe
QuickBooks
Xero
Google Analytics
Google Ads
Python
PostgreSQL
MySQL
Snowflake
Tableau
Power BI
Anthropic
OpenAI
AWS
GitHub
Excel
Google Sheets
Outlook
Zoom
Slack
Notion
Stripe
QuickBooks
Xero
Google Analytics
Google Ads
Excel
Google Sheets
Outlook
Zoom
Slack
Notion
Stripe
QuickBooks
Xero
Google Analytics
Google Ads
Python
PostgreSQL
MySQL
Snowflake
Tableau
Power BI
Anthropic
OpenAI
AWS
GitHub
Excel
Google Sheets
Outlook
Zoom
Slack
Notion
Stripe
QuickBooks
Xero
Google Analytics
Google Ads
Python
PostgreSQL
MySQL
Snowflake
Tableau
Power BI
Anthropic
OpenAI
AWS
GitHub