hourlong learnings #1: hospital triage algos and how we can improve on the ESI system
Triage is not just “who looks sickest” but rather a real-time decision system w/ asymmetric risk
The ED has to make a first routing decision before it has the full chart, labs, imaging, response to treatment, or a true differential diagnosis. At its core triage is risk estimation under incomplete information.
A reasonable technical def for this:
$$ \text{triage} = \arg\min_{\pi} \mathbb{E}\left[ \sum_i H_i(w_i^\pi) \right] $$
where:
- $\pi$ = the prioritization/routing policy
- $i$ = patient
- $H_i(w)$ = expected harm from waiting $w$ minutes
- $w_i^\pi$ = wait time under triage policy $\pi$
The ED is trying to choose the policy that minimizes expected harm, while beds, nurses, physicians, CT scanners, monitors, lab capacity, and inpatient beds are often scarce
In the U.S., the status quo is the Emergency Severity Index (aka ESI). AHRQ states ESI is a 5-level ED triage algo that stratifies patients from level 1 most urgent to level 5 least urgent using current acuity and resource needs. The ESI handbook frames the tool around rapid identification of patients needing immediate life-saving intervention, high-risk presentations, abnormal vital signs, and predicted ED resources
EMTALA also has something to say about this from a rights perspective. A Medicare-participating hospital with an ED must provide an appropriate medical screening exam when someone presents requesting evaluation for a possible emergency condition, regardless of their ability to pay for asaid treatment. If an emergency medical condition is found, the hospital must stabilize the patient or transfer. Triage can determine order and routing; but cannot be used to deny care obligation.
The more technical version is:
$$ f(x_i, C_t) \rightarrow a_i $$
where:
- $x_i$ = patient-level input vector
- $C_t$ = current department state
- $a_i$ = triage action/routing decision
The input vector is not just symptoms. It is more like:
$$ x_i = \begin{bmatrix} \text{chief complaint} \ \text{age} \ \text{heart rate} \ \text{systolic BP} \ \text{respiratory rate} \ \text{SpO}_2 \ \text{temperature} \ \text{mental status} \ \text{pain score} \ \text{past history} \ \text{medications} \ \end{bmatrix} $$
The department state matters too:
$$ C_t = \begin{bmatrix} \text{waiting room count} \ \text{open ED beds} \ \text{available monitored beds} \ \text{nurse capacity} \ \text{physician capacity} \ \text{CT/MRI queue} \ \text{lab turnaround} \ \text{boarded admissions} \ \text{longest admitted patient wait} \ \text{ambulances en route} \end{bmatrix} $$
The same patient arriving at 3 a.m. to an empty ED and 7 p.m. to a saturated ED does not enter the same operational system.
The U.S. scale of this is huge. CDC/NCHS reports about 155.4 million ED visits in 2022, with 17.8 million resulting in hospital admission and 3.1 million resulting in crit care.
TLDR: triage is the first control layer in a high volume clinical system
1. The ED is a queue, except the jobs can change before acted upon
A basic queueing model starts with patient arrival rate $\lambda$, service rate per treatment channel $\mu$, and the number of parallel channels $c$.
Utilization is:
$$ \rho = \frac{\lambda}{c\mu} $$
When $\rho$ gets close to 1, the department loses slack. For a simple M/M/1 queue, average waiting time is:
$$ W_q = \frac{\lambda}{\mu(\mu-\lambda)} $$
This is not a full ED model, but it shows the shape: as arrivals approach service capacity, waiting time rises nonlinearly.
The ED version is harder because patients are a heterogeneous population. A low-acuity ankle sprain and a septic patient are not equivalent tasks, and their risk does not change at the same rate
Let $H_i(w)$ be the expected harm to patient $i$ after waiting $w$ minutes. The derivative
$$ \frac{dH_i}{dw} $$
is the estimated increase in harm from one more minute of waiting. It may stay near zero for a stable minor laceration and rise quickly for a tachycardic, febrile patient with a falling blood pressure. This is why a pure FIFO, or weighted aFIFO model fails
2. ESI is compression
At triage, the hospital does not know the true state of the patient.
Let the hidden true state be:
$$ Y_i \in {C, E, U, L} $$
where:
- $C$ = critical
- $E$ = emergent/high-risk
- $U$ = urgent but stable
- $L$ = low acuity
The triage nurse observes $x_i$, not $Y_i$. The task is to estimate:
$$ P(Y_i \mid x_i, C_t) $$
and compress that distribution into a routing action. ESI compresses it into five levels:
$$ \hat{y}_i \in {1,2,3,4,5} $$
where lower number means higher urgency.
$$ f(x_i) \rightarrow \text{ESI level} $$
This compression is necessary. Nobody can run a full diagnostic workup on every arrival before deciding who gets the next bed. The risk is that compression loses information.
Example:
$$ P(Y_i \mid x_i) = \begin{bmatrix} P(C) \ P(E) \ P(U) \ P(L) \end{bmatrix} = \begin{bmatrix} 0.04 \ 0.28 \ 0.52 \ 0.16 \end{bmatrix} $$
The most likely state is urgent/stable, but the combined probability of critical or emergent disease is 32%. Depending on the presentation, that may justify faster routing. A better triage system would preserve this probability distribution alongside the ESI label.
3. The decision loss matrix is an easy way to visualize
Accuracy alone is not enough because triage errors have different costs. Over-triage consumes capacity. Under-triage can delay time-sensitive care.
Let the actions be resuscitation/immediate bed ($R$), rapid monitored evaluation ($B$), standard queue ($Q$), and fast track ($F$). A toy loss matrix could look like this:
| Action / true state | Critical | Emergent | Urgent | Low acuity |
|---|---|---|---|---|
| Resuscitation ($R$) | 0 | 1 | 5 | 12 |
| Rapid bed ($B$) | 8 | 1 | 3 | 8 |
| Standard queue ($Q$) | 60 | 18 | 3 | 1 |
| Fast track ($F$) | 120 | 45 | 10 | 0 |
The values are illustrative. The important part is the asymmetry: putting a low-acuity patient in resuscitation wastes resources, while putting a critical patient in fast track creates much more expected harm.
The model chooses the action with the lowest probability-weighted loss:
$$ a_i^* = \arg\min_a \sum_y L(a,y)P(Y_i=y \mid x_i,C_t) $$
In a binary version, let $p_i$ be the probability of a time-sensitive critical illness. Escalate when:
$$ p_i C_{\text{miss}} > (1-p_i)C_{\text{false+}} $$
which gives the threshold:
$$ p_i > \frac{C_{\text{false+}}}{C_{\text{miss}} + C_{\text{false+}}} $$
If a miss is assigned 100 units of harm and over-triage 5 units, the escalation threshold is about 4.8%. That is why low-probability/high-harm presentations receive disproportionate urgency and resources.
4. Triage has two distinct predictions to make
ESI is partly ab patient acuity and partly resource.
The ESI handbook separates unstable/high-risk patients from stable patients and then uses expected ED resources to help distinguish lower levels.
That means triage is estimating at least two things:
$$ r_i = P(\text{deterioration or critical intervention} \mid x_i) $$
$$ k_i = \mathbb{E}[\text{ED resources} \mid x_i] $$
A simple score could be:
$$ S_i = \alpha r_i + \beta u_i + \gamma k_i + \delta q_i $$
where:
- $r_i$ = deterioration risk
- $u_i$ = time sensitivity
- $k_i$ = expected resource demand
- $q_i$ = current queue pressure for the resources this patient needs
This is already more accurate than thinking about triage as one-dimensional severity.
From my time studying to become an NYS EMT-B, some patients are high-risk and high-resource:
- septic shock
- major trauma
- respiratory failure
- unstable GI bleed
Others are high-risk but initially targeted-resource:
- STEMI needing ECG/cath pathway
- stroke symptoms needing stroke activation/CT
- anaphylaxis needing epinephrine
- opioid overdose needing airway monitoring/naloxone
Some are low-risk but resource-heavy:
- stable abdominal pain needing labs/CT
- renal colic needing imaging/pain control
- complex social disposition
Some are low-risk and low-resource:
- medication refill
- simple wound check
- minor sprain
This creates a routing problem beyond just ranking patients into ESI
5. Protocols are condition-dependent and time-bound
Triage becomes easiest to understand when there is a protocol with a clock attached.
Sepsis
The Surviving Sepsis Campaign recommends immediate antimicrobials, ideally within 1 hour of recognition, for adults with possible septic shock or high likelihood of sepsis. It also includes lactate measurement, cultures before antibiotics when feasible, fluids for hypotension or elevated lactate, and vasopressors for persistent hypotension.
So for a possible sepsis patient, triage is not just “ESI 2 vs 3.”
It is deciding whether to start a timed pathway:
$$ x_i \rightarrow \text{sepsis alert} $$
A rough logistic-regression could be written as:
$$ z_i = \beta_0 + \beta_1\text{Temp}_i + \beta_2\text{HR}_i + \beta_3\text{RR}_i + \beta_4\text{SBP}i + \beta_5\text{SpO}{2,i} + \beta_6\text{AMS}_i + \beta_7\text{infection risk}_i $$
$$ p_{\text{sepsis},i} = \frac{1}{1+e^{-z_i}} $$
The $\beta$ terms are learned weights. The first equation combines the triage features into one score, and the sigmoid converts that score into a probability between 0 and 1. The output is a pathway trigger and not a diagnosis point
The more operational target:
$$ T_{\text{abx}} – T_{\text{recognition}} \leq 60 \text{ minutes} $$
A triage model should not only predict risk. It should also measure whether the system worked within a target timeframe
Stroke
AHA’s Target: Stroke program sets door-to-needle goals for eligible acute ischemic stroke patients treated with IV thrombolytics, including a 60-minute door-to-needle target and more aggressive phase goals.
A stroke triage pathway has several timestamps:
$$ T_{\text{door}} \rightarrow T_{\text{physician}} \rightarrow T_{\text{stroke team}} \rightarrow T_{\text{CT start}} \rightarrow T_{\text{CT read}} \rightarrow T_{\text{needle}} $$
The model target is not just:
$$ P(\text{stroke} \mid x) $$
because the immediate operational question is whether to activate the time sensitive stroke treatment pathway.
Example 1: STEMI
For STEMI, the operational metric is often door-to-balloon time. ACC/AHA consensus guidelines have recommended door-to-balloon time of 90 minutes or less for STEMI patients undergoing primary PCI, including time to enter cath lab.
Spoiler: More about my takes and knowledge of elective PCI, PFO closures, and experience in a cardiac cath lab in a coming post
A chest pain patient may need:
$$ T_{\text{ECG}} – T_{\text{door}} \leq 10 \text{ minutes} $$
depending on local protocol.
The triage algorithm should separate:
$$ \text{chest pain needing immediate ECG} $$
from:
$$ \text{chest pain that can wait for a standard workup} $$
Example 2: START and JumpSTART
ESI is a routine ED triage system. START and JumpSTART solve a different problem: mass-casualty triage when the number of patients temporarily exceeds available responders and treatment capacity.
START stands for Simple Triage and Rapid Treatment. It uses a rapid assessment of respiration, perfusion, and mental status to place adults into immediate, delayed, minor, or deceased/expectant categories. HHS describes it as a system designed for first responders to classify a victim in roughly 30 seconds.
JumpSTART modifies the process for pediatric patients. One important difference is how it handles an apneic child who still has a pulse: the responder gives five rescue breaths before assigning the final category. HHS notes that JumpSTART is widely used in U.S. pediatric mass-casualty planning, although its formal validation base is limited.
These protocols show the same optimization problem under a much harder capacity constraint. The goal shifts from giving each individual the maximum possible care to allocating immediate lifesaving interventions across the incident.
6. A real triage model should predict multiple outputs
A single ESI label is useful, but too compressed. A better model could output:
$$ \hat{y}_i = \begin{bmatrix} P(\text{critical intervention}) \ P(\text{ICU admission}) \ P(\text{hospital admission}) \ P(\text{time-sensitive pathway}) \ P(\text{return within 72h}) \ \mathbb{E}[\text{ED length of stay}] \ \mathbb{E}[\text{resource count}] \end{bmatrix} $$
The 2021 MIMIC-IV-ED benchmark paper built prediction tasks using more than 400,000 ED visits and outcomes including hospitalization, critical outcomes, and 72-hour ED reattendance. Its setup is useful because it treats triage as several prediction tasks instead of one ESI label.
For severity class $k$, a multinomial model can estimate:
$$ P(Y_i=k \mid x_i) = \frac{e^{w_k^\top \phi(x_i)}}{\sum_{j=1}^{K}e^{w_j^\top \phi(x_i)}} $$
Here $\phi(x_i)$ is the patient feature vector and each $w_k$ is the learned weight vector for one severity class. The numerator scores one class; the denominator normalizes all class scores into probabilities that sum to 1.
Resource use can be modeled as separate binary outputs:
$$ P(r_{im}=1 \mid x_i)=\sigma(\theta_m^\top \phi(x_i)) $$
where $r_{im}$ can represent labs, ECG, CT, ultrasound, IV medication, respiratory support, consult, admission, or ICU admission. Related models are already used in nursing and clinical risk research. The harder step is prospective bedside deployment.
7. Time-to-deterioration is more useful than static severity
A static triage label describes the patient at arrival. A more useful model estimates how risk changes while the patient waits.
A proportional-hazards model could use:
$$ h_i(t)=h_0(t)\exp\left(\beta^\top x_i(t)+\eta^\top C_t\right) $$
$h_i(t)$ is the instantaneous risk of deterioration at time $t$. The baseline hazard $h_0(t)$ is modified by the patient’s current data $x_i(t)$ and the department state $C_t$. Repeated vitals change the patient term; crowding changes the expected delay and available routing options.
A rough priority score I got while sitting at Starbucks with a friend at NYU (thanks Jason) is:
$$ S_i(t)= \frac{ P_i(\text{critical in next }\Delta)C_{\text{miss}} + P_i(\text{pathway delay})C_{\text{delay}} }{ \widehat{\text{bed-minutes}}_i + \widehat{\text{nurse-minutes}}_i + \widehat{\text{physician-minutes}}_i } $$
The numerator estimates the harm avoided by acting during the next interval. The denominator estimates the constrained resources required. It is useful as a routing score, not as a rule that overrides clinical judgment or established emergency pathways.
8. Department crowding should be a key input
ED crowding is super measurable.
NEDOCS, the National Emergency Department Overcrowding Scale, uses inputs like number of ED beds, hospital beds, total ED patients, ventilated ED patients, admitted patients in the ED, and waiting time of the longest admitted patient.
So crowding can be represented as a vector just like everything else prior
$$ C_t = \begin{bmatrix} B_{\text{ED}} \ B_{\text{hospital}} \ N_{\text{ED patients}} \ N_{\text{vent}} \ N_{\text{admits boarding}} \ T_{\text{longest admit wait}} \ T_{\text{last bed turnover}} \ N_{\text{waiting room}} \end{bmatrix} $$
A triage model that ignores $C_t$ (either in the ch8 or ch1 definitions) is fundamentally incomplete.
Patient risk is clinical, but delay is operational. Crowding changes the likely wait, the available placement, and whether a hospital must treat and transfer.
$$ \mathbb{E}[\text{harm}_i] = g(x_i, w_i(C_t), a_i) $$
If crowding increases expected wait time, the triage system should adjust reassessment frequency and routing. ESI does not do this by itself.
Let $c_t$ be a normalized scalar crowding score derived from $C_t$. One possible reassessment rule is:
$$ \text{recheck interval}_i = \frac{\tau_0}{1 + \alpha S_i(t) + \beta c_t} $$
Higher patient risk or higher crowding should shorten the reassessment interval. Admission and emergency-treatment criteria should not be relaxed or tightened purely because the department is crowded.
A product that tracks who needs repeat vitals, a repeat neurologic exam, ECG, lactate, reassessment, or escalation could use AI to continuously reprioritize the reassessment queue.
9. The ED is a network of queues w/ stations
The waiting room is only one queue at hand
A real patient moves through several queues:
$$ \text{triage} \rightarrow \text{room} \rightarrow \text{nurse} \rightarrow \text{physician} \rightarrow\ \text{orders} \rightarrow \text{labs/imaging} \rightarrow \text{consult} \rightarrow\ \text{disposition} \rightarrow \text{admission/discharge} $$
Each node has its own service rate.
$$ \mu_j = \text{service rate at station } j $$
Patient $i$ requires a subset of stations:
$$ A_{ij} = \begin{cases} 1, & \text{if patient } i \text{ needs station } j \ 0, & \text{otherwise} \end{cases} $$
Expected length of stay:
$$ \mathbb{E}[\text{LOS}_i] =
\sum_j A_{ij} \left( \mathbb{E}[S_{ij}] + \mathbb{E}[W_{ij}] \right) $$
Here $S_{ij}$ is service time at station $j$ and $W_{ij}$ is the wait before that service starts.
This explains why the visible bottleneck may not be the true bottleneck.
If admitted patients board in the ED, then ED beds do not turn over. If CT backs up, abdominal pain and trauma patients sit longer. If inpatient beds are unavailable, ED throughput collapses even when triage itself is fast.
A stochastic ED crowding model using five years of minute-by-minute ED records found crowding to be highly sensitive to arrival flux and length of stay; in that model, a 10% arrival increase tripled the probability of overcrowding events, while reducing typical length of stay by 20 minutes reduced severe overcrowding events by 54%.
The exact numbers are model-specific. The structural point is that near saturation, small changes in arrivals or length of stay can produce disproportionate increases in crowding.
10. Resource mapping
A bed is not just a bed. Patients may need a resuscitation bay, monitored bed, isolation room, psych-safe room, pediatric room, fast-track chair, negative-pressure room, or procedure room.
Let $m_{ij}=1$ when resource $j$ is clinically compatible with patient $i$, and 0 otherwise. Let $z_{ij}=1$ when patient $i$ is assigned to that resource.
A simple assignment objective is:
$$ \max_z \sum_i\sum_j S_i m_{ij}z_{ij} $$
subject to each patient receiving no more than one current placement, each resource staying within capacity, and incompatible assignments being blocked. The score $S_i$ supplies urgency; $m_{ij}$ prevents a mathematically high-scoring but clinically unsafe placement.
11. A model architecture for triage
A useful model would combine structured triage data, the free-text note, repeated vitals, and department state.
age, HR, SBP, RR, SpO2, temp, GCS/AVPU, history -> tabular encoder
chief complaint + triage note -> text encoder
repeated vital signs -> temporal CNN
census, boarding, beds, staffing, queues -> department features
|
v
fused patient state
|
critical risk / admission / resources / LOS / reassessment
For repeated vitals, a 1D temporal CNN can learn short local patterns such as rising heart rate with falling blood pressure:
$$ h_l(t)=\sigma\left(\sum_{\tau=0}^{K}W_l(\tau)h_{l-1}(t-\tau)+b_l\right) $$
The kernel $W_l(\tau)$ moves across the time series and learns which short trends matter. The model then joins the temporal representation with tabular features, text features, and $C_t$.
A multi-task training objective could be:
$$ \mathcal{L} = \lambda_1\mathcal{L}{\text{critical}} + \lambda_2\mathcal{L}{\text{admission}} + \lambda_3\mathcal{L}{\text{resources}} + \lambda_4\mathcal{L}{\text{LOS}} + \lambda_5\mathcal{L}_{\text{calibration}} $$
Each loss trains one output, and the $\lambda$ terms control how much each task contributes. This is more useful than training only on the historical ESI label.
The 2019 scoping review on artificial neural networks in healthcare organizational decision-making is relevant here. It found ANN use not only in diagnosis, but also in resource use, scheduling, quality, and other operational decisions. Triage sits at that boundary between clinical prediction and hospital operations.
Better labels include:
* critical intervention within ED stay
* ICU admission
* death during encounter
* rapid response after admission
* intubation
* vasopressor use
* emergent procedure
* sepsis/stroke/STEMI pathway activation
* admission
* return within 72 hours
* ED length of stay
* resource use
* ICU CLABSI/CAUTI occurrences
(more about CLABSI and CAUTI in a few coming posts)
The target should match the decision.
12. Calibration matters more than raw accuracy
For triage, a risk score has to mean what it says. If the model assigns 10% risk to a group of similar patients, about 10% of that group should experience the outcome.
Calibration can be measured with the Brier score:
$$ \text{Brier}=\frac{1}{N}\sum_{i=1}^{N}(\hat{p}_i-y_i)^2 $$
It is the average squared distance between the predicted probability and the actual outcome. Lower is better. Expected calibration error adds a second view by binning predictions and comparing average predicted risk with observed outcome frequency in each bin.
AUC measures ranking: whether high-risk patients generally receive higher scores than low-risk patients. Calibration measures whether the probabilities can support threshold decisions. Triage needs both.
13. Routing thresholds can respond to capacity; clinical thresholds should not
Crowding can change where and how a patient is evaluated, but it should not change whether a patient meets a clinical emergency pathway or EMTALA screening/stabilization obligation.
A capacity-aware routing threshold might be:
$$ \tau_{\text{route},t} = \tau_0 + \alpha,\text{crowding}_t – \beta,\text{available monitored beds}_t – \gamma,\text{staff reserve}_t $$
Then:
$$ \text{Use scarce monitored placement}i = \mathbb{1}[S_i(t)>\tau{\text{route},t}] $$
This equation changes the threshold for one scarce placement, not the threshold for an ECG, stroke activation, sepsis treatment, medical screening exam, or other clinically required action. The model still has to compare this patient with everyone else waiting and identify the safest feasible route.
14. Metrics an ED should collect for triage engineering
A useful triage dataset should include patient-level, event-level, and department-level variables:
Patient and EHR inputs
* age
* sex
* arrival mode: walk-in, EMS, transfer
* chief complaint
* structured triage note
* HR, BP, RR, SpO₂, temperature
* pain score
* mental status: AVPU/GCS or local equivalent
* high-risk history: anticoagulation, pregnancy, immunosuppression, diabetes, CHF, COPD, ESRD, cancer, transplant, recent surgery
* medication flags: anticoagulants, insulin, immunosuppressants, opioids, beta blockers
* prior ED visits
* language/interpreter need
* mobility/fall risk
Timestamp metrics
* arrival time
* triage start/end
* ESI assigned time
* first vitals time
* repeat vitals time
* roomed time
* provider first contact
* ECG order/acquisition/read
* lab order/collection/result
* imaging order/start/result
* medication order/admin
* antibiotic recognition/order/admin
* consult request/callback/arrival
* disposition decision
* admission order
* physical departure from ED
Resource metrics
* labs ordered
* ECG
* X-ray
* CT
* MRI
* ultrasound
* IV meds
* respiratory support
* procedures
* consults
* sitter/security
* isolation
* monitored bed
* admission
* ICU admission
Outcomes
* critical intervention in ED
* intubation
* vasopressor use
* emergent surgery/procedure
* sepsis pathway activation
* stroke activation
* STEMI activation
* ICU admission
* floor admission
* discharge
* return within 72 hours
* death in ED/hospital
* upgrade to ICU within 24 hours of admission
* rapid response after admission
Department state
* ED census
* waiting room count
* number of open beds by type
* nurse staffing
* physician/APP staffing
* CT queue length
* lab turnaround time
* boarding count
* longest boarding time
* ambulance arrivals
* left-without-being-seen count
* inpatient bed availability
AI/CDS metrics
* model recommendation and probability at the time of triage
* nurse assignment before and after seeing the recommendation
* agreement, override, and override reason
* model response time and missing-input rate
* alert acceptance and alert fatigue
* calibration drift over time
* under-triage and over-triage by chief complaint, age, sex, language, arrival mode, and site
* time from recommendation to actual intervention
* outcome after agreement versus disagreement
15. Under-triage and over-triage should be measured separately
Let “high-risk outcome” mean critical intervention, ICU admission, death, or another locally defined severe outcome.
A useful under-triage metric:
$$ \text{Undertriage Rate} =
P(\text{ESI} \geq 3 \mid \text{high-risk outcome}) $$
assuming ESI 1–2 are treated as high-acuity for the chosen outcome definition
A useful over-triage metric:
$$ \text{Overtriage Rate} =
P(\text{ESI} \leq 2 \mid \text{low-risk outcome}) $$
Acuity sensitivity:
$$ \text{Sensitivity} =
P(\text{ESI} \leq 2 \mid \text{high-risk outcome}) $$
Acuity specificity:
$$ \text{Specificity} =
P(\text{ESI} \geq 3 \mid \text{low-risk outcome}) $$
This should then be stratified by chief complaint so the models can be recalibrated by presentation.
Chest pain triage, abdominal pain triage, pediatric fever triage, trauma triage, psych triage, and dyspnea triage are not the same problem.
For each complaint group $g$:
$$ \text{Undertriage}_g =
P(\text{ESI} \geq 3 \mid \text{high-risk outcome}, g) $$
This identifies where the triage system is weak.
A model that performs well overall can still fail on a smaller, higher-risk subgroup. Future research should consider using a weighted Kappa or cohen’s Kappa value for the IM-agreements.
16. Other triage systems make different design choices
ESI is not the only routine ED system. The Canadian Triage and Acuity Scale (CTAS) uses five levels with explicit time-to-provider targets. The Manchester Triage System uses complaint-specific flowcharts and discriminators. Reviews have generally found moderate-to-good validity for identifying high- and low-urgency patients, with meaningful variation across sites and patient groups.
START and JumpSTART, discussed above, are mass-casualty protocols rather than routine five-level ED intake systems.
The performance of any triage system is a product of the tool, training, reassessment, case mix, staffing, and downstream capacity. None of these systems performs bed mapping or physician workload balancing by itself.
17. Risks we encounter in this transition
1. Bad risk estimate
The patient is assigned too low because the presentation is atypical or early.
Examples:
- older patient with vague weakness and sepsis
- diabetic patient with atypical ACS symptoms
- anticoagulated fall with subtle head injury
- tachycardic febrile patient who looks comfortable
- ectopic pregnancy before rupture
- pediatric respiratory distress masked by compensation
2. Bad resource estimate
The patient is stable but needs more ED work than predicted.
Example:
$$ \hat{k}_i \ll k_i $$
This creates throughput error.
3. No reassessment loop
The initial label was reasonable, but the patient changed.
A useful rule:
$$ \text{Reassess}i = \mathbb{1}\left[t-T{\text{last vitals},i}>\tau_i\right] $$
where:
$$ \tau_i = \frac{\tau_0}{1+S_i} $$
Higher-risk patients get shorter reassessment intervals.
4. Queue hidden from decision-maker
The triage nurse assigns priority, but the downstream queue is worse than assumed.
The relevant delay is not time to triage, but time to interventions:
for cardiac: case could be STEMI, that means ECG and cath pathway. for stroke: CT and thrombolysis/thrombectomy evaluation. for sepsis, volemic shock, etc: visual recognition, lactate, cultures, antibiotics, fluids
5. Wrong objective
If the model is trained to predict admission, it may learn current human patterns. If trained to predict ESI, it may learn historical rules and not really make many waves. If trained to predict resource use, it may learn past resource allocations and not reoptimize
The cleaner target is closer to:
$$ P(\text{preventable harm if delayed} \mid x_i, C_t) $$
That’s super hard to measure in reality, but is a good ideal goal.
18. A practical triage decision support system
The useful version does not replace the triage nurse. It gives a second layer of computation.
For each patient, it could display:
Critical intervention risk: 6.2%
ICU risk: 3.1%
Admission risk: 48%
High-resource workup risk: 72%
Pathway flags: ECG now, repeat vitals in 15 min
Main drivers: age, tachycardia, SpO2, chest pain, anticoagulant use
That is more informative than a single output such as:
ESI 3: Urgent but stable
The model should expose its probability estimates, main drivers, missing inputs, and recommended reassessment interval. It should also record when the nurse agrees, overrides it, or changes the assignment after seeing it.
Evidence from a live ED deployment
A 2025 NEJM AI study led by R. Andrew Taylor evaluated an AI-informed triage CDS across 174,648 visits at three EDs, comparing 180 days before and after implementation. High-acuity identification among patients who required critical care increased from 78.8% to 83.1%. Median time from arrival to the initial care area fell from 12 to 8 minutes, time to disposition from 190 to 182 minutes, and time to ED departure from 311 to 292 minutes.
The nurse-agreement result is more useful than the headline. Nurses who frequently agreed with the CDS performed better than the AI independently, while the lower-agreement subgroup performed worse. Agreement and override behavior should therefore be treated as model-performance data, not just user-interface telemetry.
ERTRIAGE
CAREPOI’s ERTRIAGE is a device-based AI triage system that analyzes more than 50 clinical inputs and returns a full triage recommendation in under 180 seconds. It supports ESI, HEART, NEWS, and ROSIER workflows and can run locally or in the cloud. The company currently reports 98% classification accuracy and 30-40% reductions in waiting time. Those are vendor-reported figures and should be separated from independent, multicenter validation.
The interesting product decision is the hybrid architecture. Local inference keeps the triage tool available during network outages; cloud connectivity supports centralized updates, analytics, and cross-site monitoring.
AI at diff points in the care flow
PolyAI sits earlier in the chain. It provides HIPAA-compliant conversational voice AI for scheduling, cancellations, routing, and transportation coordination. At Howard Brown Health, its published case study reports 30% call containment and an average handle time of 58.6 seconds versus 3.5 minutes for human agents. SafeRide Health has used a PolyAI agent at a scale of about one million calls per month. Could remove administrative queueing before and after the ED encounter and can route calls that need a human response.
Theator sits later in the chain, inside the OR. It captures surgical video and uses computer vision and language models to identify procedural steps, anatomy, instruments, events, and safety milestones, then generates a structured operative report in seconds. Its platform has analyzed more than 600,000 procedures across more than 180 procedure types. A peer-reviewed head-to-head study reported 87.3% accuracy for AI-generated operative reports versus 72.8% for surgeon-written reports from memory. Theator also reports a cholecystectomy program in which Critical View of Safety adoption increased from 33% to 76%, with full-CVS cases running 13 minutes shorter.
TheatOR as a startup is useful as an analogy for triage: convert an unstructured clinical stream into structured events, compare those events with known best practices, and return decision support inside the existing workflow. Its longer-term vision is real-time surgical decision support and, eventually, a cognitive layer for more autonomous robotic systems.
19. How to optimize mathematically
A compact routing objective is:
$$ \min_z \sum_i\sum_j z_{ij} \left[ \mathbb{E}[H_i(w_{ij})] + \lambda,\mathbb{E}[\text{LOS}_{ij}] \right] $$
Here $z_{ij}=1$ means patient $i$ is assigned to resource or pathway $j$. The first term penalizes expected harm from the wait created by that assignment. The second penalizes expected length-of-stay burden, weighted by $\lambda$.
The optimization is constrained by three practical rules: each patient can occupy only one current placement, each resource has finite capacity, and the assignment must be clinically compatible. This keeps the math focused on the actual decision: classification plus routing plus queue control.
20. What I would build based on what I know now
KISS: I would build 4 key steps.
Layer 1: triage data capture
Make sure the ED has clean structured data, accounting for xi and Ct from before:
* vital signs
* chief complaint
* ESI
* timestamps
* repeat vitals
* pathway activations
* resource use
* outcomes
* department census/crowding
Layer 2: real-time reassessment queue
An alerts system that says:
these waiting-room patients need repeat vitals now
these patients crossed a risk threshold
these patients have waited too long for their risk group
these pathway clocks are close to breach
This is easier and safer than replacing triage.
Layer 3: resource prediction
Predict:
$$ \mathbb{E}[\text{labs, imaging, consults, admission, LOS} \mid x_i] $$
This helps staffing, fast-track routing, split-flow design, and CT/lab load forecasting.
Layer 4: deterioration/pathway risk
Predict time-sensitive risk:
$$ P(\text{critical intervention within } T) $$
and pathway triggers:
$$ P(\text{sepsis/stroke/STEMI pathway needed}) $$
Then validate prospectively.
21. The final model
The simplest useful statement is:
$$ \text{priority}_i(t) = \frac{\text{expected harm prevented by acting now}}{\text{expected scarce-resource use}} $$
The numerator combines current severity, probability of deterioration, and cost of pathway delay. The denominator estimates bed-minutes, nursing intensity, physician time, monitoring, and other constrained resources. The score is then limited by clinical compatibility and mandatory emergency pathways.
That captures the main variables:
- patient risk
- time sensitivity
- uncertainty
- resources
- crowding
- reassessment
- routing
TLDR. My personal learning: hospital triage is the first algorithm in emergency care. It takes incomplete clinical information, estimates hidden severity, predicts resource demand, handles queue pressure, and decides who cannot safely wait. The engineering problem is not only building a better scoring system that reduces info lost to compression, but also integrating a new system in a way that reduces existing bottlenecks rather than replacing them with newer ones.
Comments are closed for this post.