# SAPS 3 Simplified Acute Physiology Score

SAPS 3

Status: LIVE
Price: $0.005 USDC
`GET /api/calc/saps_3`
HTML: https://magentlab.com/docs/saps-3
Markdown: https://magentlab.com/docs/saps-3.md

Not a medical device. Not a diagnosis, dose, or listing recommendation.

## What it computes

Compute the Moreno 2005 SAPS 3 admission integer from Box I, Box II, and Box III at ICU admission, then the Part 2 global logit hospital-mortality percent.

## When to use

When an agent needs the published SAPS 3 admission integer and global hospital-mortality percent and must not invent SAPS II points, APACHE points, or unnamed class bands.

## When not to use

- Not a medical device. magent does not measure vitals and does not examine the patient.
- Each item is the ICU-admission (±1 h) value as assigned by the caller, not the worst value in 24 hours.
- Not SAPS II. Not APACHE II, APACHE III, or APACHE IV. Moreno 2005 boxes and global logit only.
- Optional comorbidity, reason-for-admission, and infection flags default to the published reference (0 extra points) when omitted. Present flags must be true or false.
- Comorbidities, reasons for admission, and infection flags are additive as published. Rhythm disturbances plus seizures score only -4.
- Hospital-mortality percent is the Part 2 global logit only. Regional custom equations are not applied. The paper publishes no named low/intermediate/high class bands.
- Temperature has no hyperthermia points on the 2005 scoresheet (<35 °C is 7; ≥35 °C is 0).

## Formula

```
SAPS 3 = 16 (admission offset) + Box I + Box II + Box III (Moreno 2005 Part 2 scoresheet). Box I: age (<40 → 0, 40-59 → 5, 60-69 → 9, 70-74 → 13, 75-79 → 15, ≥80 → 18); los_days (<14 → 0, 14-27 → 6, ≥28 → 7); location (operating_room → 0, emergency_room → 5, other_icu → 7, other → 8); comorbidities additive (cancer_therapy → 3, metastatic_cancer → 11, hematologic_cancer → 6, chronic_hf_nyha_iv → 6, cirrhosis → 8, aids → 8); vasoactive_drugs → 3. Box II: unplanned ICU admission → 3; reasons additive (rhythm_disturbances → -5, hypovolemic_shock → 3, septic_shock → 5, anaphylactic_or_mixed_shock → 5, liver_failure → 6, severe_pancreatitis → 9, acute_abdomen → 3, intracranial_mass_effect → 10, focal_neurologic_deficit → 7, seizures → -4, coma_stupor_agitation → 4; if rhythm and seizures both, only -4; hypovolemic_shock plus acute_abdomen scores both); surgical_status (scheduled_surgery → 0, emergency_surgery → 6, no_surgery → 5); surgery_site (transplantation → -11, trauma_isolated or trauma_multiple → -8, cabg_no_valve → -6, neurosurgery_cva → 5, all_others → 0); nosocomial_infection → 4, respiratory_infection → 5. Box III within ±1 h as assigned: GCS (3-4 → 15, 5 → 10, 6 → 7, 7-12 → 2, ≥13 → 0); bilirubin_mg_dl (<2 → 0, 2-<6 → 4, ≥6 → 5) or bilirubin_umol_l (<34.2 → 0, 34.2-<102.6 → 4, ≥102.6 → 5); temperature_c (<35 → 7, ≥35 → 0); creatinine_mg_dl (<1.2 → 0, 1.2-<2 → 2, 2-<3.5 → 7, ≥3.5 → 8) or creatinine_umol_l (<106.1 → 0, 106.1-<176.8 → 2, 176.8-<309.4 → 7, ≥309.4 → 8); heart_rate (<120 → 0, 120-159 → 5, ≥160 → 7); leukocytes_g_l (<15 → 0, ≥15 → 2); arterial_ph (≤7.25 → 3, >7.25 → 0); platelets_g_l (<20 → 13, 20-<50 → 8, 50-<100 → 5, ≥100 → 0); systolic_bp_mm_hg (<40 → 11, 40-<70 → 8, 70-<120 → 3, ≥120 → 0); oxygenation (PaO2/FiO2 <100 and MV → 11, PaO2/FiO2 ≥100 and MV → 7, PaO2 <60 and no MV → 5, else 0). logit = -32.6659 + ln(SAPS_3 + 20.5958) × 7.3068; estimated_probability_percent = 100 × exp(logit)/(1+exp(logit)); max 217
```

## Citation

