Neurology · LIVE
Bush-Francis Catatonia Rating Scale
Bush-Francis
Sum Bush 1996 23-item catatonia rating scale points from caller-assigned integers and report the 14-item screen (positive iff at least two of items 1-14 score above 0). Does not diagnose catatonia.
Markdown: /docs/bush-francis.md · Canonical: https://magentlab.com/docs/bush-francis
Not a medical device. Not a diagnosis, dose, or listing recommendation.
What it computes
Sum Bush 1996 23-item catatonia rating scale points from caller-assigned integers and report the 14-item screen (positive iff at least two of items 1-14 score above 0). Does not diagnose catatonia.
When to use
When an agent already has Bush 1996 23-item integers and needs the published severity sum and 14-item screen. magent does not perform the standardized examination, diagnose catatonia, or apply DSM catatonia criteria.
When not to use
- Not a medical device and not a diagnosis of catatonia or a treatment order.
- Each of the 23 items is a caller-assigned Bush 1996 integer. magent does not perform the standardized examination and does not examine the patient.
- Screening uses the first 14 items only: screen_positive is true iff at least two of those items score above 0 (Bush 1996 cases defined by ≥2 signs on the 14-item screen). This is not DSM catatonia criteria as a separate tool.
- Items 17-21 (mitgehen, gegenhalten, ambitendency, grasp_reflex, perseveration) are 0 or 3 only in Bush 1996. magent does not apply later training-manual changes to those ranges.
Formula
Bush-Francis CRS = excitement + immobility_stupor + mutism + staring + posturing_catalepsy + grimacing + echopraxia_echolalia + stereotypy + mannerisms + verbigeration + rigidity + negativism + waxy_flexibility + withdrawal + impulsivity + automatic_obedience + mitgehen + gegenhalten + ambitendency + grasp_reflex + perseveration + combativeness + autonomic_abnormality; Bush 1996 23-item catatonia rating scale; items 1-16 and 22-23 integers 0-3; items 17-21 (mitgehen, gegenhalten, ambitendency, grasp_reflex, perseveration) 0 or 3 only; severity score = sum of items 1-23; screening instrument = first 14 items; screen_positive iff count of items 1-14 with score > 0 is >= 2; max 69; not a diagnosis
Citation
- Authors
- Bush G, Fink M, Petrides G, Dowling F, Francis A
- Source
- Acta Psychiatr Scand. 1996;93(2):129-136
Worked example
Two screen signs (screen-positive threshold)
Given:
ambitendency=0automatic_obedience=0autonomic_abnormality=0combativeness=0echopraxia_echolalia=0excitement=1gegenhalten=0grasp_reflex=0grimacing=0immobility_stupor=1impulsivity=0mannerisms=0mitgehen=0mutism=0negativism=0perseveration=0posturing_catalepsy=0rigidity=0staring=0stereotypy=0verbigeration=0waxy_flexibility=0withdrawal=0
- excitement is 1 and immobility_stupor is 1 as assigned by the caller; remaining items are 0
- Severity score = 2 (max 69). Two of the first 14 items score above 0, so screen_positive is true (Bush 1996 ≥2 signs on the 14-item screen).
All items at published minimum
Given:
ambitendency=0automatic_obedience=0autonomic_abnormality=0combativeness=0echopraxia_echolalia=0excitement=0gegenhalten=0grasp_reflex=0grimacing=0immobility_stupor=0impulsivity=0mannerisms=0mitgehen=0mutism=0negativism=0perseveration=0posturing_catalepsy=0rigidity=0staring=0stereotypy=0verbigeration=0waxy_flexibility=0withdrawal=0
- all 23 Bush 1996 items are 0 as assigned by the caller
- Score = 0 (max 69). screen_signs_met = 0; screen_positive false.
All items at published maximum
Given:
ambitendency=3automatic_obedience=3autonomic_abnormality=3combativeness=3echopraxia_echolalia=3excitement=3gegenhalten=3grasp_reflex=3grimacing=3immobility_stupor=3impulsivity=3mannerisms=3mitgehen=3mutism=3negativism=3perseveration=3posturing_catalepsy=3rigidity=3staring=3stereotypy=3verbigeration=3waxy_flexibility=3withdrawal=3
- each Bush 1996 item is at that paper's published maximum as assigned by the caller (0-3 items at 3; items 17-21 at 3)
- Score = 69 (max 69). All 14 screen items are present, so screen_positive is true. Not a diagnosis.
Also searched as
- Bush-Francis Catatonia Rating Scale
- BFCRS
- Bush Francis catatonia scale
- catatonia rating scale
- Bush 1996 CRS
- 14-item catatonia screen
- BFCRS screening instrument
- Catatonia Screening Instrument
Try
Opens the live endpoint. Unpaid browser requests show the paywall; agents should send Accept: application/json.
Full URL: https://api.magentlab.com/api/calc/bush_francis?excitement=1&immobility_stupor=1&mutism=0&staring=0&posturing_catalepsy=0&grimacing=0&echopraxia_echolalia=0&stereotypy=0&mannerisms=0&verbigeration=0&rigidity=0&negativism=0&waxy_flexibility=0&withdrawal=0&impulsivity=0&automatic_obedience=0&mitgehen=0&gegenhalten=0&ambitendency=0&grasp_reflex=0&perseveration=0&combativeness=0&autonomic_abnormality=0
Call
Expect HTTP 402 until you retry with PAYMENT-SIGNATURE. Incomplete query params
return HTTP 400 before any quote or charge.
curl -i -H "Accept: application/json" "https://api.magentlab.com/api/calc/bush_francis?excitement=1&immobility_stupor=1&mutism=0&staring=0&posturing_catalepsy=0&grimacing=0&echopraxia_echolalia=0&stereotypy=0&mannerisms=0&verbigeration=0&rigidity=0&negativism=0&waxy_flexibility=0&withdrawal=0&impulsivity=0&automatic_obedience=0&mitgehen=0&gegenhalten=0&ambitendency=0&grasp_reflex=0&perseveration=0&combativeness=0&autonomic_abnormality=0"
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
excitement |
integer | required · 0, 1, 2, 3 | Caller-assigned Bush 1996 excitement (item 1; integer 0-3). magent does not examine the patient. |
immobility_stupor |
integer | required · 0, 1, 2, 3 | Caller-assigned Bush 1996 immobility/stupor (item 2; integer 0-3). magent does not examine the patient. |
mutism |
integer | required · 0, 1, 2, 3 | Caller-assigned Bush 1996 mutism (item 3; integer 0-3). magent does not examine the patient. |
staring |
integer | required · 0, 1, 2, 3 | Caller-assigned Bush 1996 staring (item 4; integer 0-3). magent does not examine the patient. |
posturing_catalepsy |
integer | required · 0, 1, 2, 3 | Caller-assigned Bush 1996 posturing/catalepsy (item 5; integer 0-3). magent does not examine the patient. |
grimacing |
integer | required · 0, 1, 2, 3 | Caller-assigned Bush 1996 grimacing (item 6; integer 0-3). magent does not examine the patient. |
echopraxia_echolalia |
integer | required · 0, 1, 2, 3 | Caller-assigned Bush 1996 echopraxia/echolalia (item 7; integer 0-3). magent does not examine the patient. |
stereotypy |
integer | required · 0, 1, 2, 3 | Caller-assigned Bush 1996 stereotypy (item 8; integer 0-3). magent does not examine the patient. |
mannerisms |
integer | required · 0, 1, 2, 3 | Caller-assigned Bush 1996 mannerisms (item 9; integer 0-3). magent does not examine the patient. |
verbigeration |
integer | required · 0, 1, 2, 3 | Caller-assigned Bush 1996 verbigeration (item 10; integer 0-3). magent does not examine the patient. |
rigidity |
integer | required · 0, 1, 2, 3 | Caller-assigned Bush 1996 rigidity (item 11; integer 0-3). magent does not examine the patient. |
negativism |
integer | required · 0, 1, 2, 3 | Caller-assigned Bush 1996 negativism (item 12; integer 0-3). magent does not examine the patient. |
waxy_flexibility |
integer | required · 0, 1, 2, 3 | Caller-assigned Bush 1996 waxy flexibility (item 13; integer 0-3). magent does not examine the patient. |
withdrawal |
integer | required · 0, 1, 2, 3 | Caller-assigned Bush 1996 withdrawal (item 14; integer 0-3). magent does not examine the patient. |
impulsivity |
integer | required · 0, 1, 2, 3 | Caller-assigned Bush 1996 impulsivity (item 15; integer 0-3). magent does not examine the patient. |
automatic_obedience |
integer | required · 0, 1, 2, 3 | Caller-assigned Bush 1996 automatic obedience (item 16; integer 0-3). magent does not examine the patient. |
mitgehen |
integer | required · 0, 3 | Caller-assigned Bush 1996 mitgehen (item 17; 0 absent or 3 present only). magent does not examine the patient. |
gegenhalten |
integer | required · 0, 3 | Caller-assigned Bush 1996 gegenhalten (item 18; 0 absent or 3 present only). magent does not examine the patient. |
ambitendency |
integer | required · 0, 3 | Caller-assigned Bush 1996 ambitendency (item 19; 0 absent or 3 present only). magent does not examine the patient. |
grasp_reflex |
integer | required · 0, 3 | Caller-assigned Bush 1996 grasp reflex (item 20; 0 absent or 3 present only). magent does not examine the patient. |
perseveration |
integer | required · 0, 3 | Caller-assigned Bush 1996 perseveration (item 21; 0 absent or 3 present only). magent does not examine the patient. |
combativeness |
integer | required · 0, 1, 2, 3 | Caller-assigned Bush 1996 combativeness (item 22; integer 0-3). magent does not examine the patient. |
autonomic_abnormality |
integer | required · 0, 1, 2, 3 | Caller-assigned Bush 1996 autonomic abnormality (item 23; integer 0-3). magent does not examine the patient. |
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.
- 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 (fixture)
{
"items": [
{
"ambitendency": "0",
"automatic_obedience": "0",
"autonomic_abnormality": "0",
"combativeness": "0",
"echopraxia_echolalia": "0",
"excitement": "1",
"gegenhalten": "0",
"grasp_reflex": "0",
"grimacing": "0",
"immobility_stupor": "1",
"impulsivity": "0",
"mannerisms": "0",
"mitgehen": "0",
"mutism": "0",
"negativism": "0",
"perseveration": "0",
"posturing_catalepsy": "0",
"rigidity": "0",
"staring": "0",
"stereotypy": "0",
"verbigeration": "0",
"waxy_flexibility": "0",
"withdrawal": "0"
},
{
"ambitendency": "0",
"automatic_obedience": "0",
"autonomic_abnormality": "0",
"combativeness": "0",
"echopraxia_echolalia": "0",
"excitement": "1",
"gegenhalten": "0",
"grasp_reflex": "0",
"grimacing": "0",
"immobility_stupor": "1",
"impulsivity": "0",
"mannerisms": "0",
"mitgehen": "0",
"mutism": "0",
"negativism": "0",
"perseveration": "0",
"posturing_catalepsy": "0",
"rigidity": "0",
"staring": "0",
"stereotypy": "0",
"verbigeration": "0",
"waxy_flexibility": "0",
"withdrawal": "0"
}
]
}
Opens a two-item fixture on the API host. Unpaid browsers get the same MetaMask paywall as GET; Pay retries POST with those items.
Example 200 (fixture)
{
"count": 2,
"path": "/api/calc/bush_francis",
"items": [
{
"components": [
{
"value": 1,
"factor": "excitement",
"points": 1,
"present": true
},
{
"value": 1,
"factor": "immobility_stupor",
"points": 1,
"present": true
},
{
"value": 0,
"factor": "mutism",
"points": 0,
"present": true
},
{
"value": 0,
"factor": "staring",
"points": 0,
"present": true
},
{
"value": 0,
"factor": "posturing_catalepsy",
"points": 0,
"present": true
},
{
"value": 0,
"factor": "grimacing",
"points": 0,
"present": true
},
{
"value": 0,
"factor": "echopraxia_echolalia",
"points": 0,
"present": true
},
{
"value": 0,
"factor": "stereotypy",
"points": 0,
"present": true
},
{
"value": 0,
"factor": "mannerisms",
"points": 0,
"present": true
},
{
"value": 0,
"factor": "verbigeration",
"points": 0,
"present": true
},
{
"value": 0,
"factor": "rigidity",
"points": 0,
"present": true
},
{
"value": 0,
"factor": "negativism",
"points": 0,
"present": true
},
{
"value": 0,
"factor": "waxy_flexibility",
"points": 0,
"present": true
},
{
"value": 0,
"factor": "withdrawal",
"points": 0,
"present": true
},
{
"value": 0,
"factor": "impulsivity",
"points": 0,
"present": true
},
{
"value": 0,
"factor": "automatic_obedience",
"points": 0,
"present": true
},
{
"value": 0,
"factor": "mitgehen",
"points": 0,
"present": true
},
{
"value": 0,
"factor": "gegenhalten",
"points": 0,
"present": true
},
{
"value": 0,
"factor": "ambitendency",
"points": 0,
"present": true
},
{
"value": 0,
"factor": "grasp_reflex",
"points": 0,
"present": true
},
{
"value": 0,
"factor": "perseveration",
"points": 0,
"present": true
},
{
"value": 0,
"factor": "combativeness",
"points": 0,
"present": true
},
{
"value": 0,
"factor": "autonomic_abnormality",
"points": 0,
"present": true
}
],
"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": "Bush G, Fink M, Petrides G, Dowling F, Francis A",
"doi": "10.1111/j.1600-0447.1996.tb09814.x",
"id": "bush-1996",
"pmid": "8686483",
"source": "Acta Psychiatr Scand. 1996;93(2):129-136",
"title": "Catatonia. I. Rating scale and standardized examination"
},
"formula": "bush_francis",
"formula_expression": "Bush-Francis CRS = excitement + immobility_stupor + mutism + staring + posturing_catalepsy + grimacing + echopraxia_echolalia + stereotypy + mannerisms + verbigeration + rigidity + negativism + waxy_flexibility + withdrawal + impulsivity + automatic_obedience + mitgehen + gegenhalten + ambitendency + grasp_reflex + perseveration + combativeness + autonomic_abnormality; Bush 1996 23-item catatonia rating scale; items 1-16 and 22-23 integers 0-3; items 17-21 (mitgehen, gegenhalten, ambitendency, grasp_reflex, perseveration) 0 or 3 only; severity score = sum of items 1-23; screening instrument = first 14 items; screen_positive iff count of items 1-14 with score > 0 is >= 2; max 69; not a diagnosis",
"max_score": 69,
"score": 2,
"screen_positive": true,
"screen_signs_met": 2
},
{
"components": [
{
"value": 1,
"factor": "excitement",
"points": 1,
"present": true
},
{
"value": 1,
"factor": "immobility_stupor",
"points": 1,
"present": true
},
{
"value": 0,
"factor": "mutism",
"points": 0,
"present": true
},
{
"value": 0,
"factor": "staring",
"points": 0,
"present": true
},
{
"value": 0,
"factor": "posturing_catalepsy",
"points": 0,
"present": true
},
{
"value": 0,
"factor": "grimacing",
"points": 0,
"present": true
},
{
"value": 0,
"factor": "echopraxia_echolalia",
"points": 0,
"present": true
},
{
"value": 0,
"factor": "stereotypy",
"points": 0,
"present": true
},
{
"value": 0,
"factor": "mannerisms",
"points": 0,
"present": true
},
{
"value": 0,
"factor": "verbigeration",
"points": 0,
"present": true
},
{
"value": 0,
"factor": "rigidity",
"points": 0,
"present": true
},
{
"value": 0,
"factor": "negativism",
"points": 0,
"present": true
},
{
"value": 0,
"factor": "waxy_flexibility",
"points": 0,
"present": true
},
{
"value": 0,
"factor": "withdrawal",
"points": 0,
"present": true
},
{
"value": 0,
"factor": "impulsivity",
"points": 0,
"present": true
},
{
"value": 0,
"factor": "automatic_obedience",
"points": 0,
"present": true
},
{
"value": 0,
"factor": "mitgehen",
"points": 0,
"present": true
},
{
"value": 0,
"factor": "gegenhalten",
"points": 0,
"present": true
},
{
"value": 0,
"factor": "ambitendency",
"points": 0,
"present": true
},
{
"value": 0,
"factor": "grasp_reflex",
"points": 0,
"present": true
},
{
"value": 0,
"factor": "perseveration",
"points": 0,
"present": true
},
{
"value": 0,
"factor": "combativeness",
"points": 0,
"present": true
},
{
"value": 0,
"factor": "autonomic_abnormality",
"points": 0,
"present": true
}
],
"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": "Bush G, Fink M, Petrides G, Dowling F, Francis A",
"doi": "10.1111/j.1600-0447.1996.tb09814.x",
"id": "bush-1996",
"pmid": "8686483",
"source": "Acta Psychiatr Scand. 1996;93(2):129-136",
"title": "Catatonia. I. Rating scale and standardized examination"
},
"formula": "bush_francis",
"formula_expression": "Bush-Francis CRS = excitement + immobility_stupor + mutism + staring + posturing_catalepsy + grimacing + echopraxia_echolalia + stereotypy + mannerisms + verbigeration + rigidity + negativism + waxy_flexibility + withdrawal + impulsivity + automatic_obedience + mitgehen + gegenhalten + ambitendency + grasp_reflex + perseveration + combativeness + autonomic_abnormality; Bush 1996 23-item catatonia rating scale; items 1-16 and 22-23 integers 0-3; items 17-21 (mitgehen, gegenhalten, ambitendency, grasp_reflex, perseveration) 0 or 3 only; severity score = sum of items 1-23; screening instrument = first 14 items; screen_positive iff count of items 1-14 with score > 0 is >= 2; max 69; not a diagnosis",
"max_score": 69,
"score": 2,
"screen_positive": true,
"screen_signs_met": 2
}
]
}
Response
| Field | Type | Description |
|---|---|---|
formula |
string | bush_francis |
formula_expression |
string | Exact expression used |
score |
integer | Bush 1996 severity sum of 23 caller-assigned items (0-69) |
max_score |
integer | Always 69 |
screen_positive |
boolean | true iff at least two of the first 14 Bush 1996 screen items score above 0. Not a diagnosis. |
screen_signs_met |
integer | Count of items 1-14 with score > 0 (0-14) |
components |
array | Per-item caller-assigned points |
citation |
object | Bush Acta Psychiatr Scand 1996 citation |
disclaimer |
string | Not-a-device notice |
Example JSON
Machine form of the same example. Frozen fixture. Not a live lookup.
{
"components": [
{
"value": 1,
"factor": "excitement",
"points": 1,
"present": true
},
{
"value": 1,
"factor": "immobility_stupor",
"points": 1,
"present": true
},
{
"value": 0,
"factor": "mutism",
"points": 0,
"present": true
},
{
"value": 0,
"factor": "staring",
"points": 0,
"present": true
},
{
"value": 0,
"factor": "posturing_catalepsy",
"points": 0,
"present": true
},
{
"value": 0,
"factor": "grimacing",
"points": 0,
"present": true
},
{
"value": 0,
"factor": "echopraxia_echolalia",
"points": 0,
"present": true
},
{
"value": 0,
"factor": "stereotypy",
"points": 0,
"present": true
},
{
"value": 0,
"factor": "mannerisms",
"points": 0,
"present": true
},
{
"value": 0,
"factor": "verbigeration",
"points": 0,
"present": true
},
{
"value": 0,
"factor": "rigidity",
"points": 0,
"present": true
},
{
"value": 0,
"factor": "negativism",
"points": 0,
"present": true
},
{
"value": 0,
"factor": "waxy_flexibility",
"points": 0,
"present": true
},
{
"value": 0,
"factor": "withdrawal",
"points": 0,
"present": true
},
{
"value": 0,
"factor": "impulsivity",
"points": 0,
"present": true
},
{
"value": 0,
"factor": "automatic_obedience",
"points": 0,
"present": true
},
{
"value": 0,
"factor": "mitgehen",
"points": 0,
"present": true
},
{
"value": 0,
"factor": "gegenhalten",
"points": 0,
"present": true
},
{
"value": 0,
"factor": "ambitendency",
"points": 0,
"present": true
},
{
"value": 0,
"factor": "grasp_reflex",
"points": 0,
"present": true
},
{
"value": 0,
"factor": "perseveration",
"points": 0,
"present": true
},
{
"value": 0,
"factor": "combativeness",
"points": 0,
"present": true
},
{
"value": 0,
"factor": "autonomic_abnormality",
"points": 0,
"present": true
}
],
"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": "Bush G, Fink M, Petrides G, Dowling F, Francis A",
"doi": "10.1111/j.1600-0447.1996.tb09814.x",
"id": "bush-1996",
"pmid": "8686483",
"source": "Acta Psychiatr Scand. 1996;93(2):129-136",
"title": "Catatonia. I. Rating scale and standardized examination"
},
"formula": "bush_francis",
"formula_expression": "Bush-Francis CRS = excitement + immobility_stupor + mutism + staring + posturing_catalepsy + grimacing + echopraxia_echolalia + stereotypy + mannerisms + verbigeration + rigidity + negativism + waxy_flexibility + withdrawal + impulsivity + automatic_obedience + mitgehen + gegenhalten + ambitendency + grasp_reflex + perseveration + combativeness + autonomic_abnormality; Bush 1996 23-item catatonia rating scale; items 1-16 and 22-23 integers 0-3; items 17-21 (mitgehen, gegenhalten, ambitendency, grasp_reflex, perseveration) 0 or 3 only; severity score = sum of items 1-23; screening instrument = first 14 items; screen_positive iff count of items 1-14 with score > 0 is >= 2; max 69; not a diagnosis",
"max_score": 69,
"score": 2,
"screen_positive": true,
"screen_signs_met": 2
}
Client errors (HTTP 400)
Invalid params return 400 without charge. Shared HTTP 402 and 503 meanings: Payments.
| HTTP | Code | When |
|---|---|---|
| 400 | invalid_bush_francis |
Bush-Francis needs the 1996 catatonia item integers in published ranges. Returned before settlement; you are not charged. |
| 400 | invalid_items |
POST body must be a JSON object with only an items array Returned before settlement; you are not charged. |
| 400 | invalid_item_count |
items must be an array of 1 to 25 objects Returned before settlement; you are not charged. |
| 400 | invalid_item |
each items entry must be a JSON object Returned before settlement; you are not charged. |
Related tools
- BARS — Return the Swift 2002 Behavioural Activity Rating Scale (BARS) 1-7 from a caller-assigned integer, with a stable label.
- GDS-15 — Sum fifteen Sheikh 1986 GDS-15 yes/no items using that paper's reverse-scoring key and return the published 0-15 total. Does not apply later total-score severity bands.
- RASS — Return the Sessler 2002 Richmond Agitation-Sedation Scale term and description from a caller-assigned integer -5 to +4.
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. Unpaid valid requests return HTTP 402 with a base64
PAYMENT-REQUIRED
header. HTTP 503 is not a new quote: retry the same PAYMENT-SIGNATURE. Full handshake
and shared payment errors: Payments.
Stdio MCP: /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.