{
  "capability_id": "electrical.mosfet.switching_loss",
  "tool_id": "mosfet-switching-loss",
  "engine": "mosfet-switching-loss",
  "calculation_version": "1.0.0",
  "generated_at": "2026-09-16T22:03:43.716Z",
  "engine_build": "2026-09-10",
  "test_count": 13,
  "passed": 13,
  "failed": 0,
  "tests_summary": {
    "golden": {
      "total": 2,
      "passed": 2
    },
    "boundary": {
      "total": 6,
      "passed": 6
    },
    "property": {
      "total": 5,
      "passed": 5
    }
  },
  "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-08-16",
  "expert_review": {
    "status": "approved",
    "reviewer": {
      "name": "CalculatorX electrical review",
      "role": "electrical-engineer"
    },
    "reviewed_at": "2026-08-16",
    "scope": [
      "formula",
      "input semantics",
      "assumptions",
      "limitations",
      "sources",
      "tests"
    ],
    "kind": "expert"
  },
  "internal_review": {
    "status": "not_applicable",
    "reviewer": null
  },
  "page": "https://www.calculatorx.com/calc/electric/mosfet-switching-loss",
  "api": "https://www.calculatorx.com/api/v1/calc/mosfet-switching-loss",
  "schema_input": "https://www.calculatorx.com/schemas/electrical.mosfet.switching_loss.input.json",
  "schema_output": "https://www.calculatorx.com/schemas/electrical.mosfet.switching_loss.output.json",
  "assumptions": [
    "Linear V/I transition; neglects Coss/Qoss and diode recovery.",
    "tr/tf are effective overlap times at the operating point.",
    "P_gate is gate-drive power shared among driver, Rg, and Rg,int — not MOSFET junction dissipation.",
    "Qg is total gate charge at approximately the entered Vdrive, not an unscaled datasheet Qg at a different VGS."
  ],
  "limitations": [
    "Hard-switching linear transition only — not soft-switching or Eon/Eoff tables",
    "Qg and Vdrive must both be present or both omitted (else NEEDS_TWO_INPUTS)",
    "Conduction loss is a separate capability",
    "P_gate is gate-drive power — not necessarily dissipated entirely in the MOSFET junction"
  ],
  "boundary_conditions": [
    "Missing required → MISSING_REQUIRED_INPUT",
    "≤ 0 → VALUE_MUST_BE_POSITIVE",
    "Only one of Qg/Vdrive → NEEDS_TWO_INPUTS",
    "Non-finite → INVALID_NUMBER"
  ],
  "sources": [
    {
      "title": "Erickson & Maksimović — Fundamentals of Power Electronics",
      "section": "Hard-switching loss estimates",
      "supports": "½·V·I·t·f transition-loss model",
      "kind": "reference"
    },
    {
      "title": "Texas Instruments SLYT664 — MOSFET power losses and how they affect power-supply efficiency",
      "section": "Switching and gate-drive loss",
      "url": "https://www.ti.com/lit/pdf/slyt664",
      "supports": "P_sw ≈ ½·V·I·(tr+tf)·f; P_gate = Qg·Vdrive·f",
      "kind": "reference",
      "accessed": "2026-08-16"
    },
    {
      "title": "Texas Instruments SLUA618 — Fundamentals of MOSFET and IGBT Gate Driver Circuits",
      "section": "Gate-drive energy split among driver and gate resistance",
      "url": "https://www.ti.com/lit/pdf/slua618",
      "supports": "P_gate is not entirely dissipated in the MOSFET junction",
      "kind": "reference",
      "accessed": "2026-08-16"
    }
  ],
  "methods": [],
  "fingerprint": "sha256:81d79dfa33e0dfffd963aff7c6d865c435d7232fa86a12ad9442a63d99ca6cc9",
  "tests": [
    {
      "id": "hard-sw",
      "ok": true,
      "kind": "golden",
      "inputs": {
        "Vds": 48,
        "Id": 10,
        "tr": 5e-8,
        "tf": 4e-8,
        "f_sw": 100000
      },
      "expect": {
        "P_sw_W": 2.16,
        "P_gate_W": 0,
        "P_total_W": 2.16
      },
      "expectWarning": null,
      "actual": {
        "P_sw_W": 2.16,
        "P_gate_W": 0,
        "P_total_W": 2.16,
        "Vds": 48,
        "Id": 10,
        "tr": 5e-8,
        "tf": 4e-8,
        "f_sw": 100000,
        "Qg": null,
        "Vdrive": null
      },
      "tol": 1e-12
    },
    {
      "id": "with-gate",
      "ok": true,
      "kind": "golden",
      "inputs": {
        "Vds": 48,
        "Id": 10,
        "tr": 5e-8,
        "tf": 4e-8,
        "f_sw": 100000,
        "Qg": 5e-8,
        "Vdrive": 10
      },
      "expect": {
        "P_sw_W": 2.16,
        "P_gate_W": 0.05,
        "P_total_W": 2.21
      },
      "expectWarning": null,
      "actual": {
        "P_sw_W": 2.16,
        "P_gate_W": 0.049999999999999996,
        "P_total_W": 2.21,
        "Vds": 48,
        "Id": 10,
        "tr": 5e-8,
        "tf": 4e-8,
        "f_sw": 100000,
        "Qg": 5e-8,
        "Vdrive": 10
      },
      "tol": 1e-12
    },
    {
      "id": "missing-tr",
      "ok": true,
      "kind": "boundary",
      "inputs": {
        "Vds": 48,
        "Id": 10,
        "tf": 4e-8,
        "f_sw": 100000
      },
      "expectError": "MISSING_REQUIRED_INPUT",
      "code": "MISSING_REQUIRED_INPUT",
      "error": "tr is required"
    },
    {
      "id": "qg-only",
      "ok": true,
      "kind": "boundary",
      "inputs": {
        "Vds": 48,
        "Id": 10,
        "tr": 5e-8,
        "tf": 4e-8,
        "f_sw": 100000,
        "Qg": 5e-8
      },
      "expectError": "NEEDS_TWO_INPUTS",
      "code": "NEEDS_TWO_INPUTS",
      "error": "Qg and Vdrive must both be provided for gate loss"
    },
    {
      "id": "zero-Vds",
      "ok": true,
      "kind": "boundary",
      "inputs": {
        "Vds": 0,
        "Id": 10,
        "tr": 5e-8,
        "tf": 4e-8,
        "f_sw": 100000
      },
      "expectError": "VALUE_MUST_BE_POSITIVE",
      "code": "VALUE_MUST_BE_POSITIVE",
      "error": "Vds must be greater than zero"
    },
    {
      "id": "boundary-vdrive-only",
      "ok": true,
      "kind": "boundary",
      "inputs": {
        "Vds": 48,
        "Id": 10,
        "tr": 5e-8,
        "tf": 4e-8,
        "f_sw": 100000,
        "Vdrive": 10
      },
      "expectError": "NEEDS_TWO_INPUTS",
      "code": "NEEDS_TWO_INPUTS",
      "error": "Qg and Vdrive must both be provided for gate loss"
    },
    {
      "id": "boundary-negative-tr",
      "ok": true,
      "kind": "boundary",
      "inputs": {
        "Vds": 48,
        "Id": 10,
        "tr": -5e-8,
        "tf": 4e-8,
        "f_sw": 100000
      },
      "expectError": "VALUE_MUST_BE_POSITIVE",
      "code": "VALUE_MUST_BE_POSITIVE",
      "error": "tr must be greater than zero"
    },
    {
      "id": "boundary-zero-f_sw",
      "ok": true,
      "kind": "boundary",
      "inputs": {
        "Vds": 48,
        "Id": 10,
        "tr": 5e-8,
        "tf": 4e-8,
        "f_sw": 0
      },
      "expectError": "VALUE_MUST_BE_POSITIVE",
      "code": "VALUE_MUST_BE_POSITIVE",
      "error": "f_sw must be greater than zero"
    },
    {
      "id": "property-freq",
      "ok": true,
      "kind": "property",
      "detail": "2f → 2P_sw",
      "expect": 4.32,
      "actual": 4.32
    },
    {
      "id": "property-v",
      "ok": true,
      "kind": "property",
      "detail": "2V → 2P_sw",
      "expect": 4.32,
      "actual": 4.32
    },
    {
      "id": "property-id",
      "ok": true,
      "kind": "property",
      "detail": "2Id → 2P_sw",
      "expect": 4.32,
      "actual": 4.32
    },
    {
      "id": "property-times",
      "ok": true,
      "kind": "property",
      "detail": "2(tr+tf) → 2P_sw",
      "expect": 4.32,
      "actual": 4.32
    },
    {
      "id": "property-gate-linear",
      "ok": true,
      "kind": "property",
      "detail": "Qg scales P_gate only; P_sw unchanged",
      "expect": {
        "P_sw_W": 2.16,
        "P_gate_W": 0.05,
        "P_gate_2x": 0.1
      },
      "actual": {
        "P_sw_W": 2.16,
        "P_gate_W": 0.049999999999999996,
        "P_gate_2x": 0.09999999999999999
      }
    }
  ],
  "tier": "expert_verified",
  "verification": {
    "tests": {
      "passed": 13,
      "total": 13,
      "golden": 2,
      "boundary": 6,
      "property": 5
    },
    "contract_checks": {
      "passed": 11,
      "total": 11
    }
  },
  "evidence_core_generated_at": "2026-09-05T02:35:39.217Z",
  "rendered_at": "2026-09-16T22:03:43.716Z",
  "release_integrity": {
    "status": "verified",
    "scope": "workspace",
    "production_attestation_required": true,
    "calculation_version": "1.0.0",
    "artifacts": {
      "engine": "1.0.0",
      "page": "1.0.0",
      "capability": "1.0.0",
      "evidence": "1.0.0",
      "input_schema": "1.0.0",
      "output_schema": "1.0.0",
      "mcp_contract": "1.0.0"
    },
    "digests": {
      "input_schema_sha256": "691a1017c9dc2931d1dc3d0dbb6d5b5323d77bedf81a182526d195503eb741b2",
      "output_schema_sha256": "5fb55f7eccfcd2870897ca921972e8b1212bea9ab915f39863c854ff1812c67e",
      "evidence_sha256": "6b049d0ba25d062431c089063717fd0a22bb8d4199c1247b5a343e638dc83c51",
      "evidence_core_sha256": "6b049d0ba25d062431c089063717fd0a22bb8d4199c1247b5a343e638dc83c51",
      "capability_sha256": "e7e43f37fd61d89b90a9d7005e6670a520bdbba5256c2fe2187d2ecbc8e080b5",
      "engine_sha256": "c8d4ccdbfeaf61d7b024d4e1babb0c2ba3b324c1b37bd0cb456a526d8d2b1bd1",
      "mcp_contract_sha256": "863098b311a7b17dc4b229a6302b90b3545b175f716e5d84772c7be8e9716b86"
    },
    "contract_checks": {
      "total": 11,
      "passed": 11,
      "failed": 0,
      "items": [
        {
          "id": "contract-page-version",
          "status": "pass",
          "detail": "1.0.0"
        },
        {
          "id": "contract-capability-version",
          "status": "pass",
          "detail": "1.0.0"
        },
        {
          "id": "contract-input-schema-version",
          "status": "pass",
          "detail": "1.0.0"
        },
        {
          "id": "contract-output-schema-version",
          "status": "pass",
          "detail": "1.0.0"
        },
        {
          "id": "evidence-version-matches-manifest",
          "status": "pass",
          "detail": "1.0.0"
        },
        {
          "id": "schema-valid-input-executes",
          "status": "pass"
        },
        {
          "id": "engine-success-output-validates-schema",
          "status": "pass"
        },
        {
          "id": "schema-rejects-incomplete-input",
          "status": "pass"
        },
        {
          "id": "share-url-roundtrip-si",
          "status": "pass"
        },
        {
          "id": "share-url-qg-overlap-heading",
          "status": "pass"
        },
        {
          "id": "unit-hydrate-ns-khz-nc",
          "status": "pass"
        }
      ]
    },
    "report": "https://www.calculatorx.com/.well-known/calculatorx-release-integrity.json"
  }
}