[SAPS 3—From evaluation of the patient to evaluation of the intensive care unit. Part 2: Development of a prognostic model for hospital mortality at ICU admission](https://doi.org/10.1007/s00134-005-2763-5)
Moreno RP, Metnitz PGH, Almeida E, et al; SAPS 3 Investigators
Intensive Care Med. 2005;31(10):1345-1355
DOI: [10.1007/s00134-005-2763-5](https://doi.org/10.1007/s00134-005-2763-5)

## Worked example

### Low-acuity planned scheduled surgical admission, age 35, normal physiology

Given: `age=35, arterial_ph=7.40, bilirubin_mg_dl=0.8, creatinine_mg_dl=1.0, gcs=15, heart_rate=80, icu_admission=planned, leukocytes_g_l=8.0, location=operating_room, los_days=1, mechanical_ventilation=false, pao2_mm_hg=90, platelets_g_l=250, surgery_site=all_others, surgical_status=scheduled_surgery, systolic_bp_mm_hg=120, temperature_c=37.0, vasoactive_drugs=false`

1. Admission offset → 16. Age 35 → 0; los_days 1 → 0; operating_room → 0; no comorbidities; no vasoactive drugs
2. Planned, scheduled_surgery, all_others site, no scored reasons or infection → 0
3. GCS 15, bilirubin 0.8, temperature 37, creatinine 1.0, heart rate 80, leukocytes 8, pH 7.40, platelets 250, SBP 120, PaO2 90 without ventilation → 0
4. Score = 16 (max 217); logit = -32.6659 + ln(16 + 20.5958) × 7.3068; estimated_probability_percent from the unrounded logit


### Age 80 only

Given: `age=80, arterial_ph=7.40, bilirubin_mg_dl=0.8, creatinine_mg_dl=1.0, gcs=15, heart_rate=80, icu_admission=planned, leukocytes_g_l=8.0, location=operating_room, los_days=1, mechanical_ventilation=false, pao2_mm_hg=90, platelets_g_l=250, surgery_site=all_others, surgical_status=scheduled_surgery, systolic_bp_mm_hg=120, temperature_c=37.0, vasoactive_drugs=false`

1. All other Box I–III rows remain the low-acuity 0-point bands plus the 16-point offset
2. Age ≥80 → 18
3. Score = 34 (max 217) with the Part 2 global logit percent


## Also searched as

- SAPS 3
- Simplified Acute Physiology Score 3
- SAPS III
- Moreno SAPS 3
- ICU admission mortality score
- SAPS3

## Parameters

- `age` (integer, required): Age in years, integer 18-120, as assigned at ICU admission. <40 → 0; 40-59 → 5; 60-69 → 9; 70-74 → 13; 75-79 → 15; ≥80 → 18.
- `los_days` (integer, required): Hospital stay in days before ICU admission as assigned by the caller (integer 0-365). <14 → 0; 14-27 → 6; ≥28 → 7. magent does not subtract timestamps.
- `location` (string, required): Intra-hospital location before ICU admission: operating_room (0), emergency_room (5), other_icu (7; intermediate/high-dependency, other ICU, or recovery), or other (8; ward or other). magent does not classify the bed.
- `vasoactive_drugs` (boolean, required): true if the caller assigns vasoactive drugs before ICU admission (+3). false → 0. magent does not inspect the medication list.
- `icu_admission` (string, required): Planned (0) or unplanned (3) ICU admission as assigned by the caller. magent does not classify the admission.
- `surgical_status` (string, required): Surgical status at ICU admission: scheduled_surgery (0), emergency_surgery (6), or no_surgery (5).
- `surgery_site` (string, required): Anatomical site of surgery as assigned: all_others (0), transplantation (-11), trauma_isolated or trauma_multiple (-8), cabg_no_valve (-6), or neurosurgery_cva (5). One token. magent does not classify a procedure.
- `gcs` (integer, required): Lowest estimated Glasgow Coma Scale, integer 3-15, within ±1 h of ICU admission as assigned by the caller. 3-4 → 15; 5 → 10; 6 → 7; 7-12 → 2; ≥13 → 0. magent does not examine the patient.
- `bilirubin_mg_dl` (number, optional): Highest total bilirubin in mg/dL (0-40). One of bilirubin_mg_dl or bilirubin_umol_l is required. If both are sent, bilirubin_mg_dl is scored. <2 → 0; 2-<6 → 4; ≥6 → 5.
- `bilirubin_umol_l` (number, optional): Highest total bilirubin in µmol/L (0-684). Alternate to bilirubin_mg_dl. Ignored when bilirubin_mg_dl is present. <34.2 → 0; 34.2-<102.6 → 4; ≥102.6 → 5. magent does not convert units.
- `temperature_c` (number, required): Highest body temperature in °C (20-46) within ±1 h as assigned. <35 → 7; ≥35 → 0. The scoresheet has no hyperthermia points. magent does not measure temperature or convert Fahrenheit.
- `creatinine_mg_dl` (number, optional): Highest creatinine in mg/dL (0.1-20). One of creatinine_mg_dl or creatinine_umol_l is required. If both are sent, creatinine_mg_dl is scored. <1.2 → 0; 1.2-<2 → 2; 2-<3.5 → 7; ≥3.5 → 8.
- `creatinine_umol_l` (number, optional): Highest creatinine in µmol/L (9-1768). Alternate to creatinine_mg_dl. Ignored when creatinine_mg_dl is present. <106.1 → 0; 106.1-<176.8 → 2; 176.8-<309.4 → 7; ≥309.4 → 8. magent does not convert units.
- `heart_rate` (integer, required): Highest heart rate in beats/min, integer 20-250. <120 → 0; 120-159 → 5; ≥160 → 7. magent does not measure pulse.
- `leukocytes_g_l` (number, required): Lowest leukocytes in G/L (0.1-200), numerically equal to 10^9/L. <15 → 0; ≥15 → 2. magent does not count cells.
- `arterial_ph` (number, required): Lowest arterial pH (6.5-8.0). ≤7.25 → 3; >7.25 → 0.
- `platelets_g_l` (number, required): Lowest platelets in G/L (0-2000). <20 → 13; 20-<50 → 8; 50-<100 → 5; ≥100 → 0.
- `systolic_bp_mm_hg` (number, required): Lowest systolic blood pressure in mm Hg (20-300). <40 → 11; 40-<70 → 8; 70-<120 → 3; ≥120 → 0. magent does not measure blood pressure.
- `mechanical_ventilation` (boolean, required): true if the caller assigns mechanical ventilation at ICU admission. true scores PaO2/FiO2 (pao2_fio2 required). false scores PaO2 (pao2_mm_hg required) and pao2_fio2 is ignored.
- `pao2_fio2` (number, optional): PaO2/FiO2 ratio in mm Hg (10-800). Required when mechanical_ventilation is true. <100 → 11; ≥100 → 7. Ignored when mechanical_ventilation is false. magent does not compute the ratio.
- `pao2_mm_hg` (number, optional): Lowest PaO2 in mm Hg (20-700). Required when mechanical_ventilation is false. <60 → 5; ≥60 → 0. Ignored when mechanical_ventilation is true.
- `cancer_therapy` (boolean, optional): Chemotherapy, other immunosuppression, radiotherapy, or steroid treatment as assigned (+3). Additive with other comorbidity flags. Omit or false → 0.
- `metastatic_cancer` (boolean, optional): Metastatic cancer as assigned (+11). Additive. Omit or false → 0. magent does not diagnose.
- `hematologic_cancer` (boolean, optional): Haematological cancer as assigned (+6). Additive. Omit or false → 0.
- `chronic_hf_nyha_iv` (boolean, optional): Chronic heart failure NYHA class IV as assigned (+6). Additive. Omit or false → 0.
- `cirrhosis` (boolean, optional): Cirrhosis as assigned (+8). Additive with aids. Omit or false → 0.
- `aids` (boolean, optional): AIDS as assigned (+8). Additive with cirrhosis. Omit or false → 0.
- `rhythm_disturbances` (boolean, optional): Cardiovascular reason: rhythm disturbances (-5). If seizures is also true, only -4 is scored. Omit or false → 0.
- `hypovolemic_shock` (boolean, optional): Hypovolemic hemorrhagic or non-hemorrhagic shock as one Box II row (+3). Additive with acute_abdomen. Omit or false → 0.
- `septic_shock` (boolean, optional): Septic shock as a reason for ICU admission (+5). Additive. Omit or false → 0.
- `anaphylactic_or_mixed_shock` (boolean, optional): Anaphylactic, mixed, or undefined shock (+5). Additive. Omit or false → 0.
- `liver_failure` (boolean, optional): Hepatic liver failure as a reason for ICU admission (+6). Omit or false → 0.
- `severe_pancreatitis` (boolean, optional): Severe pancreatitis (+9). Omit or false → 0.
- `acute_abdomen` (boolean, optional): Digestive acute abdomen or other digestive (not pancreatitis) as one Box II row (+3). Additive with hypovolemic_shock. Omit or false → 0.
- `intracranial_mass_effect` (boolean, optional): Neurologic intracranial mass effect (+10). Additive. Omit or false → 0.
- `focal_neurologic_deficit` (boolean, optional): Focal neurologic deficit (+7). Additive. Omit or false → 0.
- `seizures` (boolean, optional): Seizures (-4). If rhythm_disturbances is also true, only -4 is scored. Omit or false → 0.
- `coma_stupor_agitation` (boolean, optional): Coma, stupor, obtunded, agitation, vigilance disturbance, confusion, or delirium (+4). Omit or false → 0.
- `nosocomial_infection` (boolean, optional): Hospital-acquired infection at ICU admission (+4). Additive with respiratory_infection. Omit or false → 0.
- `respiratory_infection` (boolean, optional): Lower respiratory tract infection at ICU admission (+5). Additive with nosocomial_infection. Omit or false → 0.

## Bulk (POST)

POST the same path with a JSON items array. The first item is the GET unit; each additional item is $0.002. Invalid items return HTTP 400 before settlement.

Method: `POST /api/calc/saps_3`
Max items: 25
Price: unit_amount + extra_item_amount * (n - 1) (unit 5000 atomic, extra 2000 atomic)
Status: PREVIEW

- 1 to 25 items. Each item uses the same keys as the GET query parameters.
- POST of 1 item costs the same as GET. Lists longer than 25: chunk into multiple POSTs. Extra items still execute; do not pad dummy rows.
- The first invalid item fails the whole request (index in the 400 JSON). You are not charged.
- HTTP 200 is {count, path, items}. Each items[i] is the GET 200 body for that row.
- Catalog misses (empty matches, found=false) stay paid 200s inside that slot.
- x402 resource URL is this path plus n and body_sha256. Browsers that prefer text/html get the same paywall as GET; Pay retries POST with the same items.

Example request:

```json
{
  "items": [
    {
      "age": "35",
      "arterial_ph": "7.40",
      "bilirubin_mg_dl": "0.8",
      "creatinine_mg_dl": "1.0",
      "gcs": "15",
      "heart_rate": "80",
      "icu_admission": "planned",
      "leukocytes_g_l": "8.0",
      "location": "operating_room",
      "los_days": "1",
      "mechanical_ventilation": "false",
      "pao2_mm_hg": "90",
      "platelets_g_l": "250",
      "surgery_site": "all_others",
      "surgical_status": "scheduled_surgery",
      "systolic_bp_mm_hg": "120",
      "temperature_c": "37.0",
      "vasoactive_drugs": "false"
    },
    {
      "age": "35",
      "arterial_ph": "7.40",
      "bilirubin_mg_dl": "0.8",
      "creatinine_mg_dl": "1.0",
      "gcs": "15",
      "heart_rate": "80",
      "icu_admission": "planned",
      "leukocytes_g_l": "8.0",
      "location": "operating_room",
      "los_days": "1",
      "mechanical_ventilation": "false",
      "pao2_mm_hg": "90",
      "platelets_g_l": "250",
      "surgery_site": "all_others",
      "surgical_status": "scheduled_surgery",
      "systolic_bp_mm_hg": "120",
      "temperature_c": "37.0",
      "vasoactive_drugs": "false"
    }
  ]
}
```

Human paywall (two-item fixture): https://api.magentlab.com/paywall/bulk/saps-3

Example 200:

```json
{
  "count": 2,
  "path": "/api/calc/saps_3",
  "items": [
    {
      "components": [
        {
          "value": 16,
          "factor": "admission_offset",
          "points": 16,
          "present": true
        },
        {
          "value": 35,
          "factor": "age",
          "points": 0,
          "present": false
        },
        {
          "value": 1,
          "factor": "los_days",
          "points": 0,
          "present": false
        },
        {
          "value": "operating_room",
          "factor": "location",
          "points": 0,
          "present": false
        },
        {
          "factor": "comorbidities",
          "points": 0,
          "present": false,
          "aids": false,
          "cancer_therapy": false,
          "chronic_hf_nyha_iv": false,
          "cirrhosis": false,
          "hematologic_cancer": false,
          "metastatic_cancer": false
        },
        {
          "value": false,
          "factor": "vasoactive_drugs",
          "points": 0,
          "present": false
        },
        {
          "value": "planned",
          "factor": "icu_admission",
          "points": 0,
          "present": false
        },
        {
          "factor": "reasons_for_admission",
          "points": 0,
          "present": false,
          "acute_abdomen": false,
          "anaphylactic_or_mixed_shock": false,
          "coma_stupor_agitation": false,
          "focal_neurologic_deficit": false,
          "hypovolemic_shock": false,
          "intracranial_mass_effect": false,
          "liver_failure": false,
          "rhythm_disturbances": false,
          "seizures": false,
          "septic_shock": false,
          "severe_pancreatitis": false
        },
        {
          "value": "scheduled_surgery",
          "factor": "surgical_status",
          "points": 0,
          "present": false
        },
        {
          "value": "all_others",
          "factor": "surgery_site",
          "points": 0,
          "present": false
        },
        {
          "factor": "infection",
          "points": 0,
          "present": false,
          "nosocomial_infection": false,
          "respiratory_infection": false
        },
        {
          "value": 15,
          "factor": "gcs",
          "points": 0,
          "present": false
        },
        {
          "value": 0.8,
          "factor": "bilirubin",
          "branch": "bilirubin_mg_dl",
          "points": 0,
          "present": false
        },
        {
          "value": 37.0,
          "factor": "temperature_c",
          "points": 0,
          "present": false
        },
        {
          "value": 1.0,
          "factor": "creatinine",
          "branch": "creatinine_mg_dl",
          "points": 0,
          "present": false
        },
        {
          "value": 80,
          "factor": "heart_rate",
          "points": 0,
          "present": false
        },
        {
          "value": 8.0,
          "factor": "leukocytes_g_l",
          "points": 0,
          "present": false
        },
        {
          "value": 7.4,
          "factor": "arterial_ph",
          "points": 0,
          "present": false
        },
        {
          "value": 250.0,
          "factor": "platelets_g_l",
          "points": 0,
          "present": false
        },
        {
          "value": 120.0,
          "factor": "systolic_bp_mm_hg",
          "points": 0,
          "present": false
        },
        {
          "value": 90.0,
          "factor": "oxygenation",
          "branch": "pao2_no_mv",
          "points": 0,
          "present": false,
          "mechanical_ventilation": false
        }
      ],
      "disclaimer": "Not a medical device. Deterministic published-formula or published-code output for autonomous agents. A licensed clinician remains responsible for patient care and billing submissions.",
      "citation": {
        "authors": "Moreno RP, Metnitz PGH, Almeida E, et al; SAPS 3 Investigators",
        "doi": "10.1007/s00134-005-2763-5",
        "id": "moreno-2005",
        "pmid": "16132893",
        "source": "Intensive Care Med. 2005;31(10):1345-1355",
        "title": "SAPS 3—From evaluation of the patient to evaluation of the intensive care unit. Part 2: Development of a prognostic model for hospital mortality at ICU admission"
      },
      "formula": "saps_3",
      "formula_expression": "SAPS 3 = 16 (admission offset) + Box I + Box II + Box III (Moreno 2005 Part 2 scoresheet). Box I: age (<40 → 0, 40-59 → 5, 60-69 → 9, 70-74 → 13, 75-79 → 15, ≥80 → 18); los_days (<14 → 0, 14-27 → 6, ≥28 → 7); location (operating_room → 0, emergency_room → 5, other_icu → 7, other → 8); comorbidities additive (cancer_therapy → 3, metastatic_cancer → 11, hematologic_cancer → 6, chronic_hf_nyha_iv → 6, cirrhosis → 8, aids → 8); vasoactive_drugs → 3. Box II: unplanned ICU admission → 3; reasons additive (rhythm_disturbances → -5, hypovolemic_shock → 3, septic_shock → 5, anaphylactic_or_mixed_shock → 5, liver_failure → 6, severe_pancreatitis → 9, acute_abdomen → 3, intracranial_mass_effect → 10, focal_neurologic_deficit → 7, seizures → -4, coma_stupor_agitation → 4; if rhythm and seizures both, only -4; hypovolemic_shock plus acute_abdomen scores both); surgical_status (scheduled_surgery → 0, emergency_surgery → 6, no_surgery → 5); surgery_site (transplantation → -11, trauma_isolated or trauma_multiple → -8, cabg_no_valve → -6, neurosurgery_cva → 5, all_others → 0); nosocomial_infection → 4, respiratory_infection → 5. Box III within ±1 h as assigned: GCS (3-4 → 15, 5 → 10, 6 → 7, 7-12 → 2, ≥13 → 0); bilirubin_mg_dl (<2 → 0, 2-<6 → 4, ≥6 → 5) or bilirubin_umol_l (<34.2 → 0, 34.2-<102.6 → 4, ≥102.6 → 5); temperature_c (<35 → 7, ≥35 → 0); creatinine_mg_dl (<1.2 → 0, 1.2-<2 → 2, 2-<3.5 → 7, ≥3.5 → 8) or creatinine_umol_l (<106.1 → 0, 106.1-<176.8 → 2, 176.8-<309.4 → 7, ≥309.4 → 8); heart_rate (<120 → 0, 120-159 → 5, ≥160 → 7); leukocytes_g_l (<15 → 0, ≥15 → 2); arterial_ph (≤7.25 → 3, >7.25 → 0); platelets_g_l (<20 → 13, 20-<50 → 8, 50-<100 → 5, ≥100 → 0); systolic_bp_mm_hg (<40 → 11, 40-<70 → 8, 70-<120 → 3, ≥120 → 0); oxygenation (PaO2/FiO2 <100 and MV → 11, PaO2/FiO2 ≥100 and MV → 7, PaO2 <60 and no MV → 5, else 0). logit = -32.6659 + ln(SAPS_3 + 20.5958) × 7.3068; estimated_probability_percent = 100 × exp(logit)/(1+exp(logit)); max 217",
      "max_score": 217,
      "score": 16,
      "estimated_probability_percent": 0.17,
      "logit": -6.3619
    },
    {
      "components": [
        {
          "value": 16,
          "factor": "admission_offset",
          "points": 16,
          "present": true
        },
        {
          "value": 35,
          "factor": "age",
          "points": 0,
          "present": false
        },
        {
          "value": 1,
          "factor": "los_days",
          "points": 0,
          "present": false
        },
        {
          "value": "operating_room",
          "factor": "location",
          "points": 0,
          "present": false
        },
        {
          "factor": "comorbidities",
          "points": 0,
          "present": false,
          "aids": false,
          "cancer_therapy": false,
          "chronic_hf_nyha_iv": false,
          "cirrhosis": false,
          "hematologic_cancer": false,
          "metastatic_cancer": false
        },
        {
          "value": false,
          "factor": "vasoactive_drugs",
          "points": 0,
          "present": false
        },
        {
          "value": "planned",
          "factor": "icu_admission",
          "points": 0,
          "present": false
        },
        {
          "factor": "reasons_for_admission",
          "points": 0,
          "present": false,
          "acute_abdomen": false,
          "anaphylactic_or_mixed_shock": false,
          "coma_stupor_agitation": false,
          "focal_neurologic_deficit": false,
          "hypovolemic_shock": false,
          "intracranial_mass_effect": false,
          "liver_failure": false,
          "rhythm_disturbances": false,
          "seizures": false,
          "septic_shock": false,
          "severe_pancreatitis": false
        },
        {
          "value": "scheduled_surgery",
          "factor": "surgical_status",
          "points": 0,
          "present": false
        },
        {
          "value": "all_others",
          "factor": "surgery_site",
          "points": 0,
          "present": false
        },
        {
          "factor": "infection",
          "points": 0,
          "present": false,
          "nosocomial_infection": false,
          "respiratory_infection": false
        },
        {
          "value": 15,
          "factor": "gcs",
          "points": 0,
          "present": false
        },
        {
          "value": 0.8,
          "factor": "bilirubin",
          "branch": "bilirubin_mg_dl",
          "points": 0,
          "present": false
        },
        {
          "value": 37.0,
          "factor": "temperature_c",
          "points": 0,
          "present": false
        },
        {
          "value": 1.0,
          "factor": "creatinine",
          "branch": "creatinine_mg_dl",
          "points": 0,
          "present": false
        },
        {
          "value": 80,
          "factor": "heart_rate",
          "points": 0,
          "present": false
        },
        {
          "value": 8.0,
          "factor": "leukocytes_g_l",
          "points": 0,
          "present": false
        },
        {
          "value": 7.4,
          "factor": "arterial_ph",
          "points": 0,
          "present": false
        },
        {
          "value": 250.0,
          "factor": "platelets_g_l",
          "points": 0,
          "present": false
        },
        {
          "value": 120.0,
          "factor": "systolic_bp_mm_hg",
          "points": 0,
          "present": false
        },
        {
          "value": 90.0,
          "factor": "oxygenation",
          "branch": "pao2_no_mv",
          "points": 0,
          "present": false,
          "mechanical_ventilation": false
        }
      ],
      "disclaimer": "Not a medical device. Deterministic published-formula or published-code output for autonomous agents. A licensed clinician remains responsible for patient care and billing submissions.",
      "citation": {
        "authors": "Moreno RP, Metnitz PGH, Almeida E, et al; SAPS 3 Investigators",
        "doi": "10.1007/s00134-005-2763-5",
        "id": "moreno-2005",
        "pmid": "16132893",
        "source": "Intensive Care Med. 2005;31(10):1345-1355",
        "title": "SAPS 3—From evaluation of the patient to evaluation of the intensive care unit. Part 2: Development of a prognostic model for hospital mortality at ICU admission"
      },
      "formula": "saps_3",
      "formula_expression": "SAPS 3 = 16 (admission offset) + Box I + Box II + Box III (Moreno 2005 Part 2 scoresheet). Box I: age (<40 → 0, 40-59 → 5, 60-69 → 9, 70-74 → 13, 75-79 → 15, ≥80 → 18); los_days (<14 → 0, 14-27 → 6, ≥28 → 7); location (operating_room → 0, emergency_room → 5, other_icu → 7, other → 8); comorbidities additive (cancer_therapy → 3, metastatic_cancer → 11, hematologic_cancer → 6, chronic_hf_nyha_iv → 6, cirrhosis → 8, aids → 8); vasoactive_drugs → 3. Box II: unplanned ICU admission → 3; reasons additive (rhythm_disturbances → -5, hypovolemic_shock → 3, septic_shock → 5, anaphylactic_or_mixed_shock → 5, liver_failure → 6, severe_pancreatitis → 9, acute_abdomen → 3, intracranial_mass_effect → 10, focal_neurologic_deficit → 7, seizures → -4, coma_stupor_agitation → 4; if rhythm and seizures both, only -4; hypovolemic_shock plus acute_abdomen scores both); surgical_status (scheduled_surgery → 0, emergency_surgery → 6, no_surgery → 5); surgery_site (transplantation → -11, trauma_isolated or trauma_multiple → -8, cabg_no_valve → -6, neurosurgery_cva → 5, all_others → 0); nosocomial_infection → 4, respiratory_infection → 5. Box III within ±1 h as assigned: GCS (3-4 → 15, 5 → 10, 6 → 7, 7-12 → 2, ≥13 → 0); bilirubin_mg_dl (<2 → 0, 2-<6 → 4, ≥6 → 5) or bilirubin_umol_l (<34.2 → 0, 34.2-<102.6 → 4, ≥102.6 → 5); temperature_c (<35 → 7, ≥35 → 0); creatinine_mg_dl (<1.2 → 0, 1.2-<2 → 2, 2-<3.5 → 7, ≥3.5 → 8) or creatinine_umol_l (<106.1 → 0, 106.1-<176.8 → 2, 176.8-<309.4 → 7, ≥309.4 → 8); heart_rate (<120 → 0, 120-159 → 5, ≥160 → 7); leukocytes_g_l (<15 → 0, ≥15 → 2); arterial_ph (≤7.25 → 3, >7.25 → 0); platelets_g_l (<20 → 13, 20-<50 → 8, 50-<100 → 5, ≥100 → 0); systolic_bp_mm_hg (<40 → 11, 40-<70 → 8, 70-<120 → 3, ≥120 → 0); oxygenation (PaO2/FiO2 <100 and MV → 11, PaO2/FiO2 ≥100 and MV → 7, PaO2 <60 and no MV → 5, else 0). logit = -32.6659 + ln(SAPS_3 + 20.5958) × 7.3068; estimated_probability_percent = 100 × exp(logit)/(1+exp(logit)); max 217",
      "max_score": 217,
      "score": 16,
      "estimated_probability_percent": 0.17,
      "logit": -6.3619
    }
  ]
}
```

## Response fields

- `formula` (string): saps_3
- `formula_expression` (string): Exact expression used
- `score` (integer): SAPS 3 integer 0-217
- `max_score` (integer): Always 217
- `logit` (number): Moreno 2005 Part 2 global logit, 4 decimal places
- `estimated_probability_percent` (number): 100*exp(logit)/(1+exp(logit)) from the unrounded logit, 2 decimal places. A percent, not a named class.
- `components` (array): Admission offset plus Box I, Box II, and Box III rows
- `citation` (object): Moreno 2005 citation
- `disclaimer` (string): Not-a-device notice

## Example JSON

Frozen fixture. Not a live lookup.

```json
{
  "components": [
    {
      "value": 16,
      "factor": "admission_offset",
      "points": 16,
      "present": true
    },
    {
      "value": 35,
      "factor": "age",
      "points": 0,
      "present": false
    },
    {
      "value": 1,
      "factor": "los_days",
      "points": 0,
      "present": false
    },
    {
      "value": "operating_room",
      "factor": "location",
      "points": 0,
      "present": false
    },
    {
      "factor": "comorbidities",
      "points": 0,
      "present": false,
      "aids": false,
      "cancer_therapy": false,
      "chronic_hf_nyha_iv": false,
      "cirrhosis": false,
      "hematologic_cancer": false,
      "metastatic_cancer": false
    },
    {
      "value": false,
      "factor": "vasoactive_drugs",
      "points": 0,
      "present": false
    },
    {
      "value": "planned",
      "factor": "icu_admission",
      "points": 0,
      "present": false
    },
    {
      "factor": "reasons_for_admission",
      "points": 0,
      "present": false,
      "acute_abdomen": false,
      "anaphylactic_or_mixed_shock": false,
      "coma_stupor_agitation": false,
      "focal_neurologic_deficit": false,
      "hypovolemic_shock": false,
      "intracranial_mass_effect": false,
      "liver_failure": false,
      "rhythm_disturbances": false,
      "seizures": false,
      "septic_shock": false,
      "severe_pancreatitis": false
    },
    {
      "value": "scheduled_surgery",
      "factor": "surgical_status",
      "points": 0,
      "present": false
    },
    {
      "value": "all_others",
      "factor": "surgery_site",
      "points": 0,
      "present": false
    },
    {
      "factor": "infection",
      "points": 0,
      "present": false,
      "nosocomial_infection": false,
      "respiratory_infection": false
    },
    {
      "value": 15,
      "factor": "gcs",
      "points": 0,
      "present": false
    },
    {
      "value": 0.8,
      "factor": "bilirubin",
      "branch": "bilirubin_mg_dl",
      "points": 0,
      "present": false
    },
    {
      "value": 37.0,
      "factor": "temperature_c",
      "points": 0,
      "present": false
    },
    {
      "value": 1.0,
      "factor": "creatinine",
      "branch": "creatinine_mg_dl",
      "points": 0,
      "present": false
    },
    {
      "value": 80,
      "factor": "heart_rate",
      "points": 0,
      "present": false
    },
    {
      "value": 8.0,
      "factor": "leukocytes_g_l",
      "points": 0,
      "present": false
    },
    {
      "value": 7.4,
      "factor": "arterial_ph",
      "points": 0,
      "present": false
    },
    {
      "value": 250.0,
      "factor": "platelets_g_l",
      "points": 0,
      "present": false
    },
    {
      "value": 120.0,
      "factor": "systolic_bp_mm_hg",
      "points": 0,
      "present": false
    },
    {
      "value": 90.0,
      "factor": "oxygenation",
      "branch": "pao2_no_mv",
      "points": 0,
      "present": false,
      "mechanical_ventilation": false
    }
  ],
  "disclaimer": "Not a medical device. Deterministic published-formula or published-code output for autonomous agents. A licensed clinician remains responsible for patient care and billing submissions.",
  "citation": {
    "authors": "Moreno RP, Metnitz PGH, Almeida E, et al; SAPS 3 Investigators",
    "doi": "10.1007/s00134-005-2763-5",
    "id": "moreno-2005",
    "pmid": "16132893",
    "source": "Intensive Care Med. 2005;31(10):1345-1355",
    "title": "SAPS 3—From evaluation of the patient to evaluation of the intensive care unit. Part 2: Development of a prognostic model for hospital mortality at ICU admission"
  },
  "formula": "saps_3",
  "formula_expression": "SAPS 3 = 16 (admission offset) + Box I + Box II + Box III (Moreno 2005 Part 2 scoresheet). Box I: age (<40 → 0, 40-59 → 5, 60-69 → 9, 70-74 → 13, 75-79 → 15, ≥80 → 18); los_days (<14 → 0, 14-27 → 6, ≥28 → 7); location (operating_room → 0, emergency_room → 5, other_icu → 7, other → 8); comorbidities additive (cancer_therapy → 3, metastatic_cancer → 11, hematologic_cancer → 6, chronic_hf_nyha_iv → 6, cirrhosis → 8, aids → 8); vasoactive_drugs → 3. Box II: unplanned ICU admission → 3; reasons additive (rhythm_disturbances → -5, hypovolemic_shock → 3, septic_shock → 5, anaphylactic_or_mixed_shock → 5, liver_failure → 6, severe_pancreatitis → 9, acute_abdomen → 3, intracranial_mass_effect → 10, focal_neurologic_deficit → 7, seizures → -4, coma_stupor_agitation → 4; if rhythm and seizures both, only -4; hypovolemic_shock plus acute_abdomen scores both); surgical_status (scheduled_surgery → 0, emergency_surgery → 6, no_surgery → 5); surgery_site (transplantation → -11, trauma_isolated or trauma_multiple → -8, cabg_no_valve → -6, neurosurgery_cva → 5, all_others → 0); nosocomial_infection → 4, respiratory_infection → 5. Box III within ±1 h as assigned: GCS (3-4 → 15, 5 → 10, 6 → 7, 7-12 → 2, ≥13 → 0); bilirubin_mg_dl (<2 → 0, 2-<6 → 4, ≥6 → 5) or bilirubin_umol_l (<34.2 → 0, 34.2-<102.6 → 4, ≥102.6 → 5); temperature_c (<35 → 7, ≥35 → 0); creatinine_mg_dl (<1.2 → 0, 1.2-<2 → 2, 2-<3.5 → 7, ≥3.5 → 8) or creatinine_umol_l (<106.1 → 0, 106.1-<176.8 → 2, 176.8-<309.4 → 7, ≥309.4 → 8); heart_rate (<120 → 0, 120-159 → 5, ≥160 → 7); leukocytes_g_l (<15 → 0, ≥15 → 2); arterial_ph (≤7.25 → 3, >7.25 → 0); platelets_g_l (<20 → 13, 20-<50 → 8, 50-<100 → 5, ≥100 → 0); systolic_bp_mm_hg (<40 → 11, 40-<70 → 8, 70-<120 → 3, ≥120 → 0); oxygenation (PaO2/FiO2 <100 and MV → 11, PaO2/FiO2 ≥100 and MV → 7, PaO2 <60 and no MV → 5, else 0). logit = -32.6659 + ln(SAPS_3 + 20.5958) × 7.3068; estimated_probability_percent = 100 × exp(logit)/(1+exp(logit)); max 217",
  "max_score": 217,
  "score": 16,
  "estimated_probability_percent": 0.17,
  "logit": -6.3619
}
```

## Errors

- HTTP 400 `invalid_saps_3`: SAPS 3 needs Moreno 2005 ICU admission predictors in published ranges. Returned before settlement; you are not charged.
- HTTP 400 `invalid_items`: POST body must be a JSON object with only an items array Returned before settlement; you are not charged.
- HTTP 400 `invalid_item_count`: items must be an array of 1 to 25 objects Returned before settlement; you are not charged.
- HTTP 400 `invalid_item`: each items entry must be a JSON object Returned before settlement; you are not charged.

Shared HTTP 402 and 503: https://magentlab.com/docs/payments

## Related tools

- [SAPS II](https://magentlab.com/docs/saps-ii) — Compute the Le Gall 1993 SAPS II integer from 12 physiology variables, age, type of admission, and one chronic disease, then the paper's logit hospital-mortality probability.
- [APACHE II](https://magentlab.com/docs/apache-ii) — Compute the Knaus 1985 APACHE II integer from 12 Acute Physiology Score items, age points, and chronic-health points.

## Payment

Unpaid requests return HTTP 402 even if query parameters or POST items are missing or invalid, so CDP and agents can index the path. After a PAYMENT-SIGNATURE, invalid params return HTTP 400 JSON before settlement. magent does not charge. Fix the params, then request a new 402 quote for that complete URL. Catalog misses (empty matches, found=false) are valid paid 200s.

- GET the tool with Accept: application/json (do not send Accept: text/html unless you want the human paywall).
- HTTP 402 means you have not paid. Decode the base64 PAYMENT-REQUIRED header. HTTP 503 is not a new quote.
- Sign accepts[0] (exact, EIP-3009) with validBefore = now + maxTimeoutSeconds (600 seconds), or accepts[1] (batch-settlement deposit/voucher) on product GET. Ping and POST {items} stay exact. Magent retries transient facilitator 429/5xx before answering.
- Retry the same URL with PAYMENT-SIGNATURE (base64 JSON of accepted and payload). Magent attaches canonical extensions.bazaar on CDP verify/settle; echoing 402 bazaar is optional.
- Success is HTTP 200 JSON plus PAYMENT-RESPONSE. exact settles before the tool. batch-settlement verifies (and deposit-settles) before the tool and commits the charge after HTTP 2xx. HTTP 503: retry the same PAYMENT-SIGNATURE. Mint a new exact nonce only after a new HTTP 402.

- offered `exact` on eip155:8453: Fixed-price USDC on Base. The buyer authorizes the advertised amount (EIP-3009). magent settles before the tool runs (paymentFlow upfront). extra.assetTransferMethod=eip3009 extra.paymentFlow=upfront.
- offered `batch-settlement` on eip155:8453: Payment-channel vouchers claimed later in batches. Exact stays accepts[0]. Same-path POST {items} is still exact. extra.assetTransferMethod=eip3009 extra.paymentFlow=authorization.

- not offered `upto`: Not offered. Usage-based: buyer authorizes a ceiling, seller settles the actual amount after work. Reserved for a future metered tool. Not for current calculators or code search.

Same-path POST {items} is still scheme exact: one EIP-3009 authorization for GET unit plus $0.002 per extra item. That is not x402 batch-settlement (payment channels / vouchers).

Shared HTTP 402 and 503 table: https://magentlab.com/docs/payments

Stdio MCP (one process per host): https://magentlab.com/docs/mcp

## Guarantees

- HTTP 402 is unpaid, including a missing query. After PAYMENT-SIGNATURE, invalid parameters return HTTP 400 before settlement. You are not charged. HTTP 402 never includes the tool JSON.
- exact: settlement finishes before the tool (paymentFlow upfront). batch-settlement: verify/deposit before the tool; chargedCumulativeAmount commits after HTTP 2xx. Uncertain or failed settlement fails closed (HTTP 503). Retry the same PAYMENT-SIGNATURE.
- HTTP 402 is unpaid only. Do not sign a second authorization because of a 503.
- Execution is timeout-bounded and concurrency-capped.
- Calculator inputs are stored encrypted for allowlisted operators (Magent Console). They are not in public logs, SSH lookups, catalog, or rollups. Request logs store path without query.
