{
  "capability_id": "electrical.mosfet.vth",
  "tool_id": "mosfet-vth",
  "engine": "mosfet-vth",
  "calculation_version": "1.3.1",
  "generated_at": "2026-09-21T16:00:36.054Z",
  "engine_build": "2026-09-10",
  "test_count": 26,
  "passed": 26,
  "failed": 0,
  "tests_summary": {
    "golden": {
      "total": 10,
      "passed": 10
    },
    "boundary": {
      "total": 5,
      "passed": 5
    },
    "property": {
      "total": 11,
      "passed": 11
    }
  },
  "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-17",
  "expert_review": {
    "status": "approved",
    "reviewer": {
      "name": "CalculatorX electrical review",
      "role": "electrical-engineer"
    },
    "reviewed_at": "2026-08-17",
    "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-vth",
  "api": "https://www.calculatorx.com/api/v1/calc/mosfet-vth",
  "schema_input": "https://www.calculatorx.com/schemas/electrical.mosfet.vth.input.json",
  "schema_output": "https://www.calculatorx.com/schemas/electrical.mosfet.vth.output.json",
  "assumptions": [
    "Ideal long-channel square-law NMOS model. Not BSIM, velocity saturation, or short-channel.",
    "Vth is the model threshold parameter, not datasheet VGS(th) and not recommended gate drive.",
    "kn = μn·Cox·W/L such that Id_sat = ½·kn·Vod². The ½ factor is not included in kn.",
    "When Vds is omitted, Id uses the saturation equation and region is above_threshold or cutoff.",
    "When Vds is provided: cutoff if Vod≤0; linear if 0≤Vds<Vod; saturation if Vds≥Vod.",
    "Vod > 0 means above the model threshold, not strong inversion.",
    "Cutoff returns Id = 0 A. Subthreshold current is not modeled.",
    "Solve-Vth always uses the saturation extract Vth=Vgs−√(2Id/kn) at the measurement temperature.",
    "Linear Vth(Tj) does not scale kn or μ(T).",
    "Default α = −0.002 V/°C is a Si planning value, not a datasheet TCV of VGS(th)."
  ],
  "limitations": [
    "Long-channel square-law only — not BSIM, velocity saturation, or short-channel",
    "Vth is the model threshold parameter, not datasheet VGS(th) and not recommended gate drive",
    "kn = μn·Cox·W/L such that Id_sat = ½·kn·Vod²; the ½ is not included in kn",
    "Without Vds, Id uses the saturation equation; with Vds, region is cutoff / linear / saturation",
    "Cutoff returns Id = 0 A; subthreshold leakage is not modeled",
    "Linear Vth(Tj) does not scale kn / μ(T); default α = −0.002 V/°C is a Si planning value, not datasheet TCV"
  ],
  "boundary_conditions": [
    "Unknown mode or temperature_model → INVALID_MODE",
    "Missing Vgs / Vth / Id / kn / Tj when required → MISSING_REQUIRED_INPUT",
    "Non-finite → INVALID_NUMBER",
    "Id or kn ≤ 0 → VALUE_MUST_BE_POSITIVE",
    "Vds < 0 → VALUE_MUST_BE_NON_NEGATIVE",
    "Tj or Tref < −273.15 °C → VALUE_OUT_OF_RANGE",
    "id mode Vgs ≤ Vth_used → Id_A=0, region=cutoff, warning SUBTHRESHOLD_NOT_MODELED (CUTOFF_NOT_MODELED deprecated alias)",
    "0 < Vod < 0.1 V → warning NEAR_THRESHOLD",
    "Every success includes warning MODEL_VTH_NOT_DATASHEET_VGS_TH",
    "id/vth with Vds omitted and Vod>0 → warning SATURATION_ASSUMED",
    "Vds < Vod and Vod>0 → region=linear, warning LINEAR_REGION (id) or SATURATION_EXTRACT_ASSUMED (vth)",
    "linear with omitted α → warning VTH_TEMP_COEFF_DEFAULT",
    "temperature_model=none with Tj/α present → warning TEMPERATURE_NOT_APPLIED",
    "linear id/vth → warning KN_TEMP_NOT_MODELED",
    "α > 0 → warning VTH_TEMP_COEFF_POSITIVE"
  ],
  "sources": [
    {
      "title": "Sedra/Smith — Microelectronic Circuits",
      "section": "MOSFET DC / square-law saturation and Vth(T)",
      "supports": "Id_sat=½ kn (Vgs−Vth)² and Id_lin=kn[(Vgs−Vth)Vds−Vds²/2]; Vth typically falls with T (~−2 mV/°C planning scale)",
      "kind": "reference"
    },
    {
      "title": "Toshiba — Power MOSFET Electrical Characteristics",
      "section": "Gate threshold voltage VGS(th)",
      "url": "https://toshiba.semicon-storage.com/info/docget.jsp?did=13415",
      "supports": "Datasheet VGS(th) is measured at a specified drain current; onset of conduction, not recommended gate drive",
      "kind": "reference",
      "accessed": "2026-08-16"
    },
    {
      "title": "Nexperia AN11158 — Understanding power MOSFET data sheet parameters",
      "section": "Threshold voltage",
      "url": "https://assets.nexperia.com/documents/application-note/AN11158.pdf",
      "supports": "Datasheet VGS(th) definition differs from the textbook device-physics threshold parameter; TCV of VGS(th) is not model Vth(T)",
      "kind": "reference",
      "accessed": "2026-08-16"
    },
    {
      "title": "Texas Instruments SLUA618 — Fundamentals of MOSFET and IGBT Gate Driver Circuits",
      "section": "Gate drive versus threshold",
      "url": "https://www.ti.com/lit/pdf/slua618",
      "supports": "VGS(th) indicates the start of conduction; it is not the gate voltage for full enhancement",
      "kind": "reference",
      "accessed": "2026-08-16"
    }
  ],
  "methods": [],
  "fingerprint": "sha256:62d830442da390bacca788207a7c0cde30c1f11982f6a67aa61d54533e60497a",
  "tests": [
    {
      "id": "od",
      "ok": true,
      "kind": "golden",
      "inputs": {
        "mode": "overdrive",
        "Vgs_V": 3,
        "Vth_V": 1
      },
      "expect": {
        "Vod_V": 2,
        "region": "above_threshold"
      },
      "expectWarning": null,
      "actual": {
        "mode": "overdrive",
        "Vgs_V": 3,
        "Vth_V": 1,
        "Vod_V": 2,
        "region": "above_threshold",
        "strong_inversion": true,
        "warnings": [
          {
            "code": "MODEL_VTH_NOT_DATASHEET_VGS_TH",
            "severity": "warning",
            "detail": "Vth in this calculator is the threshold parameter of the ideal long-channel square-law model. Datasheet VGS(th) is usually measured at a specified small drain current (onset of conduction) and is not the recommended gate-drive voltage.",
            "suggestion": "Do not paste datasheet VGS(th) as Vth, and do not use VGS(th) as the recommended VGS."
          }
        ]
      },
      "tol": 1e-12
    },
    {
      "id": "id",
      "ok": true,
      "kind": "golden",
      "inputs": {
        "mode": "id",
        "Vgs_V": 3,
        "Vth_V": 1,
        "kn_A_per_V2": 0.5
      },
      "expect": {
        "Id_A": 1,
        "Vod_V": 2,
        "region": "above_threshold"
      },
      "expectWarning": null,
      "actual": {
        "mode": "id",
        "Vgs_V": 3,
        "Vth_V": 1,
        "kn_A_per_V2": 0.5,
        "Vod_V": 2,
        "Id_A": 1,
        "region": "above_threshold",
        "strong_inversion": true,
        "warnings": [
          {
            "code": "MODEL_VTH_NOT_DATASHEET_VGS_TH",
            "severity": "warning",
            "detail": "Vth in this calculator is the threshold parameter of the ideal long-channel square-law model. Datasheet VGS(th) is usually measured at a specified small drain current (onset of conduction) and is not the recommended gate-drive voltage.",
            "suggestion": "Do not paste datasheet VGS(th) as Vth, and do not use VGS(th) as the recommended VGS."
          },
          {
            "code": "SATURATION_ASSUMED",
            "severity": "info",
            "detail": "Id = ½·kn·Vod² assumes saturation: Vds ≥ Vod. Linear-region current is not modeled unless Vds is provided.",
            "suggestion": "Enter Vds to classify linear vs saturation and to use the matching Id equation."
          }
        ]
      },
      "tol": 1e-12
    },
    {
      "id": "id-linear",
      "ok": true,
      "kind": "golden",
      "inputs": {
        "mode": "id",
        "Vgs_V": 3,
        "Vth_V": 1,
        "kn_A_per_V2": 0.5,
        "Vds_V": 1
      },
      "expect": {
        "Id_A": 0.75,
        "Vod_V": 2,
        "region": "linear"
      },
      "expectWarning": null,
      "actual": {
        "mode": "id",
        "Vgs_V": 3,
        "Vth_V": 1,
        "kn_A_per_V2": 0.5,
        "Vod_V": 2,
        "Id_A": 0.75,
        "region": "linear",
        "strong_inversion": true,
        "Vds_V": 1,
        "warnings": [
          {
            "code": "MODEL_VTH_NOT_DATASHEET_VGS_TH",
            "severity": "warning",
            "detail": "Vth in this calculator is the threshold parameter of the ideal long-channel square-law model. Datasheet VGS(th) is usually measured at a specified small drain current (onset of conduction) and is not the recommended gate-drive voltage.",
            "suggestion": "Do not paste datasheet VGS(th) as Vth, and do not use VGS(th) as the recommended VGS."
          },
          {
            "code": "LINEAR_REGION",
            "severity": "info",
            "detail": "Vds < Vod: triode/linear square-law Id = kn·(Vod·Vds − Vds²/2). Not the saturation ½·kn·Vod² formula.",
            "suggestion": "Use this Id only when the long-channel linear-region assumption holds."
          }
        ]
      },
      "tol": 1e-12
    },
    {
      "id": "id-sat-vds",
      "ok": true,
      "kind": "golden",
      "inputs": {
        "mode": "id",
        "Vgs_V": 3,
        "Vth_V": 1,
        "kn_A_per_V2": 0.5,
        "Vds_V": 2
      },
      "expect": {
        "Id_A": 1,
        "Vod_V": 2,
        "region": "saturation"
      },
      "expectWarning": null,
      "actual": {
        "mode": "id",
        "Vgs_V": 3,
        "Vth_V": 1,
        "kn_A_per_V2": 0.5,
        "Vod_V": 2,
        "Id_A": 1,
        "region": "saturation",
        "strong_inversion": true,
        "Vds_V": 2,
        "warnings": [
          {
            "code": "MODEL_VTH_NOT_DATASHEET_VGS_TH",
            "severity": "warning",
            "detail": "Vth in this calculator is the threshold parameter of the ideal long-channel square-law model. Datasheet VGS(th) is usually measured at a specified small drain current (onset of conduction) and is not the recommended gate-drive voltage.",
            "suggestion": "Do not paste datasheet VGS(th) as Vth, and do not use VGS(th) as the recommended VGS."
          }
        ]
      },
      "tol": 1e-12
    },
    {
      "id": "vth",
      "ok": true,
      "kind": "golden",
      "inputs": {
        "mode": "vth",
        "Vgs_V": 3,
        "Id_A": 1,
        "kn_A_per_V2": 0.5
      },
      "expect": {
        "Vth_V": 1,
        "Vod_V": 2
      },
      "expectWarning": null,
      "actual": {
        "mode": "vth",
        "Vgs_V": 3,
        "Id_A": 1,
        "kn_A_per_V2": 0.5,
        "Vod_V": 2,
        "Vth_V": 1,
        "region": "above_threshold",
        "strong_inversion": true,
        "warnings": [
          {
            "code": "MODEL_VTH_NOT_DATASHEET_VGS_TH",
            "severity": "warning",
            "detail": "Vth in this calculator is the threshold parameter of the ideal long-channel square-law model. Datasheet VGS(th) is usually measured at a specified small drain current (onset of conduction) and is not the recommended gate-drive voltage.",
            "suggestion": "Do not paste datasheet VGS(th) as Vth, and do not use VGS(th) as the recommended VGS."
          },
          {
            "code": "SATURATION_ASSUMED",
            "severity": "info",
            "detail": "Id = ½·kn·Vod² assumes saturation: Vds ≥ Vod. Linear-region current is not modeled unless Vds is provided.",
            "suggestion": "Enter Vds to classify linear vs saturation and to use the matching Id equation."
          }
        ]
      },
      "tol": 1e-12
    },
    {
      "id": "cutoff",
      "ok": true,
      "kind": "golden",
      "inputs": {
        "mode": "id",
        "Vgs_V": 1,
        "Vth_V": 2,
        "kn_A_per_V2": 1
      },
      "expect": {
        "Id_A": 0,
        "region": "cutoff"
      },
      "expectWarning": null,
      "actual": {
        "mode": "id",
        "Vgs_V": 1,
        "Vth_V": 2,
        "kn_A_per_V2": 1,
        "Vod_V": -1,
        "Id_A": 0,
        "region": "cutoff",
        "strong_inversion": false,
        "warnings": [
          {
            "code": "MODEL_VTH_NOT_DATASHEET_VGS_TH",
            "severity": "warning",
            "detail": "Vth in this calculator is the threshold parameter of the ideal long-channel square-law model. Datasheet VGS(th) is usually measured at a specified small drain current (onset of conduction) and is not the recommended gate-drive voltage.",
            "suggestion": "Do not paste datasheet VGS(th) as Vth, and do not use VGS(th) as the recommended VGS."
          },
          {
            "code": "SUBTHRESHOLD_NOT_MODELED",
            "severity": "warning",
            "detail": "Cutoff is modeled as Id = 0 A. Subthreshold leakage is outside this square-law model.",
            "suggestion": "Use a subthreshold or compact model if you need current below Vth."
          },
          {
            "code": "CUTOFF_NOT_MODELED",
            "severity": "warning",
            "detail": "Deprecated alias of SUBTHRESHOLD_NOT_MODELED. Cutoff is modeled (Id = 0 A); subthreshold current is not.",
            "suggestion": "Prefer SUBTHRESHOLD_NOT_MODELED. CUTOFF_NOT_MODELED remains for compatibility."
          }
        ]
      },
      "tol": 1e-12
    },
    {
      "id": "near",
      "ok": true,
      "kind": "golden",
      "inputs": {
        "mode": "overdrive",
        "Vgs_V": 1.01,
        "Vth_V": 1
      },
      "expect": {
        "Vod_V": 0.01,
        "region": "above_threshold"
      },
      "expectWarning": null,
      "actual": {
        "mode": "overdrive",
        "Vgs_V": 1.01,
        "Vth_V": 1,
        "Vod_V": 0.010000000000000009,
        "region": "above_threshold",
        "strong_inversion": true,
        "warnings": [
          {
            "code": "MODEL_VTH_NOT_DATASHEET_VGS_TH",
            "severity": "warning",
            "detail": "Vth in this calculator is the threshold parameter of the ideal long-channel square-law model. Datasheet VGS(th) is usually measured at a specified small drain current (onset of conduction) and is not the recommended gate-drive voltage.",
            "suggestion": "Do not paste datasheet VGS(th) as Vth, and do not use VGS(th) as the recommended VGS."
          },
          {
            "code": "NEAR_THRESHOLD",
            "severity": "info",
            "detail": "Vod is only slightly above the model threshold. Vod > 0 is not strong inversion; the square-law approximation is poor near threshold.",
            "suggestion": "Treat the result as above-threshold bookkeeping, not a strong-inversion bias point."
          }
        ]
      },
      "tol": 1e-12
    },
    {
      "id": "bad-kn",
      "ok": true,
      "kind": "boundary",
      "inputs": {
        "mode": "id",
        "Vgs_V": 3,
        "Vth_V": 1,
        "kn_A_per_V2": 0
      },
      "expectError": "VALUE_MUST_BE_POSITIVE",
      "code": "VALUE_MUST_BE_POSITIVE",
      "error": "kn_A_per_V2 must be greater than zero"
    },
    {
      "id": "bad-vds",
      "ok": true,
      "kind": "boundary",
      "inputs": {
        "mode": "id",
        "Vgs_V": 3,
        "Vth_V": 1,
        "kn_A_per_V2": 0.5,
        "Vds_V": -1
      },
      "expectError": "VALUE_MUST_BE_NON_NEGATIVE",
      "code": "VALUE_MUST_BE_NON_NEGATIVE",
      "error": "Vds_V must be ≥ 0"
    },
    {
      "id": "vth-tj",
      "ok": true,
      "kind": "golden",
      "inputs": {
        "mode": "overdrive",
        "Vgs_V": 3,
        "Vth_V": 1,
        "Tj_C": 125,
        "alpha_V_per_C": -0.002
      },
      "expect": {
        "Vod_V": 2.2,
        "Vth_Tj_V": 0.8,
        "Vth_Tref_V": 1
      },
      "expectWarning": null,
      "actual": {
        "mode": "overdrive",
        "Vgs_V": 3,
        "Vth_V": 0.8,
        "Vod_V": 2.2,
        "region": "above_threshold",
        "strong_inversion": true,
        "temperature_model": "linear",
        "Tj_C": 125,
        "Tref_C": 25,
        "alpha_V_per_C": -0.002,
        "Vth_Tref_V": 1,
        "Vth_Tj_V": 0.8,
        "warnings": [
          {
            "code": "MODEL_VTH_NOT_DATASHEET_VGS_TH",
            "severity": "warning",
            "detail": "Vth in this calculator is the threshold parameter of the ideal long-channel square-law model. Datasheet VGS(th) is usually measured at a specified small drain current (onset of conduction) and is not the recommended gate-drive voltage.",
            "suggestion": "Do not paste datasheet VGS(th) as Vth, and do not use VGS(th) as the recommended VGS."
          }
        ]
      },
      "tol": 1e-12
    },
    {
      "id": "id-tj",
      "ok": true,
      "kind": "golden",
      "inputs": {
        "mode": "id",
        "Vgs_V": 3,
        "Vth_V": 1,
        "kn_A_per_V2": 0.5,
        "Tj_C": 125,
        "alpha_V_per_C": -0.002
      },
      "expect": {
        "Id_A": 1.21,
        "Vod_V": 2.2
      },
      "expectWarning": null,
      "actual": {
        "mode": "id",
        "Vgs_V": 3,
        "Vth_V": 0.8,
        "kn_A_per_V2": 0.5,
        "Vod_V": 2.2,
        "Id_A": 1.2100000000000002,
        "region": "above_threshold",
        "strong_inversion": true,
        "temperature_model": "linear",
        "Tj_C": 125,
        "Tref_C": 25,
        "alpha_V_per_C": -0.002,
        "Vth_Tref_V": 1,
        "Vth_Tj_V": 0.8,
        "warnings": [
          {
            "code": "MODEL_VTH_NOT_DATASHEET_VGS_TH",
            "severity": "warning",
            "detail": "Vth in this calculator is the threshold parameter of the ideal long-channel square-law model. Datasheet VGS(th) is usually measured at a specified small drain current (onset of conduction) and is not the recommended gate-drive voltage.",
            "suggestion": "Do not paste datasheet VGS(th) as Vth, and do not use VGS(th) as the recommended VGS."
          },
          {
            "code": "SATURATION_ASSUMED",
            "severity": "info",
            "detail": "Id = ½·kn·Vod² assumes saturation: Vds ≥ Vod. Linear-region current is not modeled unless Vds is provided.",
            "suggestion": "Enter Vds to classify linear vs saturation and to use the matching Id equation."
          },
          {
            "code": "KN_TEMP_NOT_MODELED",
            "severity": "info",
            "detail": "Only Vth is temperature-scaled. kn / μ(T) is used as entered — square-law Id at high Tj is not a compact-model current.",
            "suggestion": "Do not treat hot Id as a mobility-corrected result."
          }
        ]
      },
      "tol": 1e-12
    },
    {
      "id": "extract-tj",
      "ok": true,
      "kind": "golden",
      "inputs": {
        "mode": "vth",
        "Vgs_V": 3,
        "Id_A": 1,
        "kn_A_per_V2": 0.5,
        "Tj_C": 125,
        "alpha_V_per_C": -0.002
      },
      "expect": {
        "Vth_V": 1,
        "Vth_Tref_V": 1.2
      },
      "expectWarning": null,
      "actual": {
        "mode": "vth",
        "Vgs_V": 3,
        "Id_A": 1,
        "kn_A_per_V2": 0.5,
        "Vod_V": 2,
        "Vth_V": 1,
        "region": "above_threshold",
        "strong_inversion": true,
        "temperature_model": "linear",
        "Tj_C": 125,
        "Tref_C": 25,
        "alpha_V_per_C": -0.002,
        "Vth_Tref_V": 1.2,
        "Vth_Tj_V": 1,
        "warnings": [
          {
            "code": "MODEL_VTH_NOT_DATASHEET_VGS_TH",
            "severity": "warning",
            "detail": "Vth in this calculator is the threshold parameter of the ideal long-channel square-law model. Datasheet VGS(th) is usually measured at a specified small drain current (onset of conduction) and is not the recommended gate-drive voltage.",
            "suggestion": "Do not paste datasheet VGS(th) as Vth, and do not use VGS(th) as the recommended VGS."
          },
          {
            "code": "SATURATION_ASSUMED",
            "severity": "info",
            "detail": "Id = ½·kn·Vod² assumes saturation: Vds ≥ Vod. Linear-region current is not modeled unless Vds is provided.",
            "suggestion": "Enter Vds to classify linear vs saturation and to use the matching Id equation."
          },
          {
            "code": "KN_TEMP_NOT_MODELED",
            "severity": "info",
            "detail": "Only Vth is temperature-scaled. kn / μ(T) is used as entered — square-law Id at high Tj is not a compact-model current.",
            "suggestion": "Do not treat hot Id as a mobility-corrected result."
          }
        ]
      },
      "tol": 1e-12
    },
    {
      "id": "linear-no-tj",
      "ok": true,
      "kind": "boundary",
      "inputs": {
        "mode": "overdrive",
        "Vgs_V": 3,
        "Vth_V": 1,
        "temperature_model": "linear"
      },
      "expectError": "MISSING_REQUIRED_INPUT",
      "code": "MISSING_REQUIRED_INPUT",
      "error": "Tj_C is required when temperature_model=linear"
    },
    {
      "id": "tj-abs-zero",
      "ok": true,
      "kind": "boundary",
      "inputs": {
        "mode": "overdrive",
        "Vgs_V": 3,
        "Vth_V": 1,
        "Tj_C": -300
      },
      "expectError": "VALUE_OUT_OF_RANGE",
      "code": "VALUE_OUT_OF_RANGE",
      "error": "Tj_C must be ≥ −273.15 °C"
    },
    {
      "id": "boundary-vth-missing",
      "ok": true,
      "kind": "boundary",
      "inputs": {
        "mode": "overdrive",
        "Vgs_V": 3
      },
      "expectError": "MISSING_REQUIRED_INPUT",
      "code": "MISSING_REQUIRED_INPUT",
      "error": "Vth_V is required"
    },
    {
      "id": "property-od",
      "ok": true,
      "kind": "property",
      "detail": "2",
      "expect": 2,
      "actual": 2
    },
    {
      "id": "property-id",
      "ok": true,
      "kind": "property",
      "detail": "½ kn Vod² (½ not in kn)",
      "expect": 1,
      "actual": 1
    },
    {
      "id": "property-vth-roundtrip",
      "ok": true,
      "kind": "property",
      "detail": "1",
      "expect": 1,
      "actual": 1
    },
    {
      "id": "property-cutoff",
      "ok": true,
      "kind": "property",
      "detail": "0 A cutoff",
      "expect": 0,
      "actual": 0
    },
    {
      "id": "property-near-threshold",
      "ok": true,
      "kind": "property",
      "detail": "NEAR_THRESHOLD",
      "expect": "NEAR_THRESHOLD",
      "actual": [
        "MODEL_VTH_NOT_DATASHEET_VGS_TH",
        "NEAR_THRESHOLD"
      ]
    },
    {
      "id": "property-id-linear",
      "ok": true,
      "kind": "property",
      "detail": "0.75 A linear",
      "expect": 0.75,
      "actual": 0.75
    },
    {
      "id": "property-id-sat-edge",
      "ok": true,
      "kind": "property",
      "detail": "Id continuous at Vds=Vod",
      "expect": 1,
      "actual": 1
    },
    {
      "id": "property-vth-tj",
      "ok": true,
      "kind": "property",
      "detail": "Vth(Tj)=0.8 Vod=2.2",
      "expect": 2.2,
      "actual": 2.2
    },
    {
      "id": "property-id-tj",
      "ok": true,
      "kind": "property",
      "detail": "1.21 A hot Id",
      "expect": 1.21,
      "actual": 1.2100000000000002
    },
    {
      "id": "property-extract-tref",
      "ok": true,
      "kind": "property",
      "detail": "extract Vth_Tref=1.2",
      "expect": 1.2,
      "actual": 1.2
    },
    {
      "id": "property-temp-ignored",
      "ok": true,
      "kind": "property",
      "detail": "TEMPERATURE_NOT_APPLIED",
      "expect": 2,
      "actual": 2
    }
  ],
  "tier": "expert_verified",
  "verification": {
    "tests": {
      "passed": 26,
      "total": 26,
      "golden": 10,
      "boundary": 5,
      "property": 11
    },
    "contract_checks": {
      "passed": 12,
      "total": 12
    }
  },
  "evidence_core_generated_at": "2026-09-05T02:35:39.217Z",
  "rendered_at": "2026-09-21T16:00:36.054Z",
  "release_integrity": {
    "status": "verified",
    "scope": "workspace",
    "production_attestation_required": true,
    "calculation_version": "1.3.1",
    "artifacts": {
      "engine": "1.3.1",
      "page": "1.3.1",
      "capability": "1.3.1",
      "evidence": "1.3.1",
      "input_schema": "1.3.1",
      "output_schema": "1.3.1",
      "mcp_contract": "1.3.1"
    },
    "digests": {
      "input_schema_sha256": "8aaf0a70ca3197d145c41aebca84830791334284c7830b197771ba8e83f8178e",
      "output_schema_sha256": "07ec52f59e9a4a0172410ab1152a5879545b7d79b2f2a48a1355a4135ea860cf",
      "evidence_sha256": "49e969fdb088fa07f4c73fda4b9f055dcf500b540937d15c9b70a4478bb73c42",
      "evidence_core_sha256": "49e969fdb088fa07f4c73fda4b9f055dcf500b540937d15c9b70a4478bb73c42",
      "capability_sha256": "554c50f5c01a0fa88cd0f0311b2c37e67794ed4c464a584f3de933048343ccd7",
      "engine_sha256": "925bd3b9c373f747a10f30cedc6352b3f419cf91144ae6744c9c9adcd703033c",
      "mcp_contract_sha256": "2bb4bbc15ea3f9842a9a464e07efcc692dc31f3e830dee8553f3d7c4e81238d3"
    },
    "contract_checks": {
      "total": 12,
      "passed": 12,
      "failed": 0,
      "items": [
        {
          "id": "contract-page-version",
          "status": "pass",
          "detail": "1.3.1"
        },
        {
          "id": "contract-capability-version",
          "status": "pass",
          "detail": "1.3.1"
        },
        {
          "id": "contract-input-schema-version",
          "status": "pass",
          "detail": "1.3.1"
        },
        {
          "id": "contract-output-schema-version",
          "status": "pass",
          "detail": "1.3.1"
        },
        {
          "id": "evidence-version-matches-manifest",
          "status": "pass",
          "detail": "1.3.1"
        },
        {
          "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": "subthreshold-warning-codes",
          "status": "pass",
          "detail": "MODEL_VTH_NOT_DATASHEET_VGS_TH, SUBTHRESHOLD_NOT_MODELED, CUTOFF_NOT_MODELED (deprecated alias of SUBTHRESHOLD_NOT_MODELED), SATURATION_ASSUMED, LINEAR_REGION, SATURATION_EXTRACT_A"
        },
        {
          "id": "cutoff-id-zero-subthreshold-warning",
          "status": "pass"
        },
        {
          "id": "rest-success-payload-validates-schema",
          "status": "pass"
        }
      ]
    },
    "report": "https://www.calculatorx.com/.well-known/calculatorx-release-integrity.json"
  }
}
