# STUMBL Score Calculator (Battle 2014)

> STUMBL Score Calculator (Battle 2014) is a paid API for AI agents from api.magentlab.com, paid per call via x402, $0.005/call, status unknown (last checked 2026-09-14).

Computes the STUMBL integer risk score for complications after blunt chest wall trauma based on age, rib fracture count, chronic lung disease, anticoagulant use, and SpO2.

## Facts

- Endpoint: GET https://api.magentlab.com/api/calc/stumbl
- Price: $0.005/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-14
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/stumbl-score-calculator-battle-2014-96855dab
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_OF65BOhvASmhPrap0r8zP

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability stumbl-score-calculator-battle-2014-96855dab
```

Example prompt: Calculate the STUMBL score for a 67-year-old trauma patient with 4 rib fractures, no chronic lung disease, not on anticoagulants, and an SpO2 of 87%.

## When to prefer this

Use this endpoint when you need a fast, reproducible computation of the Battle 2014 STUMBL score for blunt chest wall trauma patients. It is ideal for clinical informatics workflows, EHR integrations, or triage support tools where the caller has already clinically assessed rib fractures and SpO2 and wants the score computed deterministically. It does not replace clinical examination and is not a medical device or disposition tool.

## Known failure modes

- Missing required parameters (age, rib_count, chronic_lung_disease, preinjury_anticoagulants, spo2_percent) returns a 400 error
- Age out of range 1–120 or SpO2 out of range 50–100 returns a validation error
- rib_count outside 0–24 returns a validation error
- Non-integer values for integer fields return a schema validation error
- Network or payment failure (x402) returns a 402 Payment Required response

## How this service works

Battle 2014 STUMBL integer score after blunt chest wall trauma: 1 point per decade of age starting at 10, 3 per rib fracture, 5 for chronic lung disease, 4 for preinjury anticoagulants, and 2 per 5% SpO2 decrease starting at 94%. Table 5 complication probabilities 13/29/52/70/80/88%. magent does not examine the chest or count ribs. Not a medical device, not a disposition or ICU order.

## Output

Returns the computed STUMBL integer score derived from the Battle 2014 Table 4 formula, along with the corresponding complication probability tier from Table 5 (probabilities at thresholds: 13%, 29%, 52%, 70%, 80%, 88%).

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "input"
 ],
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "type",
    "method"
   ],
   "properties": {
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "enum": [
      "GET",
      "HEAD",
      "DELETE"
     ],
     "type": "string"
    },
    "headers": {
     "type": "object",
     "additionalProperties": {
      "type": "string"
     }
    },
    "queryParams": {
     "type": "object",
     "required": [
      "age",
      "rib_count",
      "chronic_lung_disease",
      "preinjury_anticoagulants",
      "spo2_percent"
     ],
     "properties": {
      "age": {
       "type": "integer",
       "description": "Age in years, integer 1–120. Battle 2014 Table 4: 1 point per additional 10-year increase starting at 10 (div(age, 10); age 10 scores 1, age 67 scores 6, age 1–9 scores 0). Not the adult 18–120 clamp."
      },
      "rib_count": {
       "type": "integer",
       "description": "Caller-assigned number of rib fractures, integer 0–24. Battle 2014 Table 4: 3 points per additional rib fracture (3 ribs scores 9). magent does not examine the chest or count ribs."
      },
      "spo2_percent": {
       "type": "integer",
       "description": "Oxygen saturation percent, integer 50–100. Battle 2014 Table 4 footnote c: 2 points per 5% decrease starting at 94% (≥95 scores 0; else 2*(1+div(94-spo2_percent, 5)); 87% scores 4). magent does not measure SpO2."
      },
      "chronic_lung_disease": {
       "type": "boolean",
       "description": "Pre-injury chronic lung disease as assigned by the caller (Battle 2014 Table 4). true or false. true scores 5."
      },
      "preinjury_anticoagulants": {
       "type": "boolean",
       "description": "Pre-injury anticoagulant use as assigned by the caller (Battle 2014 Table 4). true or false. true scores 4."
      }
     }
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object"
    }
   }
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/stumbl-score-calculator-battle-2014-96855dab/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from api.magentlab.com](https://www.zero.xyz/host/api.magentlab.com/llms.txt)
