{
  "capability_id": "engineering.tolerance.stackup",
  "tool_id": "tolerance-stackup",
  "engine": "tolerance-stackup",
  "calculation_version": "1.4.0",
  "generated_at": "2026-11-10T05:18:41.747Z",
  "engine_build": "2026-09-11",
  "test_count": 35,
  "passed": 35,
  "failed": 0,
  "tests_summary": {
    "golden": {
      "passed": 4,
      "total": 4
    },
    "boundary": {
      "passed": 13,
      "total": 13
    },
    "property": {
      "passed": 18,
      "total": 18
    }
  },
  "engine_tested": true,
  "expert_reviewed": false,
  "internally_reviewed": true,
  "review_kind": "internal",
  "source_checked": true,
  "reviewed_by": "CalculatorX engineering review",
  "reviewer_role": "metrology-engineer",
  "last_reviewed": "2026-08-11",
  "expert_review": {
    "status": "not_applicable",
    "reviewer": null,
    "note": "Internal domain review completed; not a named external expert review.",
    "kind": "internal"
  },
  "internal_review": {
    "status": "approved",
    "reviewer": {
      "name": "CalculatorX engineering review",
      "role": "metrology-engineer"
    },
    "reviewed_at": "2026-08-11",
    "scope": [
      "formula",
      "input semantics",
      "assumptions",
      "limitations",
      "sources",
      "tests"
    ],
    "kind": "internal"
  },
  "page": "https://www.calculatorx.com/calc/engineering/tolerance-stackup",
  "api": "https://www.calculatorx.com/api/v1/calc/tolerance-stackup",
  "schema_input": "https://www.calculatorx.com/schemas/engineering.tolerance.stackup.input.json",
  "schema_output": "https://www.calculatorx.com/schemas/engineering.tolerance.stackup.output.json",
  "assumptions": [
    "Linear 1-D stack",
    "All contributors must use the same unit. CalculatorX performs no implicit unit conversion; mixed-unit input is unsupported",
    "Basic mode: signs ignored via |tol|",
    "Engineering: direction + adds / − subtracts; asymmetric ±tol supported",
    "RSS assumes independent contributors",
    "Default statistical_basis=magnitude → u=a with no coverage probability",
    "1sigma → u=a; 3sigma → u=a/3; uniform → u=a/√3",
    "Uniform asymmetric ±tol: statistical center uses interval midpoint; stack_nom stays drawing nominal",
    "Legacy distribution=normal→1sigma, unknown→magnitude, uniform→uniform",
    "stack_half_range ≠ stack_worst when +Tol/−Tol are asymmetric about nominal",
    "When inputs are specification limits rather than σ-based values, prefer magnitude — RSS is an estimate and not a guaranteed assembly limit"
  ],
  "limitations": [
    "1-D linear stack only — not geometric GD&T or Monte Carlo",
    "Basic inputs are treated as comparable tolerance magnitudes, not automatically as 1σ / 3σ / drawing limits",
    "RSS is a statistical estimate under independence; it is not a guaranteed assembly limit",
    "Engineering statistical_basis: magnitude (default, no coverage) and 1sigma use a; 3sigma uses a/3; uniform uses a/√3",
    "Uniform asymmetric ±tol shifts statistical center to interval midpoint (NIST Type B rectangular); stack_nom stays drawing nominal",
    "Legacy distribution=normal→1sigma, unknown→magnitude, uniform→uniform",
    "stack_half_range is not a hard worst-case bound when +Tol/−Tol are asymmetric about nominal — use stack_worst_plus / stack_worst_minus"
  ],
  "boundary_conditions": [
    "No tol / empty dimensions → MISSING_REQUIRED_INPUT",
    "Bad mode / direction / statistical_basis → INVALID_MODE"
  ],
  "sources": [
    {
      "title": "ASME Y14.5 — Dimensioning and Tolerancing",
      "section": "GD&T symbols, rules, and drawing requirements",
      "url": "https://www.asme.org/codes-standards/find-codes-standards/y14-5-dimensioning-tolerancing",
      "supports": "Defines geometric dimensioning and tolerancing language used on engineering drawings; does not itself define the RSS stack-up formula",
      "kind": "standard"
    },
    {
      "title": "Mekid, S. — Metrology and Instrumentation (Wiley-ASME Press)",
      "section": "§6.5.4 Worst-Case Tolerance Stack-Up in Asymmetric Dimensional Tolerance; §6.6.2 Worst-Case vs RSS",
      "url": "https://www.wiley.com/en-us/Metrology+and+Instrumentation%3A+Practical+Applications+for+Engineering+and+Manufacturing-p-9781119721734",
      "supports": "1-D worst-case stack for asymmetric ±tol and comparison of worst-case vs root-sum-square statistical analysis",
      "kind": "reference"
    },
    {
      "title": "SAE 2007-01-0407 — Tolerance Analysis of Mechanical Assemblies with Asymmetric Tolerances",
      "section": "Modified worst-case and RSS accumulation for asymmetric tolerances",
      "url": "https://doi.org/10.4271/2007-01-0407",
      "supports": "Shows that asymmetric contributors produce asymmetric assembly limits; motivates reporting stack_worst_plus / stack_worst_minus separately",
      "kind": "reference"
    },
    {
      "title": "NIST Technical Note 1297",
      "section": "5. Combined standard uncertainty",
      "url": "https://www.nist.gov/pml/nist-technical-note-1297/nist-tn-1297-5-combined-standard-uncertainty",
      "supports": "Root-sum-square combination of independent uncertainty components estimated as standard deviations",
      "kind": "reference"
    },
    {
      "title": "NIST — Evaluating uncertainty components: Type B",
      "section": "Uniform (rectangular) distribution",
      "url": "https://physics.nist.gov/cuu/Uncertainty/typeb.html",
      "supports": "For rectangular limits, best estimate is the interval midpoint (a++a−)/2 and u = a/√3 with a = (a+−a−)/2 — used when statistical_basis=uniform",
      "kind": "reference"
    }
  ],
  "methods": [],
  "fingerprint": "sha256:15f47c48aa2f91c65db3252e79e42892fb4b441ca9e5e5c73804cd220335f55b",
  "tier": "internally_reviewed",
  "verification": {
    "tests": {
      "passed": 35,
      "total": 35,
      "golden": 4,
      "boundary": 13,
      "property": 18
    },
    "contract_checks": {
      "passed": 10,
      "total": 10
    }
  },
  "evidence_core_generated_at": "2026-09-11T23:15:00.561Z",
  "rendered_at": "2026-11-10T05:18:41.747Z",
  "release_integrity": {
    "status": "verified",
    "scope": "workspace",
    "production_attestation_required": true,
    "calculation_version": "1.4.0",
    "artifacts": {
      "engine": "1.4.0",
      "page": "1.4.0",
      "capability": "1.4.0",
      "evidence": "1.4.0",
      "input_schema": "1.4.0",
      "output_schema": "1.4.0",
      "mcp_contract": "1.4.0"
    },
    "digests": {
      "input_schema_sha256": "036120d8f0e42fcc1ca177d0349b60957414b83b1e96effa9e22fa042525ed6a",
      "output_schema_sha256": "1b287114a9eeb904ab9cc4dc18a33ccf7c997be16d2d695a3cc074445c7f2405",
      "evidence_sha256": "b3ac478e694a4952fb28fbe2268ae98ce725a6d6aba50cca76b8f1933994ff4a",
      "evidence_core_sha256": "b3ac478e694a4952fb28fbe2268ae98ce725a6d6aba50cca76b8f1933994ff4a",
      "capability_sha256": "cc5809a731907d1264429a2f34b27f1ca682c9176b97c31f69a19734a425ae1b",
      "engine_sha256": "c6ebd8436f08b413e1ac6317b2d48550f2e6639a90dff254244e3aa562158b8d",
      "mcp_contract_sha256": "eb3e39ad4a95ed263415b4932f185d5edfe00a2403267b7c5ed5f718d1ff6da3"
    },
    "contract_checks": {
      "total": 10,
      "passed": 10,
      "failed": 0,
      "items": [
        {
          "id": "contract-page-version",
          "status": "pass",
          "detail": "1.4.0"
        },
        {
          "id": "contract-capability-version",
          "status": "pass",
          "detail": "1.4.0"
        },
        {
          "id": "contract-input-schema-version",
          "status": "pass",
          "detail": "1.4.0"
        },
        {
          "id": "contract-output-schema-version",
          "status": "pass",
          "detail": "1.4.0"
        },
        {
          "id": "evidence-version-matches-manifest",
          "status": "pass",
          "detail": "1.4.0"
        },
        {
          "id": "schema-output-required-declared",
          "status": "pass"
        },
        {
          "id": "schema-valid-input-executes",
          "status": "pass"
        },
        {
          "id": "engine-success-output-validates-schema",
          "status": "pass"
        },
        {
          "id": "schema-rejects-incomplete-input",
          "status": "pass"
        },
        {
          "id": "rest-success-payload-validates-schema",
          "status": "pass"
        }
      ]
    },
    "report": "https://www.calculatorx.com/.well-known/calculatorx-release-integrity.json"
  },
  "tests": [],
  "disclosure": {
    "policy": "calculatorx-public-evidence-v1",
    "full_validation": "private",
    "representation": "summary"
  }
}
