{"id":"tolerance-stack","title":"One-dimensional tolerance stack-up (worst-case and RSS)","description":"Computes the minimum and maximum of a linear dimensional stack (the gap) from signed contributions with symmetric, unequal-bilateral, unilateral or min/max limits, both by exact worst-case arithmetic and by root-sum-square, names the dominant contributor and tests the gap against a required minimum and/or maximum. For mechanical designers and agents checking clearances. It does not do 2D or 3D stacks, GD&T material-condition bonus or datum shift, thermal growth or distribution fitting. The RSS result assumes independent, centred, normal dimensions and is labelled as an assumption.","roi":"Exact worst-case stack-up with margin and dominant contributor in one $0.005 call.","audience":"business","package":"physical-ops-kit","channels":["x402","mcp"],"endpoint":{"method":"POST","url":"https://agents.writerslogic.com/api/v1/tolerance-stack","path":"/api/v1/tolerance-stack","contentType":"application/json"},"price":{"amount":"0.005","currency":"USDC","network":"base","perCall":true,"failedCallsCharged":false},"inputSchema":{"type":"object","additionalProperties":false,"required":["dimensions"],"properties":{"unit":{"type":"string","maxLength":16,"description":"Label for the single unit all numbers share (not converted)."},"dimensions":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":80,"description":"Label used in witnesses."},"nominal":{"type":"number","description":"Nominal size.","minimum":-1000000000,"maximum":1000000000},"tol":{"type":"number","description":"Symmetric bilateral tolerance (nominal ± tol).","minimum":0,"maximum":1000000000},"plus":{"type":"number","description":"Upper deviation magnitude.","minimum":0,"maximum":1000000000},"minus":{"type":"number","description":"Lower deviation magnitude.","minimum":0,"maximum":1000000000},"min":{"type":"number","description":"Smallest allowed size (limits form, with max).","minimum":-1000000000,"maximum":1000000000},"max":{"type":"number","description":"Largest allowed size (limits form, with min).","minimum":-1000000000,"maximum":1000000000},"sign":{"type":"integer","enum":[1,-1],"description":"+1 adds the dimension to the gap (default), -1 subtracts it."}}},"maxItems":100,"minItems":1,"description":"At most 100. Give nominal with tol, or nominal with plus and/or minus (unilateral: one of them), or min and max."},"requirement":{"type":"object","properties":{"min":{"type":"number","description":"Gap must be at least this.","minimum":-1000000000,"maximum":1000000000},"max":{"type":"number","description":"Gap must be at most this.","minimum":-1000000000,"maximum":1000000000}},"description":"Allowed gap range."},"method":{"type":"string","enum":["worst-case","rss"],"description":"Which result decides status against the requirement (default worst-case). Both are always reported."},"sigmaLevel":{"type":"number","description":"RSS: each tolerance is this many sigma (default 3).","minimum":0.5,"maximum":10},"reportSigma":{"type":"number","description":"RSS: report the gap at this many sigma (default equals sigmaLevel).","minimum":0.5,"maximum":10}}},"resultSchema":{"type":"object","properties":{"status":{"type":"string","enum":["pass","fail","unknown","unsupported"],"description":"pass: every rule held. fail: a rule was violated (see witnesses). unknown: the input lacks the evidence to decide. unsupported: outside what this engine covers. Missing evidence is never a pass."},"unit":{"type":"string"},"nominalGap":{"type":"number"},"worstCase":{"type":"object","properties":{"min":{"type":"number"},"max":{"type":"number"},"plusTolerance":{"type":"number"},"minusTolerance":{"type":"number"}}},"rss":{"type":"object","properties":{"mean":{"type":"number"},"min":{"type":"number"},"max":{"type":"number"},"halfRange":{"type":"number"},"assumptions":{"type":"string"}}},"method":{"type":"string"},"margin":{"anyOf":[{"type":"number","description":"Distance from the deciding result to the nearest requirement limit; negative when violated; null without a requirement."},{"type":"null"}]},"contributors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"halfRange":{"type":"number"},"worstCaseSharePct":{"anyOf":[{"type":"number"},{"type":"null"}]},"rssSharePct":{"anyOf":[{"type":"number"},{"type":"null"}]}}}},"dominant":{"anyOf":[{"type":"string","description":"Name of the contributor with the largest half-range, or null when all are zero."},{"type":"null"}]},"witnesses":{"type":"array","items":{"type":"object","properties":{"ruleId":{"type":"string"},"detail":{"type":"string"},"path":{"type":"string","description":"JSON pointer or dotted path into the input."},"offset":{"type":"integer"},"index":{"type":"integer"},"expected":{"description":"What the rule required."},"actual":{"description":"What the input had."}}}},"versions":{"type":"object","description":"Every semantic dependency of this answer (engine, tables and their as-of dates, tokenizer, calendar, rounding profile)."},"limits":{"type":"array","items":{"type":"string"}},"deterministic":{"type":"boolean","description":"Always true: pure code, no model."}}},"outputSchema":{"type":"object","properties":{"data":{"type":"object","properties":{"status":{"type":"string","enum":["pass","fail","unknown","unsupported"],"description":"pass: every rule held. fail: a rule was violated (see witnesses). unknown: the input lacks the evidence to decide. unsupported: outside what this engine covers. Missing evidence is never a pass."},"unit":{"type":"string"},"nominalGap":{"type":"number"},"worstCase":{"type":"object","properties":{"min":{"type":"number"},"max":{"type":"number"},"plusTolerance":{"type":"number"},"minusTolerance":{"type":"number"}}},"rss":{"type":"object","properties":{"mean":{"type":"number"},"min":{"type":"number"},"max":{"type":"number"},"halfRange":{"type":"number"},"assumptions":{"type":"string"}}},"method":{"type":"string"},"margin":{"anyOf":[{"type":"number","description":"Distance from the deciding result to the nearest requirement limit; negative when violated; null without a requirement."},{"type":"null"}]},"contributors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"halfRange":{"type":"number"},"worstCaseSharePct":{"anyOf":[{"type":"number"},{"type":"null"}]},"rssSharePct":{"anyOf":[{"type":"number"},{"type":"null"}]}}}},"dominant":{"anyOf":[{"type":"string","description":"Name of the contributor with the largest half-range, or null when all are zero."},{"type":"null"}]},"witnesses":{"type":"array","items":{"type":"object","properties":{"ruleId":{"type":"string"},"detail":{"type":"string"},"path":{"type":"string","description":"JSON pointer or dotted path into the input."},"offset":{"type":"integer"},"index":{"type":"integer"},"expected":{"description":"What the rule required."},"actual":{"description":"What the input had."}}}},"versions":{"type":"object","description":"Every semantic dependency of this answer (engine, tables and their as-of dates, tokenizer, calendar, rounding profile)."},"limits":{"type":"array","items":{"type":"string"}},"deterministic":{"type":"boolean","description":"Always true: pure code, no model."}}},"_provenance":{"type":"object","description":"C2PA-aligned manifest and W3C VC 2.0 (eddsa-jcs-2022) issued by the hub DID; verify at POST /api/v1/verify-provenance"}},"required":["data","_provenance"]},"example":{"unit":"mm","dimensions":[{"name":"housing bore","nominal":50,"plus":0.1,"minus":0},{"name":"bearing A","nominal":20,"tol":0.05,"sign":-1},{"name":"spacer","nominal":29.5,"tol":0.1,"sign":-1}],"requirement":{"min":0.1}},"openapiOperation":{"operationId":"tolerance_stack","summary":"One-dimensional tolerance stack-up (worst-case and RSS)","description":"Computes the minimum and maximum of a linear dimensional stack (the gap) from signed contributions with symmetric, unequal-bilateral, unilateral or min/max limits, both by exact worst-case arithmetic and by root-sum-square, names the dominant contributor and tests the gap against a required minimum and/or maximum. For mechanical designers and agents checking clearances. It does not do 2D or 3D stacks, GD&T material-condition bonus or datum shift, thermal growth or distribution fitting. The RSS result assumes independent, centred, normal dimensions and is labelled as an assumption.\n\nPrice: 0.005 USDC on Base (x402).","x-x402-price-usdc":"0.005","x-x402-amount":"5000","x-payment-info":{"protocols":["x402"],"price":{"mode":"fixed","currency":"USD","amount":"0.005"}},"x-audience":"business","x-sample-url":"https://agents.writerslogic.com/api/v1/samples/tolerance-stack","security":[{"x402":[]},{"apiKey":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["dimensions"],"properties":{"unit":{"type":"string","maxLength":16,"description":"Label for the single unit all numbers share (not converted)."},"dimensions":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":80,"description":"Label used in witnesses."},"nominal":{"type":"number","description":"Nominal size.","minimum":-1000000000,"maximum":1000000000},"tol":{"type":"number","description":"Symmetric bilateral tolerance (nominal ± tol).","minimum":0,"maximum":1000000000},"plus":{"type":"number","description":"Upper deviation magnitude.","minimum":0,"maximum":1000000000},"minus":{"type":"number","description":"Lower deviation magnitude.","minimum":0,"maximum":1000000000},"min":{"type":"number","description":"Smallest allowed size (limits form, with max).","minimum":-1000000000,"maximum":1000000000},"max":{"type":"number","description":"Largest allowed size (limits form, with min).","minimum":-1000000000,"maximum":1000000000},"sign":{"type":"integer","enum":[1,-1],"description":"+1 adds the dimension to the gap (default), -1 subtracts it."}}},"maxItems":100,"minItems":1,"description":"At most 100. Give nominal with tol, or nominal with plus and/or minus (unilateral: one of them), or min and max."},"requirement":{"type":"object","properties":{"min":{"type":"number","description":"Gap must be at least this.","minimum":-1000000000,"maximum":1000000000},"max":{"type":"number","description":"Gap must be at most this.","minimum":-1000000000,"maximum":1000000000}},"description":"Allowed gap range."},"method":{"type":"string","enum":["worst-case","rss"],"description":"Which result decides status against the requirement (default worst-case). Both are always reported."},"sigmaLevel":{"type":"number","description":"RSS: each tolerance is this many sigma (default 3).","minimum":0.5,"maximum":10},"reportSigma":{"type":"number","description":"RSS: report the gap at this many sigma (default equals sigmaLevel).","minimum":0.5,"maximum":10}}},"example":{"unit":"mm","dimensions":[{"name":"housing bore","nominal":50,"plus":0.1,"minus":0},{"name":"bearing A","nominal":20,"tol":0.05,"sign":-1},{"name":"spacer","nominal":29.5,"tol":0.1,"sign":-1}],"requirement":{"min":0.1}}}}},"responses":{"200":{"description":"Paid result with provenance","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"status":{"type":"string","enum":["pass","fail","unknown","unsupported"],"description":"pass: every rule held. fail: a rule was violated (see witnesses). unknown: the input lacks the evidence to decide. unsupported: outside what this engine covers. Missing evidence is never a pass."},"unit":{"type":"string"},"nominalGap":{"type":"number"},"worstCase":{"type":"object","properties":{"min":{"type":"number"},"max":{"type":"number"},"plusTolerance":{"type":"number"},"minusTolerance":{"type":"number"}}},"rss":{"type":"object","properties":{"mean":{"type":"number"},"min":{"type":"number"},"max":{"type":"number"},"halfRange":{"type":"number"},"assumptions":{"type":"string"}}},"method":{"type":"string"},"margin":{"anyOf":[{"type":"number","description":"Distance from the deciding result to the nearest requirement limit; negative when violated; null without a requirement."},{"type":"null"}]},"contributors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"halfRange":{"type":"number"},"worstCaseSharePct":{"anyOf":[{"type":"number"},{"type":"null"}]},"rssSharePct":{"anyOf":[{"type":"number"},{"type":"null"}]}}}},"dominant":{"anyOf":[{"type":"string","description":"Name of the contributor with the largest half-range, or null when all are zero."},{"type":"null"}]},"witnesses":{"type":"array","items":{"type":"object","properties":{"ruleId":{"type":"string"},"detail":{"type":"string"},"path":{"type":"string","description":"JSON pointer or dotted path into the input."},"offset":{"type":"integer"},"index":{"type":"integer"},"expected":{"description":"What the rule required."},"actual":{"description":"What the input had."}}}},"versions":{"type":"object","description":"Every semantic dependency of this answer (engine, tables and their as-of dates, tokenizer, calendar, rounding profile)."},"limits":{"type":"array","items":{"type":"string"}},"deterministic":{"type":"boolean","description":"Always true: pure code, no model."}}},"_provenance":{"type":"object","description":"C2PA-aligned manifest and W3C VC 2.0 (eddsa-jcs-2022) issued by the hub DID; verify at POST /api/v1/verify-provenance"}},"required":["data","_provenance"]}}}},"400":{"description":"Invalid request (no payment consumed)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}},"401":{"description":"Invalid X-API-KEY","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}},"402":{"description":"Payment required or invalid","content":{"application/json":{"schema":{"type":"object","description":"x402 v2 PaymentRequired (also base64 in the PAYMENT-REQUIRED header)","properties":{"x402Version":{"type":"integer"},"error":{"type":"string"},"code":{"type":"string"},"resource":{"type":"object"},"accepts":{"type":"array","items":{"type":"object"}},"extensions":{"type":"object"}}}}}},"502":{"description":"Upstream failure; the payment is released or not settled","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}}}},"links":{"docs":"https://agents.writerslogic.com/docs/tolerance-stack/","docsJson":"https://agents.writerslogic.com/docs/tolerance-stack.json","sample":"https://agents.writerslogic.com/api/v1/samples/tolerance-stack","openapi":"https://agents.writerslogic.com/openapi.json","catalog":"https://agents.writerslogic.com/api/v1/catalog","verifyProvenance":"https://agents.writerslogic.com/api/v1/verify-provenance","index":"https://agents.writerslogic.com/docs/index.json"}}