{
  "capability_id": "electrical.buck.ripple",
  "tool_id": "buck-ripple",
  "engine": "buck-ripple",
  "calculation_version": "1.1.0",
  "generated_at": "2026-09-16T22:03:43.746Z",
  "engine_build": "2026-09-11",
  "test_count": 15,
  "passed": 15,
  "failed": 0,
  "tests_summary": {
    "golden": {
      "total": 1,
      "passed": 1
    },
    "boundary": {
      "total": 10,
      "passed": 10
    },
    "property": {
      "total": 4,
      "passed": 4
    }
  },
  "engine_tested": true,
  "expert_reviewed": true,
  "internally_reviewed": false,
  "review_kind": "expert",
  "source_checked": true,
  "reviewed_by": "CalculatorX electrical review",
  "reviewer_role": "electrical-engineer",
  "last_reviewed": "2026-09-11",
  "expert_review": {
    "status": "approved",
    "reviewer": {
      "name": "CalculatorX electrical review",
      "role": "electrical-engineer"
    },
    "reviewed_at": "2026-09-11",
    "scope": [
      "formula",
      "input semantics",
      "assumptions",
      "limitations",
      "sources",
      "tests"
    ],
    "kind": "expert"
  },
  "internal_review": {
    "status": "not_applicable",
    "reviewer": null
  },
  "page": "https://www.calculatorx.com/calc/electric/buck-ripple",
  "api": "https://www.calculatorx.com/api/v1/calc/buck-ripple",
  "schema_input": "https://www.calculatorx.com/schemas/electrical.buck.ripple.input.json",
  "schema_output": "https://www.calculatorx.com/schemas/electrical.buck.ripple.output.json",
  "assumptions": [
    "Ideal CCM is assumed (not measured); valid when Iout > ΔI_L,pp/2",
    "dI_L_A and dV_out_V are peak-to-peak",
    "ΔV_C neglects ESR; capacitor-only ripple"
  ],
  "limitations": [
    "Ideal CCM is assumed, not measured — no Iout, so CCM/DCM is not certified",
    "ΔI_L_A and ΔV_out_V are peak-to-peak, not RMS or amplitude",
    "ΔV_out_V is capacitor-only (ESR=0); ESR and switching transients are neglected",
    "DCM, current-mode control dynamics, and non-ideal switch/diode drops are out of scope"
  ],
  "boundary_conditions": [
    "Vout≥Vin → VALUE_OUT_OF_RANGE",
    "Vin, Vout, f, L ≤0 → VALUE_MUST_BE_POSITIVE",
    "C=0 if present → VALUE_MUST_BE_POSITIVE"
  ],
  "sources": [
    {
      "title": "Texas Instruments SLVA477B — Basic Calculation of a Buck Converter's Power Stage",
      "section": "Inductor ripple current; output capacitor C_OUT = ΔI_L/(8 f ΔV)",
      "url": "https://www.ti.com/lit/an/slva477b/slva477b.pdf",
      "supports": "ΔI_L,pp = Vout(1−D)/(f L) and the 8fC capacitor relation",
      "kind": "reference",
      "publisher": "Texas Instruments"
    },
    {
      "title": "Analog Devices AN-1144 — Measuring Output Ripple and Switching Transients in Switching Regulators",
      "section": "Peak-to-peak ripple, triangular capacitor current, ESR contribution",
      "url": "https://www.analog.com/en/resources/app-notes/an-1144.html",
      "supports": "ΔI_L is peak-to-peak; ESR adds to capacitive ΔV",
      "kind": "reference",
      "publisher": "Analog Devices"
    },
    {
      "title": "Erickson / Maksimović — Fundamentals of Power Electronics",
      "section": "CCM buck inductor current ripple and output capacitor ΔV ≈ ΔI/(8fC)",
      "supports": "Ideal ESR=0 capacitor ripple estimate under triangular inductor current",
      "kind": "reference"
    }
  ],
  "methods": [],
  "fingerprint": "sha256:1927974088aa4a98fa7d13d6207fd67d80a32a55485475972c6dcfb22939db70",
  "tests": [
    {
      "id": "ccm",
      "ok": true,
      "kind": "golden",
      "inputs": {
        "Vin_V": 12,
        "Vout_V": 5,
        "f_Hz": 100000,
        "L_H": 0.00001,
        "C_F": 0.0001
      },
      "expect": {
        "dI_L_A": 2.916666666666666
      },
      "expectWarning": null,
      "actual": {
        "assumption": "ccm",
        "Vin_V": 12,
        "Vout_V": 5,
        "f_Hz": 100000,
        "L_H": 0.00001,
        "D": 0.4166666666666667,
        "dI_L_A": 2.916666666666666,
        "I_ccm_boundary_A": 1.458333333333333,
        "C_F": 0.0001,
        "dV_out_V": 0.03645833333333333,
        "dV_over_Vout": 0.007291666666666666
      },
      "tol": 1e-12
    },
    {
      "id": "bad-ratio",
      "ok": true,
      "kind": "boundary",
      "inputs": {
        "Vin_V": 5,
        "Vout_V": 12,
        "f_Hz": 100000,
        "L_H": 0.00001
      },
      "expectError": "VALUE_OUT_OF_RANGE",
      "code": "VALUE_OUT_OF_RANGE",
      "error": "Vout_V must be < Vin_V for buck"
    },
    {
      "id": "missing",
      "ok": true,
      "kind": "boundary",
      "inputs": {
        "Vin_V": 12,
        "Vout_V": 5
      },
      "expectError": "MISSING_REQUIRED_INPUT",
      "code": "MISSING_REQUIRED_INPUT",
      "error": "f_Hz is required"
    },
    {
      "id": "boundary-buck",
      "ok": true,
      "kind": "boundary",
      "inputs": {
        "Vin_V": 12,
        "Vout_V": 5,
        "f_Hz": 100000,
        "L_H": 0.00001,
        "C_F": 0.0001
      },
      "expect": {
        "dI_L_A": 2.916666666666666,
        "I_ccm_boundary_A": 1.458333333333333
      },
      "expectWarning": null,
      "actual": {
        "assumption": "ccm",
        "Vin_V": 12,
        "Vout_V": 5,
        "f_Hz": 100000,
        "L_H": 0.00001,
        "D": 0.4166666666666667,
        "dI_L_A": 2.916666666666666,
        "I_ccm_boundary_A": 1.458333333333333,
        "C_F": 0.0001,
        "dV_out_V": 0.03645833333333333,
        "dV_over_Vout": 0.007291666666666666
      },
      "tol": 1e-12
    },
    {
      "id": "boundary-buck-no-c",
      "ok": true,
      "kind": "boundary",
      "inputs": {
        "Vin_V": 12,
        "Vout_V": 5,
        "f_Hz": 100000,
        "L_H": 0.00001
      },
      "expect": {
        "dI_L_A": 2.916666666666666
      },
      "expectWarning": null,
      "actual": {
        "assumption": "ccm",
        "Vin_V": 12,
        "Vout_V": 5,
        "f_Hz": 100000,
        "L_H": 0.00001,
        "D": 0.4166666666666667,
        "dI_L_A": 2.916666666666666,
        "I_ccm_boundary_A": 1.458333333333333
      },
      "tol": 1e-12
    },
    {
      "id": "boundary-buck-vout-eq",
      "ok": true,
      "kind": "boundary",
      "inputs": {
        "Vin_V": 12,
        "Vout_V": 12,
        "f_Hz": 100000,
        "L_H": 0.00001
      },
      "expectError": "VALUE_OUT_OF_RANGE",
      "code": "VALUE_OUT_OF_RANGE",
      "error": "Vout_V must be < Vin_V for buck"
    },
    {
      "id": "boundary-buck-vin-zero",
      "ok": true,
      "kind": "boundary",
      "inputs": {
        "Vin_V": 0,
        "Vout_V": 5,
        "f_Hz": 100000,
        "L_H": 0.00001
      },
      "expectError": "VALUE_MUST_BE_POSITIVE",
      "code": "VALUE_MUST_BE_POSITIVE",
      "error": "Vin_V must be greater than zero"
    },
    {
      "id": "boundary-buck-vout-zero",
      "ok": true,
      "kind": "boundary",
      "inputs": {
        "Vin_V": 12,
        "Vout_V": 0,
        "f_Hz": 100000,
        "L_H": 0.00001
      },
      "expectError": "VALUE_MUST_BE_POSITIVE",
      "code": "VALUE_MUST_BE_POSITIVE",
      "error": "Vout_V must be greater than zero"
    },
    {
      "id": "boundary-buck-f-zero",
      "ok": true,
      "kind": "boundary",
      "inputs": {
        "Vin_V": 12,
        "Vout_V": 5,
        "f_Hz": 0,
        "L_H": 0.00001
      },
      "expectError": "VALUE_MUST_BE_POSITIVE",
      "code": "VALUE_MUST_BE_POSITIVE",
      "error": "f_Hz must be greater than zero"
    },
    {
      "id": "boundary-buck-l-zero",
      "ok": true,
      "kind": "boundary",
      "inputs": {
        "Vin_V": 12,
        "Vout_V": 5,
        "f_Hz": 100000,
        "L_H": 0
      },
      "expectError": "VALUE_MUST_BE_POSITIVE",
      "code": "VALUE_MUST_BE_POSITIVE",
      "error": "L_H must be greater than zero"
    },
    {
      "id": "boundary-buck-c-zero",
      "ok": true,
      "kind": "boundary",
      "inputs": {
        "Vin_V": 12,
        "Vout_V": 5,
        "f_Hz": 100000,
        "L_H": 0.00001,
        "C_F": 0
      },
      "expectError": "VALUE_MUST_BE_POSITIVE",
      "code": "VALUE_MUST_BE_POSITIVE",
      "error": "C_F must be greater than zero"
    },
    {
      "id": "property-dI",
      "ok": true,
      "kind": "property",
      "detail": "dI",
      "expect": 2.916666666666666,
      "actual": 2.916666666666666
    },
    {
      "id": "property-ccm-boundary",
      "ok": true,
      "kind": "property",
      "detail": "I_ccm_boundary",
      "expect": 1.458333333333333,
      "actual": 1.458333333333333
    },
    {
      "id": "property-no-c-omits-dv",
      "ok": true,
      "kind": "property",
      "detail": "dV omitted",
      "expect": null
    },
    {
      "id": "property-double-f",
      "ok": true,
      "kind": "property",
      "detail": "f→2f",
      "expect": {
        "dI": 1.458333333333333,
        "dV": 0.009114583333333332
      },
      "actual": {
        "dI": 1.458333333333333,
        "dV": 0.009114583333333332
      }
    }
  ],
  "tier": "expert_verified",
  "verification": {
    "tests": {
      "passed": 15,
      "total": 15,
      "golden": 1,
      "boundary": 10,
      "property": 4
    },
    "contract_checks": {
      "passed": 4,
      "total": 4
    }
  },
  "evidence_core_generated_at": "2026-09-11T14:08:29.678Z",
  "rendered_at": "2026-09-16T22:03:43.746Z",
  "release_integrity": {
    "status": "verified",
    "scope": "workspace",
    "production_attestation_required": true,
    "calculation_version": "1.1.0",
    "artifacts": {
      "engine": "1.1.0",
      "page": "1.1.0",
      "capability": "1.1.0",
      "evidence": "1.1.0",
      "input_schema": "1.1.0",
      "output_schema": "1.1.0",
      "mcp_contract": "1.1.0"
    },
    "digests": {
      "input_schema_sha256": "c877e8a833a24fc7d74ecd9af3a2d84df1aa2d5c82b0076e7d2a965ba872ea5d",
      "output_schema_sha256": "800d2d0f8dca7da1b6f17b885c435390030c1a705a4444e66484757b3c7498d6",
      "evidence_sha256": "99cd5289e725ceec05b990b3fbb3c06abaa6d42ad5024a180c49250e0f138d65",
      "evidence_core_sha256": "99cd5289e725ceec05b990b3fbb3c06abaa6d42ad5024a180c49250e0f138d65",
      "capability_sha256": "aaf5365dab62c3d91ea2f3b7ae737b99808a64e385b057d74970e3c3d00c81e2",
      "engine_sha256": "c8d4ccdbfeaf61d7b024d4e1babb0c2ba3b324c1b37bd0cb456a526d8d2b1bd1",
      "mcp_contract_sha256": "863098b311a7b17dc4b229a6302b90b3545b175f716e5d84772c7be8e9716b86"
    },
    "contract_checks": {
      "total": 4,
      "passed": 4,
      "failed": 0,
      "items": [
        {
          "id": "release-artifacts-aligned",
          "status": "pass",
          "detail": "1.1.0"
        },
        {
          "id": "schema-valid-input-executes",
          "status": "pass"
        },
        {
          "id": "engine-success-output-validates-schema",
          "status": "pass"
        },
        {
          "id": "schema-rejects-incomplete-input",
          "status": "pass"
        }
      ]
    },
    "report": "https://www.calculatorx.com/.well-known/calculatorx-release-integrity.json"
  }
}
