{
  "capability_id": "engineering.uncertainty.propagate",
  "tool_id": "uncertainty-propagate",
  "engine": "uncertainty-propagate",
  "calculation_version": "1.9.8",
  "generated_at": "2026-11-10T05:18:41.719Z",
  "engine_build": "2026-09-12",
  "test_count": 88,
  "passed": 88,
  "failed": 0,
  "tests_summary": {
    "golden": {
      "passed": 11,
      "total": 11
    },
    "boundary": {
      "passed": 48,
      "total": 48
    },
    "property": {
      "passed": 29,
      "total": 29
    }
  },
  "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-10",
  "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-10",
    "scope": [
      "formula",
      "input semantics",
      "assumptions",
      "limitations",
      "sources",
      "tests"
    ],
    "kind": "internal"
  },
  "page": "https://www.calculatorx.com/calc/engineering/uncertainty-propagate",
  "api": "https://www.calculatorx.com/api/v1/calc/uncertainty-propagate",
  "schema_input": "https://www.calculatorx.com/schemas/engineering.uncertainty.propagate.input.json",
  "schema_output": "https://www.calculatorx.com/schemas/engineering.uncertainty.propagate.output.json",
  "assumptions": [
    "Default uncorrelated (rho=0); optional correlations when provided.",
    "Linear propagation assumes a local first-order approximation is adequate. For significant model nonlinearity, consider higher-order treatment (JCGM 100:2008/Amd.1:2026) or Monte Carlo propagation (JCGM 101:2008)."
  ],
  "limitations": [
    "Linear GUM (binary/sensitivity/RSS/budget) or Monte Carlo (JCGM 101) with normal/rectangular draws; not adaptive/MCMC",
    "MC: N in 100…100000 (default 10000), deterministic Mulberry32 seed; confidence → empirical percentiles; k → U=k·u_c",
    "budget/sensitivity Type A/B + distributions are metadata (except MC uses distribution for draws); u is standard uncertainty",
    "contributions are diagonal (c·u)² fractions for linear modes; with correlations percents may not sum to 100%",
    "Product/quotient use absolute first-order forms in linear mode; MC quotient rejects >5% near-zero denominator draws (MONTECARLO_UNSTABLE)",
    "n×n correlation matrix not positive semidefinite → CORRELATION_MATRIX_NOT_PSD (singular PSD allowed); duplicate unordered pair → DUPLICATE_CORRELATION; conflicting ρ for the same pair → CONFLICTING_CORRELATION",
    "Optional Quantity Engine v1.1: SI-prefix conversion + electrical derived rewrites (1000 mV + 2 V → 3 V; V/A → Ω; A·Ω → V; V×A → VA); different additive dimensions → UNIT_MISMATCH; not full SI algebra",
    "Unknown mode → INVALID_MODE; k and confidence together → INVALID_INPUT",
    "confidence with nonzero ρ/correlations → CORRELATED_DOF_NOT_SUPPORTED (use fixed k)",
    "MC rectangular + correlation → CORRELATED_NON_NORMAL_MC_NOT_SUPPORTED (normal marginals only)",
    "Public Agent schema uses canonical field names only (components.u/c/x; correlations i/j as index or name). Runtime still accepts legacy aliases (ua/uncertainty/sensitivity/value) for compatibility."
  ],
  "boundary_conditions": [
    "Missing required fields → MISSING_REQUIRED_INPUT",
    "Negative ua/ub → VALUE_MUST_BE_NON_NEGATIVE",
    "Unknown mode → INVALID_MODE",
    "Quotient with b=0 → DIVISION_BY_ZERO",
    "Product with a=0 or b=0 is allowed (absolute form); u_rel omitted when y=0",
    "sum/difference with unit_a ≠ unit_b → UNIT_MISMATCH",
    "rho ∉ [-1,1] → VALUE_OUT_OF_RANGE; k≤0 → VALUE_MUST_BE_POSITIVE",
    "RSS with correlations → INVALID_INPUT",
    "confidence with nonzero ρ/correlations → CORRELATED_DOF_NOT_SUPPORTED",
    "Monte Carlo rectangular + correlation → CORRELATED_NON_NORMAL_MC_NOT_SUPPORTED",
    "Monte Carlo quotient with >5% near-zero denominator draws → MONTECARLO_UNSTABLE",
    "n×n correlation matrix not positive semidefinite → CORRELATION_MATRIX_NOT_PSD (pairwise |ρ|≤1 is not sufficient for 3+ variables; singular PSD is allowed)",
    "Duplicate unordered (i,j) pair → DUPLICATE_CORRELATION; conflicting ρ for the same pair → CONFLICTING_CORRELATION"
  ],
  "sources": [
    {
      "title": "JCGM 100:2008 — Evaluation of measurement data (GUM)",
      "section": "Law of propagation of uncertainty",
      "url": "https://www.bipm.org/en/committees/jc/jcgm/publications",
      "supports": "u_c² = Σ (∂f/∂xᵢ)² u²(xᵢ) for uncorrelated inputs",
      "kind": "standard"
    },
    {
      "title": "JCGM 100:2008/Amd.1:2026 — Nonlinearity in measurement models",
      "section": "Amendment 1",
      "url": "https://www.bipm.org/en/committees/jc/jcgm/publications",
      "supports": "First-order linear propagation may be inadequate when the measurement model is significantly nonlinear",
      "kind": "standard"
    },
    {
      "title": "JCGM GUM-6:2020 — Developing and using measurement models",
      "section": "Measurement modelling",
      "url": "https://www.bipm.org/en/committees/jc/jcgm/publications",
      "supports": "Guidance on constructing measurement models for uncertainty evaluation",
      "kind": "standard"
    },
    {
      "title": "JCGM 101:2008 — Propagation of distributions using a Monte Carlo method",
      "section": "GUM Supplement 1",
      "url": "https://www.bipm.org/en/committees/jc/jcgm/publications",
      "supports": "Methodological reference for the implemented Monte Carlo subset (normal/rectangular, seeded sampling, percentile intervals); not adaptive MCM, arbitrary PDFs, or full JCGM 101 validation procedure",
      "kind": "standard"
    },
    {
      "title": "NIST Technical Note 1297",
      "section": "Guidelines for evaluating and expressing uncertainty",
      "url": "https://www.nist.gov/pml/nist-technical-note-1297",
      "supports": "Combined standard uncertainty practice; reporting of u_c",
      "kind": "reference"
    },
    {
      "title": "NIST Guide to the SI (SP 811)",
      "section": "Expression of uncertainty with SI quantities",
      "url": "https://www.nist.gov/pml/special-publication-811",
      "supports": "Unit-consistent reporting of results and uncertainties",
      "kind": "reference"
    }
  ],
  "methods": [],
  "fingerprint": "sha256:d8cfcf55210b3e57585f02738f49bb344b4c1cc9d6597384fadb8f7da98e3fb8",
  "tier": "internally_reviewed",
  "verification": {
    "tests": {
      "passed": 88,
      "total": 88,
      "golden": 11,
      "boundary": 48,
      "property": 29
    },
    "contract_checks": {
      "passed": 10,
      "total": 10
    }
  },
  "evidence_core_generated_at": "2026-09-12T08:32:37.705Z",
  "rendered_at": "2026-11-10T05:18:41.719Z",
  "release_integrity": {
    "status": "verified",
    "scope": "workspace",
    "production_attestation_required": true,
    "calculation_version": "1.9.8",
    "artifacts": {
      "engine": "1.9.8",
      "page": "1.9.8",
      "capability": "1.9.8",
      "evidence": "1.9.8",
      "input_schema": "1.9.8",
      "output_schema": "1.9.8",
      "mcp_contract": "1.9.8"
    },
    "digests": {
      "input_schema_sha256": "263d0ba0dda3ea81aa635bcd61d0eb9e9e9fc347ab4890b6cc20ccacc3a6843f",
      "output_schema_sha256": "d1d0c1d06cbe6b38725a8566ba4273291b9558081c5786b8e0b65b862a8e66b1",
      "evidence_sha256": "036b103a86ee1e5506c2b50e304f262ebc62c8a710c306eb022918c77773aff3",
      "evidence_core_sha256": "036b103a86ee1e5506c2b50e304f262ebc62c8a710c306eb022918c77773aff3",
      "capability_sha256": "c99d36a336e8db9868666dfd8c0c09f638c09cd747525229580c2a39903d68a9",
      "engine_sha256": "c6ebd8436f08b413e1ac6317b2d48550f2e6639a90dff254244e3aa562158b8d",
      "mcp_contract_sha256": "eb3e39ad4a95ed263415b4932f185d5edfe00a2403267b7c5ed5f718d1ff6da3"
    },
    "contract_checks": {
      "total": 10,
      "passed": 10,
      "failed": 0,
      "items": [
        {
          "id": "contract-page-version",
          "status": "pass",
          "detail": "1.9.8"
        },
        {
          "id": "contract-capability-version",
          "status": "pass",
          "detail": "1.9.8"
        },
        {
          "id": "contract-input-schema-version",
          "status": "pass",
          "detail": "1.9.8"
        },
        {
          "id": "contract-output-schema-version",
          "status": "pass",
          "detail": "1.9.8"
        },
        {
          "id": "evidence-version-matches-manifest",
          "status": "pass",
          "detail": "1.9.8"
        },
        {
          "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"
  }
}
