Finding-code reference

The complete catalogue of finding codes, grouped by family. Codes are stable identifiers — filter on f.code, never on message text. Severity prefix: E. error, W. warning, I. info (see Analysis & reports for the severity semantics).

For deterministic offline lookup, use explain_finding(code) or bin/bmopf explain-finding CODE --pretty. The checked machine-readable export is generated/finding-registry.json, generated from this page. A catalogue entry explains the stable code class; a Finding instance's component, message, and detail describe one observation. Neither should be treated as an inferred root cause or an automatically safe repair.

Two families on this page are not produced by analyze. The CONTRACT. codes at the end come from the explicit source-versus-target scientific contracts, which must be invoked directly with a source, a target, and a mapping. And a case imported through from_dss carries findings this package did not author: PowerIO's conversion diagnostics, kept under their own codes (EMIT., READ., PARSE., LOWER., …, one namespace per pipeline stage) and catalogued by powerio rather than here. They report what the OpenDSS import could not carry into BMOPF, not the quality of what arrived, and the leading namespace is what tells them apart from the codes below. See Ingest warnings.

COMP — completeness

CodeSevTrigger & rationale
E.COMP.MISSING_REQUIREDEA component lacks a field the data model marks required (incl. the seven transformer required fields per subtype). The case cannot be instantiated as an OPF without it.

SCHEMA — unknown fields & metadata validation

CodeSevTrigger & rationale
I.SCHEMA.UNKNOWN_FIELDSIFields present that the data model does not define (underscore-prefixed extension keys are exempt). Catalogued rather than rejected: they are either converter passthrough or schema-evolution candidates — but a spec-conformant consumer will ignore them, so nothing essential should live there.
E.SCHEMA.REQUIREDEJSON Schema validation: a required field is missing at the reported path.
E.SCHEMA.TYPEEJSON Schema validation: a field has the wrong JSON type (e.g. string where a number is expected) at the reported path.
E.SCHEMA.ENUMEJSON Schema validation: a value is not among the allowed enumerated values.
E.SCHEMA.RANGEEJSON Schema validation: a numeric value violates a minimum/maximum (or exclusive-bound) range constraint.
I.SCHEMA.OTHERIJSON Schema validation: a schema violation not covered by the specific codes above (catch-all, carrying the raw reason and path).
I.SCHEMA.VERSION_UNKNOWNIThe declared spec version has no bundled JSON Schema document, so structural schema validation was skipped for this case.
W.SCHEMA.META_SCHEMA_URIWmeta.$schema is present but does not look like an https:// URI. The field is intended to point to the versioned BMOPF JSON Schema document.
W.SCHEMA.META_DATE_FORMATWmeta.created or meta.modified is not a recognisable ISO 8601 datetime string (expected YYYY-MM-DD or YYYY-MM-DDTHH:MM:SSZ).
I.SCHEMA.META_LICENSE_URIImeta.license is a long string that does not look like a URI. Short SPDX identifiers (e.g. CC-BY-4.0) are fine; longer values should be a https:// URI pointing to the licence text.
W.SCHEMA.META_ORCID_FORMATWAn entry in meta.authors has an orcid field that does not match the standard ORCID format XXXX-XXXX-XXXX-XXXX.
W.SCHEMA.META_SOURCE_URLWA url field in meta.sources is present but does not look like an https:// URI.

MIGRATE — input migration notes

These notes record deterministic compatibility transformations applied while loading older BMOPF documents. They describe what changed; they do not certify that the migrated model preserves every intended scientific meaning.

CodeSevTrigger & rationale
W.MIGRATE.XFMR_SERIES_FIELDSWLegacy lumped transformer r_series/x_series fields were assigned to the wye winding and zeroed on the delta winding. The transformation follows the legacy convention but should be checked against the source model.
W.MIGRATE.FIELD_RENAMESWOne or more legacy component fields were renamed to their current schema names, including voltage, winding-configuration, or IBR voltage-aggregation fields.
W.MIGRATE.XFMR_EXTRAS_FOLDWTransformer fields temporarily relocated under extras.transformer by schema 0.1.0 were folded back onto their transformer record.
W.MIGRATE.NWINDING_NOMINAL_TAPWAn exact unit n-winding winding tap_ratio, with no competing tap bounds or control declaration, was normalized to the implicit nominal ratio. The original value and winding index remain in migration evidence; this does not enable non-unit taps or tap optimization.
W.MIGRATE.TOP_LEVEL_EXTRAS_FOLDWComponent tables temporarily relocated under top-level extras by schema 0.1.0 were folded back onto the network record.
W.MIGRATE.LOAD_MODEL_CASEWUppercase legacy/upstream load-model enum values were lowercased to the values used by this package and its bundled schema.

CONN — connectivity & topology

CodeSevTrigger & rationale
E.CONN.DISCONNECTEDEMore than one connected component (over lines, closed switches and transformers). Buses without a path to a source have no defined operating point.
E.CONN.SELF_LOOPEA line, switch, or transformer has identical bus_from and bus_to — a zero-length branch that creates a degenerate KVL constraint and is almost always a wiring error.
W.CONN.MESHEDWPhysical branch count exceeds the spanning-forest count — cycles exist. Counted over branch elements, so electrically parallel lines are correctly detected as meshes. Not an error (the spec supports meshes) but radial-only methods will fail.
W.CONN.DANGLINGWDegree-1 buses with no load, generator or shunt attached — dead ends that contribute variables and constraints but no physics; often conversion artifacts (e.g. switch far-ends).

VOLT — voltage levels

CodeSevTrigger & rationale
E.VOLT.LEVEL_MISMATCHEBFS voltage propagation reaches a bus with two inconsistent nominal voltages (beyond 5 %). The network's transformer ratios and topology contradict each other.
E.VOLT.LINE_CROSSINGEA line (not a transformer) connects buses assigned to different voltage levels. Only transformers may cross levels; this is almost always a wiring error in the data.
W.VOLT.UNASSIGNEDWBuses unreachable from any voltage source during propagation — likely islanded; their nominal voltage is unknown.
W.VOLT.XFMR_RATIOWA transformer's v_nom turns ratio disagrees (>10 %) with the voltage ratio of the levels it actually connects — ratio and placement are inconsistent.

DIV — diversity & symmetry

Symmetries in data create symmetric optima and degrade NLP convergence ref. 2; these findings flag suspiciously templated parameterisation.

CodeSevTrigger & rationale
W.DIV.LOAD_SYMMETRICWMore than half of the loads share identical (p_nom, q_nom) tuples — copy-paste parameterisation; dispatch among them is interchangeable.
I.DIV.LOAD_CV_LOWILoad p_nom coefficient of variation < 0.05 across ≥3 loads — essentially uniform loading.
I.DIV.LOAD_PF_DSS_DEFAULTILoad power factor mean is within 1 % of 0.88 with CV < 0.05 — strongly suggests reactive power was never explicitly set and the OpenDSS default PF was inherited throughout. Compare with I.PROV.DSS_DEFAULT_PF, which detects the exact 0.88 value per load; this finding detects the statistical signature across all loads.
I.DIV.LOAD_IMBALANCEIA multi-phase load with >20 % spread between its phase setpoints — noteworthy unbalance (often intended; this is context, not criticism).
I.DIV.LOAD_PHASE_BALANCEDIAggregate load across all phase terminals in a galvanic zone is balanced within 2 % (max − min spread relative to max). The network is effectively balanced and a single-phase equivalent model would suffice; the unbalanced OPF formulation adds no value here.
I.DIV.LOAD_UNIFORM_MODELIAcross ≥3 loads, every load uses the same load model. When that model is constant_power (the default), no load exercises voltage dependence (ZIP/exponential) — the case does not test voltage-dependent load behaviour. Observational coverage signal, not a defect.
I.DIV.LOAD_UNIFORM_CONFIGIAcross ≥3 loads, every load shares the same configuration (e.g. all WYE) — no connection diversity. Observational; uniform connection is common and often legitimate.
I.DIV.LINE_SYMMETRICI≥80 % of the lines sharing a linecode have lengths within ±10 % of the median — electrically near-identical sections.
I.DIV.BUS_UNIFORM_VMINIEvery bus that has v_min has the same value — no spatial differentiation of the lower voltage envelope.
I.DIV.BUS_UNIFORM_VMAXISame for v_max.

OPS — operational loading

CodeSevTrigger & rationale
W.OPS.IMPORT_DEPENDENTWLocal generation capacity below 5 % of total load — the case is a pure import feeder; with only a slack source the dispatch problem is loss minimisation at best.
W.OPS.XFMR_OVERLOADEDWEstimated downstream apparent load exceeds 90 % of a transformer's rating at nominal setpoints — little OPF headroom, or a rating entered on the wrong base (see the regulator/autotransformer discussion in methodology).
W.OPS.LINE_UNCONSTRAINEDWLines without any thermal limit (i_max/s_max on the line or its linecode) — the OPF will have no flow constraints there.
I.OPS.UNLOADED_PHASEIA phase terminal is present on buses in a galvanic zone (connected via lines and closed switches; transformers are boundaries) but no load connects to it anywhere in that zone. Reported per zone and per terminal. Common in partial-phase feeders; worth reviewing before interpreting unbalance results.
I.OPS.FEEDER_LONGIA galvanic zone's electrical reach (longest Σ line length from its source/anchor bus to its farthest bus) exceeds the typical maximum feeder reach for its voltage band (LV/MV/HV/EHV, thresholds in [operational.feeder_length]). Either a genuinely long rural feeder worth noting for voltage-drop reasons, or a length-unit slip (km entered as m, or the OpenDSS default length=1).
I.OPS.FEEDER_SHORTIA galvanic zone's electrical reach is below the typical minimum for its voltage band — electrically it is a stub, service drop, or substation interconnect rather than a feeder. Off by default for HV/EHV. Observational.

PRE — infeasibility pre-flight

CodeSevTrigger & rationale
E.PRE.VBOUND_CONFLICTEA bus voltage bound pair with lower > upper (checked elementwise for all four flavours: v, vpn, vpp, vpos). The feasible set is empty before the solver starts.
E.PRE.PBOUND_CONFLICTEGenerator p_min > p_max — infeasible by construction.
E.PRE.QBOUND_CONFLICTEGenerator q_min > q_max — same.
I.PRE.NO_VOLT_BOUNDSIBuses with no voltage bounds at all — voltages are unconstrained there (spec semantics for absent optional bounds).
I.PRE.SINGLE_SOURCEIExactly one voltage source. The spec requires this in the current version; operationally it is still a single point of failure worth knowing about.
W.PRE.SOURCE_VOLTAGE_OOBWA voltage source setpoint (v_magnitude) falls outside the bus's declared v_min/v_max. The source pins that voltage as a hard equality in the OPF, so the bound is trivially violated before the solver starts — a guaranteed infeasibility. Common cause: v_magnitude set in kV while bounds are in V, or an augmented bound tighter than the actual supply voltage.
W.PRE.SOURCE_BUS_GENERATORWA generator without p_max/q_max sits at a voltage-source bus. The voltage source is itself the network's current slack, so two unbounded current injections share one fixed-voltage bus — the dispatch split is degenerate (non-unique). Remove the generator and express its role as flow bounds/cost on the voltage source instead.
I.PRE.SOURCE_BUS_GENERATORIA bounded generator sits at a voltage-source bus. Well-posed (the generator is bounded, the source takes the remainder), but if its bounds/cost are meant to limit or price grid import, set them on the voltage source (p_min/p_max/q_min/q_max/cost) instead.

DOM — domain plausibility

CodeSevTrigger & rationale
E.DOM.VMIN_NEGATIVEEA negative per-phase entry in v_min — magnitudes are nonnegative by definition. (v_min is a per-phase array, phase-to-ground.)
E.DOM.VMAX_NONPOSITIVEEA per-phase v_max entry ≤ 0 — forces zero voltage; almost certainly a unit/typo error.
E.DOM.VNMAX_NEGATIVEENegative vn_max (the optional, maximum-only neutral-to-ground cap).
E.DOM.NEGATIVE_VALUEENegative value in an inherently nonnegative field (length, diagonal resistance).
W.DOM.LOAD_PF_LOWWLoad power factor below 0.70 — plausible but unusual for aggregated demand; often a P/Q unit mix-up.
W.DOM.GEN_COST_NEGATIVEWNegative generation cost — the optimizer will dispatch it to its bound; verify it is intended (e.g. must-run subsidy).
W.DOM.GEN_COST_HIGHWCost above 10 $/kWh — outside the package's default plausibility threshold; check units and whether an extreme scarcity/subsidy scenario is intentional.
E.DOM.GEN_SMAX_NONPOSITIVEEGenerator s_max (optional per-phase apparent-power rating) has a non-positive entry — the apparent-power circle is empty, so no operating point exists.
E.DOM.GEN_IMAX_NONPOSITIVEEGenerator i_max (optional per-phase current limit) has a non-positive entry — the current circle is empty, so no operating point exists.
W.DOM.COST_PHASE_NONUNIFORMWA dispatchable element (generator or voltage_source) has a per-phase cost vector whose entries differ across phases. Costs are normally a single $/kWh price applied symmetrically; a non-uniform vector is more often a data-entry slip than an intended per-phase price signal. Scalar costs are uniform by definition and never flag.
W.DOM.LC_ZERO_RWNear-zero or negative self-resistance on any linecode diagonal — a superconducting conductor, usually a placeholder.
E.DOM.XFMR_VREF_INVALIDEA transformer has v_nom_from ≤ 0 or v_nom_to ≤ 0. The turns ratio N = v_ref_from / v_ref_to is undefined or infinite; the OPF cannot be built. Usually caused by a missing field defaulting to zero or a unit error (kV entered as 0.0).
W.DOM.XFMR_RATIO_OOBWDirection-agnostic transformer step ratio max(r, 1/r) above 1000:1. Calibrated so standard distribution step-downs (e.g. 11 kV/433 V ≈ 25:1) do not flag.
W.DOM.XFMR_REVERSEDWAn isolating two-bus transformer (single_phase/center_tap/wye_delta/delta_wye) has its bus_from/bus_to terminals wired toward the source: bus_to is strictly closer (in hops) to a voltage source than bus_from. Orientation is measured by multi-source BFS over lines, closed switches and transformers; bus_from should be the source-side terminal. Almost always swapped bus_* (and usually v_nom_*) fields. Endpoints that are equidistant (a loop/mesh) or unreachable from any source are skipped, so the check is safe on non-radial parts. Requires at least one voltage_source.
W.DOM.XFMR_STEP_UPWAn isolating two-bus transformer boosts voltage away from the source: its upstream-side v_nom is strictly below its downstream-side v_nom (upstream/downstream determined by the same source-distance BFS as W.DOM.XFMR_REVERSED, so it is correct even when the terminals are reversed). Distribution step transformers normally step down toward the load; this is usually swapped v_nom_from/v_nom_to, or a genuine boost transformer if intended. Regulators/autotransformers and n_winding are excluded.
I.DOM.XFMR_IDEALIAn isolating power transformer (single_phase/center_tap/wye_delta/delta_wye/n_winding) has zero leakage reactance (total series X ≤ xfmr_z_min_ohm, default 1e-6 Ω) — modeled as an ideal transformer with no series voltage drop. The IVR OPF represents the series impedance as a coefficient in the winding voltage-drop equation, not an inverted admittance, so zero impedance collapses cleanly to the exact voltage-ratio constraint V_fr = N·V_to and is well-posed, not degenerate. Informational because %Z was most likely omitted: supply realistic leakage (x ≈ 4–10 % on the rating base) if regulation across the winding matters. A lossless unit (R≈0 with finite X) is normal here and is not flagged. Regulators/autotransformers are excluded.
W.DOM.XFMR_LOW_IMPEDANCEWA two-winding transformer has a tiny non-zero series impedance — `
W.DOM.XFMR_X_NONINDUCTIVEWA measurable transformer short-circuit reactance is negative. For n_winding this is a pairwise x_sc["i_j"] entry; for two-bus subtypes it is the total series reactance x_series_from + x_series_to (the individual legs are a fictitious star/T split and may be negative — only their sum is measurable). A real short-circuit test is inductive by construction, so a negative value is almost always a sign flip or an X↔B (reactance/susceptance) confusion in the source data. The transformer analogue of W.PROV.X_NONINDUCTIVE.
W.DOM.XFMR_X_NOT_PSDWAn n_winding transformer's short-circuit reactance matrix imag(ZB) has a negative eigenvalue — the pairwise x_sc values are mutually inconsistent and cannot arise from any passive coupled-coil model (energy argument). Distinct from a negative diagonal ZB / star-branch entry, which is physical for n ≥ 3 and not flagged; only the matrix-level PSD property is invariant. For n = 3 this is the realisability triangle inequality X₁₂·X₁₃ ≥ ¼(X₁₂+X₁₃−X₂₃)². The transformer analogue of W.PROV.X_NOT_PSD.
W.DOM.ZERO_LIMITWAn i_max/s_max entry exactly 0. Read literally this forces zero flow; in source tools 0 usually means "no limit" — classic semantic abuse. Drop the field instead.
W.DOM.POWER_LIMIT_NEUTRALWA line/switch sets a positive s_max on its neutral conductor. A ground-referenced apparent-power limit is degenerate there: the neutral-to-ground voltage is ≈ 0, so S = V∘I* ≈ 0 and the cap never binds even as the neutral current overheats the conductor. Rate the neutral with i_max (a current limit) instead. See current vs. apparent-power limits.
W.DOM.ZERO_LENGTHWA zero-length line — degenerate impedance; the spec's lossless switch object is the right model for such sections (ref. 2).
W.DOM.ANGLE_UNITSWA source v_angle entry with magnitude > 2π — angles are radians in the data model; this is almost certainly degrees.
W.DOM.SOURCE_V_NEAR_BOUNDWA voltage source's fixed v_magnitude sits within source_v_margin_frac (default 5 %) of the v_max − v_min band from either bound, on its own bus or a same-voltage-base neighbour (reachable via lines/switches; transformers are not crossed). The source pins that voltage as a hard equality, so little headroom remains and the OPF risks infeasibility. The stricter sibling W.PRE.SOURCE_VOLTAGE_OOB fires when the setpoint is already outside the bounds; this one warns before it crosses.
W.DOM.SHUNT_ON_GROUNDEDWA shunt connects to a terminal whose voltage is pinned to 0 V — either declared in the bus's perfectly_grounded_terminals or the neutral of a voltage-source bus (pinned to system ground). The shunt then draws I = G·V = 0 current and is completely inert. Usually a redundant element, or a sign that impedance grounding was intended where a hard V=0 ground was actually declared.
I.DOM.NEGATIVE_LOADILoads with negative p_nom — embedded generation hiding as negative load; skews adequacy statistics and dodges the generator model. See object identity.
I.DOM.NEGATIVE_GENERATIONIA generator whose entire active range is p_max ≤ 0 (only ever absorbs) — a consumer modelled as a generator (the mirror of I.DOM.NEGATIVE_LOAD); model it as a load.
I.DOM.GEN_LIKELY_IBRIA generator sits on an LV bus (≤ 1 kV). Distribution-connected DERs are overwhelmingly inverter-interfaced; the ibr object models them faithfully (capability curve, no inertia, current limit, volt-var/volt-watt) where a synchronous-generator object does not.
W.DOM.LINE_LOW_IMPEDANCEWA line whose absolute series impedance ‖Z‖F (linecode ‖(R+jX)‖F × length, or the inline total matrices directly) is below 10⁻⁴ Ω. Near-zero impedance makes the KVL constraint nearly rank-deficient; model the section as a switch instead.
W.DOM.LINE_IMPEDANCE_SPREADWThe worst adjacent-line ‖Z‖_F ratio (two lines sharing an interior bus, excluding voltage-source, transformer, and switch buses) exceeds 10⁵. At this contrast the NLP Jacobian loses roughly 5 decimal digits of precision; consider per-unit scaling or network reformulation.
I.DOM.LINE_IMPEDANCE_SPREADISame as above but ratio is between 10³ and 10⁵ — common at MV/LV boundaries and usually benign, but worth reviewing if solvers struggle to converge. The result dict key max_adjacent_impedance_ratio always carries the worst observed value.
E.DOM.INV_P_BOUNDSEIBR p_min > p_max — the active-power box is empty; infeasible by construction.
E.DOM.INV_Q_BOUNDSEIBR q_min > q_max — the reactive-power box is empty.
E.DOM.INV_SMAX_NONPOSITIVEEIBR s_max has a non-positive entry — the apparent-power circle is empty, so no operating point exists.
E.DOM.IBR_IMAX_NONPOSITIVEEIBR i_max (optional per-phase current limit) has a non-positive entry — the current circle is empty, so no operating point exists.
W.DOM.INV_BOUND_EXCEEDS_SMAXWAn IBR P or Q box-bound magnitude exceeds s_max — that box bound can never bind because the apparent-power circle dominates; usually a units or sizing mistake.
W.DOM.INV_PV_ABSORBSWA prime_mover=PV IBR has p_min < 0, i.e. it is allowed to absorb real power — physically implausible for PV; usually a sign error.
W.DOM.DROOP_BREAKPOINT_OUTSIDE_BANDWAn IBR's Volt-var/Volt-watt droop has breakpoint voltages outside the bus's [v_min, v_max] band — the droop may never engage within the feasible operating range, so the control is effectively inert.

Wire / geometry realizability and model-assumption validity

Physical-realizability and validity-domain checks for the wire_data / line_geometry libraries. E-class conditions also hard-error in compile_linecode; W-class assumption checks are additionally emitted as compile-time warnings. References: Carson (1926) BSTJ 5(4); Pollaczek (1926); Deri, Tevan, Semlyen & Castanheira (1981); Saad, Gaba & Giroux (1996); Kersting & Green (2011); Kersting, Distribution System Modeling and Analysis; Jensen et al. (2001); Urquhart & Thomson (2015); IEC 60228 / IEC 60287.

CodeSevTrigger & rationale
E.DOM.WIRE_GMR_EXCEEDS_RADIUSEgmr > radius — physically impossible: GMR ≤ radius for any current distribution inside the conductor (= e^(−μᵣ/4)·radius = 0.7788·radius for a solid round conductor; lower for stranded/ACSR).
E.DOM.WIRE_CABLE_LAYERSECable layer radii do not nest: core ≥ insulation outer radius, t_insulation ≥ d_insulation/2, concentric-neutral strand circle inside the insulation, or d_shield outside d_cable / inside d_insulation. The construction is unbuildable.
W.DOM.WIRE_GMR_RATIOWgmr/radius < 0.2 — real conductors span ~0.35 (ACSR 6/1, steel core carries little flux) to 0.826 (61-strand, Kersting tables); usually a units or transcription slip.
W.DOM.WIRE_RAC_BELOW_RDCWr_ac < r_dc — skin and proximity effects can only increase resistance at any f > 0.
W.DOM.WIRE_IMPLIED_RESISTIVITYWImplied resistivity ρ = r_dc·π·radius² outside [8·10⁻⁹, 3·10⁻⁷] Ω·m — the metallic range (annealed Cu 1.724·10⁻⁸ per IEC 60228 … steel ~1.4·10⁻⁷, widened for stranding/fill and temperature). The unit-error catcher: an Ω/km value entered in the Ω/m field lands three decades outside.
W.DOM.WIRE_EPS_R_RANGEWInsulation eps_r outside [1.5, 10] — XLPE 2.3, EPR ~3, PVC 3–8; IEC 60287-1-1.
I.DOM.WIRE_CURRENT_DENSITYIi_max implies a current density outside [0.5, 10] A/mm² — typical continuous ratings are 1–6 A/mm².
E.DOM.GEOM_CONDUCTOR_OVERLAPETwo conductors' circles overlap (centre distance < sum of radii) — physically impossible cross-section.
W.DOM.GEOM_CLEARANCEWAn overhead conductor sits below 4 m (under distribution statutory clearances) or above 100 m — usually a feet-as-metres slip.
W.DOM.GEOM_EARTH_RESISTIVITYWearth_resistivity outside [1, 10⁴] Ω·m — practical soils span ~10–1000 Ω·m.
W.DOM.GEOM_CARSON_VALIDITYWThe Carson series parameter k = √(ωμ₀/ρ)·S exceeds 0.25 for some conductor pair. The truncated series used by modified_carson/full_carson is accurate only for k ≪ 1 — which holds at distribution spacings and 50/60 Hz (Kersting & Green 2011 report < 1 % error) but degrades for very wide spacings, low earth resistivity, or high frequency. Consider earth_model = "deri".
W.DOM.GEOM_BURIED_EARTH_MODELWBuried conductors combined with full_carson (evaluated at the surface — the rigorous buried theory is Pollaczek 1926 / Saad et al. 1996; negligible at power frequency since burial depth ≪ earth skin depth, but the approximation is made explicit), or with deri when burial depth exceeds 10 % of the complex-depth magnitude p = √(ρ/jωμ₀) (Deri et al. 1981 assume |y| ≪ |p|).
W.DOM.WIRE_SKIN_FREQUENCYWThe geometry's frequency exceeds a wire's critical skin frequency fcrit = ρc/(π r² μ₀) — above it, constant r_ac and GMR-based internal inductance degrade (Jensen et al. 2001; Urquhart & Thomson 2015 quantify error growth with frequency). The guard that keeps this fundamental-frequency library honest.
W.DOM.FREQUENCY_MISMATCHWmeta.frequency is set and some line_geometry.frequency or linecode derivation.frequency differs. Frequencies are never rescaled (no OpenDSS-style base-frequency scaling exists in BMOPF) — recompile or fix the data.
W.DOM.MIXED_FREQUENCYWNo meta.frequency, but geometry/derivation frequencies within one network disagree — impedances computed at different frequencies must not share a network.
W.DOM.LINE_IMPLIED_PER_LENGTHWA line with inline ABSOLUTE matrices also carries a descriptive length, and Z_self/length falls outside the plausible distribution per-metre range [10⁻⁶, 10⁻²] Ω/m — likely per-metre data mislabeled as section totals (or vice versa). Inline line matrices are totals and are never scaled by length.

LOAD — load model validation & analysis

Emitted by domain_rules_check (coefficient plausibility, DOM pass) and load_model_analysis (load_models pass).

Validation (domain rules)

CodeSevTrigger & rationale
E.LOAD.VNOM_MISSINGEA voltage-dependent load (modelconstant_power) has no v_nom field. The reference voltage is required to evaluate any voltage-dependent power expression; the OPF cannot be constructed without it.
E.LOAD.VNOM_ARITYEv_nom is an array whose length is neither 1 nor the number of sub-loads. Each entry must broadcast to exactly one sub-load.
E.LOAD.VNOM_NONPOSITIVEEOne or more v_nom entries are ≤ 0. Voltages are strictly positive; a non-positive value is unphysical and would produce division by zero in the OPF.
E.LOAD.ZIP_ARITYEA ZIP coefficient array (alpha_z/i/p or beta_z/i/p) has length that is neither 1 nor the number of sub-loads.
E.LOAD.EXP_ARITYEgamma_p or gamma_q has length that is neither 1 nor the number of sub-loads.
W.LOAD.ZIP_SUMWFor a ZIP load, the active ($\alpha^Z + \alpha^I + \alpha^P$) or reactive ($\beta^Z + \beta^I + \beta^P$) coefficients do not sum to 1. At nominal voltage the load will not consume its nominal power; usually a data entry error.
W.LOAD.GAMMA_NEGATIVEWAn exponential exponent $\gamma < 0$ — power increases as voltage falls. Physically possible for some device classes but extremely unusual in distribution-network demand models; almost always a sign error.
W.LOAD.MODEL_MIXEDWA zip load carries gamma_p/gamma_q fields, or an exponential load carries ZIP coefficient fields. The extra fields are ignored; this finding flags the likely copy-paste error.
W.LOAD.VNOM_MISMATCHWA load's v_nom differs from the BFS-inferred bus nominal voltage by more than 25 %. For WYE loads v_nom is compared against the inferred phase-to-neutral voltage; for DELTA loads against phase-to-neutral × √3 (line-to-line). A large deviation means the power setpoint and voltage sensitivity are referenced to the wrong operating point — a common OpenDSS conversion error where the load kV field is left at a default or is set to the wrong voltage level.
I.LOAD.GAMMA_RANGEIAn exponential exponent $\gamma \notin (0, 2)$ — outside the range typical of distribution loads (motors ≈ 0.08, constant-impedance = 2). Still valid; flagged as context.
I.LOAD.MODEL_FIELDS_IGNOREDIA constant_power, constant_current, or constant_impedance load carries ZIP or exponential coefficient fields. These fields are redundant for named degenerate models and will be ignored by the OPF.

Analysis (load model pass)

CodeSevTrigger & rationale
I.LOAD.EXP_ZIP_EQUIVALENTIOne or more exponential loads have all exponents in $\{0, 1, 2\}$. These can be represented losslessly as zip (or the named constant_power/constant_current/constant_impedance models), keeping the OPF quadratic. The loads detail key lists the affected load IDs.
W.LOAD.NL_NO_VMINWOne or more voltage-dependent loads sit on buses without any lower voltage magnitude bound (v_min, vpn_min, or vpp_min). The OPF squared-voltage variable $W$ will rely on the default floor bound ($0.5\,V^{\text{nom}}$) rather than an engineering limit. For loads with $\gamma < 2$ or $\alpha^I/\alpha^Z \neq 0$ the power expression grows unboundedly as voltage falls; an explicit lower bound is strongly recommended.

RED — redundancy

CodeSevTrigger & rationale
W.RED.ZERO_LOADSWLoads with p_nom = q_nom = 0 — electrically inert objects that still create variables/constraints.
W.RED.DUAL_THERMAL_LIMITWAn element (line/switch/generator/IBR) declares both a current limit (i_max) and an apparent-power limit (s_max). Both are enforced natively. The pair is not mathematically redundant — because `
W.REDUND.ZERO_LOADWThe structural-repair pass (fix_case) analogue of W.RED.ZERO_LOADS: a load with p_nom = q_nom = 0 on all phases is flagged as electrically inert during the fix workflow.
I.RED.LOAD_SPARSE_PHASESIWYE loads where at least one phase has p≈0 and q≈0 while another is active. Each dead phase still generates a current variable and two bilinear constraints in the OPF; splitting into per-phase SINGLE_PHASE loads eliminates them. SINGLE_PHASE and DELTA loads are excluded (no clean per-phase equivalent).
I.RED.LOAD_MERGEABLEIGroups of loads on the same bus sharing the same configuration and terminal_map (WYE/SINGLEPHASE keys are phase-order-insensitive; DELTA keys are normalised to the smallest cyclic rotation). Each group can be collapsed into one load with summed `pnom/qnom. Loads withtimeseries` references are excluded (merging profiles is non-trivial).
I.RED.ZERO_SHUNTSIShunts whose every G/B matrix entry is zero — same.
I.RED.MERGEABLE_LINESIChains of series lines whose interior buses have line-degree 2 and no other attachment (loads, generators, shunts, switches, transformers all counted as blockers). Merging removes superfluous buses that slow solvers (ref. 2).
I.RED.PARALLEL_LINESITwo or more lines sharing the same bus pair (direction-agnostic). Parallel lines are unusual in distribution networks and more commonly indicate a data conversion artefact than a genuine double-circuit feeder.
I.RED.UNUSED_LINECODESILinecodes never referenced by a line — a cable library shipped with the case; harmless, but distinguishes library data from network data.
I.RED.DUPLICATE_LINECODESIGroups of linecodes with identical R/X_series_1_1 fingerprints (codes lacking impedance data are excluded — absence is not evidence of duplication).

PROV — provenance & conventions

The largest family; full derivations in the methodology notes.

CodeSevTrigger & rationale
W.PROV.POWERIO_UNCODEDWA PowerIO conversion diagnostic arrived without a stable code. BMOPFTools retained it under this explicit fallback rather than silently dropping it or inventing a conversion-stage identity.

Impedance matrix structure

CodeSevTrigger & rationale
E.PROV.NONRECIPROCALEAn impedance/admittance block (linecode R/X/G/B, inline line R/X/G/B, or bus-shunt G/B) is not symmetric — reciprocity is violated; passive RLC networks cannot do that. Catches, e.g., delta-bank admittances built from the incidence matrix instead of Y·(M∆)ᵀM∆. Reported with component_type = :line for inline absolute line matrices.
E.PROV.NONPASSIVEEThe R block has a negative eigenvalue — the line would generate power. PSD of R is invariant under Kron reduction (Schur complements of accretive matrices stay accretive), so this is always an error. Applies to linecodes and inline line matrices alike.
W.PROV.X_NONINDUCTIVEWNon-positive series self-reactance — series compensation does not exist inside linecodes; almost always a sign flip or X/B confusion.
W.PROV.X_NOT_PSDWThe X block has a negative eigenvalue — the implied inductance matrix is not realisable (energy argument; also Kron-invariant via sectorial Schur closure).
I.PROV.NEGATIVE_MUTUAL_RINegative off-diagonal resistance. Carson's earth-return term makes mutual R positive for geometry-derived matrices; a negative entry signals processed/fitted provenance.
E.PROV.NEGATIVE_GEA conductance block (line shunt or bus shunt) that is not PSD / has negative diagonals — an active element.
W.PROV.B_SIGNWA susceptance block that is not PSD or has negative diagonals — not a physical capacitance matrix.
I.PROV.B_OFFDIAGIPositive mutual susceptance with PSD intact — deviates from the Maxwell sign pattern. Clean electrostatic pipelines (including grounded-screen elimination and bundling) preserve the pattern, so this marks fitted/averaged provenance rather than an error.
I.PROV.SHUNT_LIKELY_CAPACITORIA shunt is purely capacitive — no conductance (G ≈ 0) and a strictly positive diagonal susceptance (B = ωC > 0; a reactor would be negative). It looks like a fixed capacitor bank carried as a generic admittance. Consider modeling it as a first-class capacitor (nameplate q_rated/v_nom); the fix recipe can convert phase-to-ground banks automatically with FixRecipe(apply_shunt_to_capacitor = true). See object identity.
I.PROV.SHUNT_LIKELY_REACTORIA shunt is purely inductive — no conductance (G ≈ 0) and a strictly negative diagonal susceptance (B = −1/ωL < 0). It looks like a shunt reactor, a distinct asset from a capacitor or a generic shunt; keep its identity explicit and verify the sign convention.
W.PROV.LINE_BRIDGES_VOLTAGE_LEVELSWA line's two endpoint buses are assigned different nominal voltage levels (ratio beyond 5 %). A line cannot change voltage level — this is a transformer elided into the per-unit line model (the textbook "the transformer vanishes in per-unit"), or a data error. Model it as a transformer.
W.PROV.GEOMETRY_MISMATCHWA linecode carrying a line_geometry back-reference no longer matches a re-derivation from that geometry (beyond 10⁻⁶ relative). The stored matrices are stale or hand-edited — recompile with compile_linecode(net, id; force=true) or drop the back-reference. The geometry analogue of the transformer Yprim cross-check.
W.PROV.GEOMETRY_UNCOMPILABLEWA linecode references a line_geometry that fails to compile (broken wire data, invalid earth model, missing frequency, …) — the provenance link cannot be verified.

Line model topology

Every line and linecode stores a two-sided nominal-π: a series impedance with a shunt admittance half-block at the from-end (G_from/B_from) and the to-end (G_to/B_to). Which blocks are populated, and whether the two ends are equal, determines the model topology. The taxonomy makes the modelling assumption auditable and flags the parameterisations that are suspicious in distribution networks.

TopologyMeaningExpected in distribution?
seriesNo shunt on either end — pure series Z.Yes — the default for LV / short-cable feeders, where line charging is negligible.
symmetric πShunt on both ends with Y_from ≈ Y_to.Yes — the canonical nominal-π; a uniform reciprocal line splits its charging equally. Expected once charging matters (longer MV/HV overhead, underground cable).
asymmetric πShunt on both ends but Y_from ≠ Y_to.Suspicious — a uniform line is symmetric; unequal halves usually mean a reduction artefact or data error.
Γ (gamma)Shunt on exactly one end.Review — a valid deliberate lumping of charging at one terminal, but it breaks the physical from/to symmetry.
CodeSevTrigger & rationale
I.PROV.LINE_MODEL_UNIFORMIEvery line-model definition (linecode or inline line) uses a single topology — series-only, symmetric-π, etc. The network is internally consistent; the message states which model and whether it is the expected one.
I.PROV.LINE_MODEL_MIXEDIThe case study mixes topologies (e.g. some branches series-only, others π). Legitimate when short spurs are modelled as series and long trunks as π, but flagged so the mix can be reviewed for consistency — especially any asymmetric-π or Γ members. Replaces the former I.PROV.NO_PI_SHUNT / I.PROV.PARTIAL_PI_SHUNT.
W.PROV.ASYMMETRIC_PIWA line/linecode has shunts on both ends but the from-side and to-side admittances differ. A uniform reciprocal line splits its charging equally; unequal halves indicate a network-reduction artefact or a data error.
I.PROV.GAMMA_SECTIONIA line/linecode carries shunt admittance on exactly one end (a Γ-section). Valid as a deliberate lumping of charging at one terminal, but it breaks the from/to symmetry of a physical line — confirm it is intended.
I.PROV.SHUNT_CONDUCTANCEIA line/linecode π-shunt carries non-zero conductance (G_from/G_to) — dielectric loss / leakage is modelled. Unusual in distribution, where the line shunt is normally purely capacitive; confirm it is not an X/B or units confusion.

Parameterisation provenance

CodeSevTrigger & rationale
I.PROV.SEQ_DERIVEDIExactly balanced impedance matrices (equal self, equal mutual): constructed from sequence parameters (r1,x1,r0,x0) or a transposition assumption — not from conductor geometry. The implied Z₁/Z₀ are recovered and reported.
I.PROV.DECOUPLED_PHASESIDiagonal impedance matrices — positive-sequence-only data; the phases decouple into independent single-phase networks (maximal redundancy/symmetry).
I.PROV.LINE_SWITCH_LIKEIA line has near-zero series impedance and may be better represented by the spec's lossless switch object.

Bound & limit completeness

CodeSevTrigger & rationale
E.PROV.INCONSISTENT_BOUNDSEA bus has a voltage-bound pair with min > max — the feasible set is empty (the provenance-pass counterpart of the pre-flight E.PRE.VBOUND_CONFLICT).
I.PROV.OVERLAPPING_VOLTAGE_BOUNDSIA bus has several voltage-bound types active at once (e.g. both v and vpn) — overlapping envelopes; confirm they are meant to co-apply.
W.PROV.REDUNDANT_VOLTAGE_BOUNDSWA bus declares both phase-to-ground (v_min/v_max) and phase-to-neutral (vpn_*) bounds that encode the same limit — redundant duplication.
W.PROV.INAPPLICABLE_VOLTAGE_BOUNDSWA bus carries voltage bounds that cannot be enforced for its terminal structure and will be ignored by the OPF (e.g. a phase-to-neutral bound on a bus with no neutral).
W.PROV.I_MAX_INCOMPLETEWOne or more lines have fewer i_max entries than conductors — the thermal limit is only partially specified; the unspecified conductors are left unconstrained.
W.PROV.I_MAX_INCOMPLETE_SWITCHWSame as above for switches.
W.PROV.I_MAX_INCOMPLETE_XFMRWSame for transformers (i_max_from/i_max_to shorter than the winding conductor count).
W.PROV.I_MAX_ABSENTWOne or more lines have no i_max on their linecode (or no linecode) — the series current is left entirely unconstrained in the OPF, so no thermal limit is enforced on the branch at all (distinct from I_MAX_INCOMPLETE, which is a partial limit).
W.PROV.I_MAX_ABSENT_SWITCHWSame for closed switches with no i_max. Open switches are excluded — their current is fixed to zero regardless.

Zone phase topology

Emitted by the :connectivity pass after classifying each galvanic zone. Informational tags, not defects.

CodeSevTrigger & rationale
I.PROV.SPLIT_PHASE_ZONEIA galvanic zone is fed by a center_tap transformer — a split-phase section (NA 120-0-120, AU 230-0-230 downstream of SWER). The two legs are anti-phase about the centre-tap neutral; the OPF warm-start initialises them 180° apart accordingly.
I.PROV.SWER_ZONEIA galvanic zone is single-wire (one phase conductor across all its buses) and transformer-isolated — a Single-Wire-Earth-Return section. Distinguished from a single-phase lateral, which shares its three-phase feeder's zone.

Voltage-source sequence & supply consistency

Classify each polyphase voltage source's stored v_angle and check it against the phase counts of the buses it galvanically supplies. Phase count and separation are fixed inside a galvanic zone — only a transformer (Scott-T, center-tap, delta-wye) changes them.

CodeSevTrigger & rationale
W.PROV.SOURCE_ZERO_SEQUENCEWA voltage source's per-phase angles are all equal (zero-sequence / co-phasal) — not a valid positive-sequence supply. A degenerate input that also predicts convergence failure (cf. PSCC-2026 Table VI); fix the angles and use positive-sequence initialisation.
W.PROV.SOURCE_NEGATIVE_SEQUENCEWA source's rotation is reversed relative to its a→b→c phase labels — a likely phase-labelling error. Match voltage initialisation to the intended rotation.
W.PROV.SOURCE_INCOHERENT_ROTATIONWA source's per-phase separations are not a consistent ±120°, 90°, or 180° set — malformed angle data. (Valid positive-sequence 120°, split-phase 180°, and two-phase 90° supplies are not flagged.)
W.PROV.PHASE_COUNT_EXCEEDS_SUPPLYWA bus declares more phase conductors than its galvanic feed (voltage source or feeding-transformer secondary) supplies — e.g. a 3-phase bus downstream of a single-phase or split-phase (180°) source within one zone. Phase count cannot increase without a transformer.
W.PROV.PHASE_ARRANGEMENT_MISMATCHWA zone contains a 3-phase bus and enough conductors, but its source's angle arrangement is zero/quadrature/anti-phase/incoherent rather than a 120° rotation — it cannot establish a rotating 3-phase field; a true 3-phase supply or a phase-converting transformer (e.g. Scott-T) is required.

Grounding & reduction conventions

CodeSevTrigger & rationale
I.PROV.KRON_LIKELYIA 3-wire LV level (LV is physically 4-wire); the neutral was probably Kron-eliminated under an every-bus-grounded assumption. 3-wire MV is physical and never flags.
I.PROV.KRON_REDUCIBLEIA 4-wire network whose every neutral is perfectly grounded — Kron reduction would be exact, so the explicit neutrals are numerically redundant.

Impedance transformation type (3-wire LV only)

When a 3-wire LV network is detected, the structure of each linecode's R and X blocks is compared against three known impedance-transformation signatures from Geth, Heidari & Koirala (ACM e-Energy 2022, doi:10.1145/3538637.3538844):

CodeSevTrigger & rationale
I.PROV.IMPEDANCE_TRANSFORM_KRIKron-reduced: R and/or X off-diagonals are non-uniform (distinct matrix structure) and/or Rmutual/Rself ≪ 0.5. The neutral row/column was eliminated from the original Carson 4-wire matrix via Schur complement. Exact when every neutral is perfectly grounded; approximate otherwise. Zero-sequence behaviour is not captured.
I.PROV.IMPEDANCE_TRANSFORM_PNIPhase-to-neutral approximation: R block is circulant (all diagonals equal, all off-diagonals equal) with mutual ≈ ½ self; X block retains the original geometric structure (off-diagonals vary). Neutral resistance has been folded into phase self-terms. Valid approximation for equal phase/neutral conductor resistance; error grows with grounding impedance.
I.PROV.IMPEDANCE_TRANSFORM_MPNIModified phase-to-neutral approximation: both R and X blocks are circulant with mutual ≈ ½ self. X is further symmetrised relative to the standard phase-to-neutral form, introducing additional modelling error, particularly for asymmetric cable geometries.
W.PROV.IMPLICIT_GROUNDINGWNeutral terminals exist and are referenced by components, but no branch carries a neutral conductor — the dataset uses the implicit "n = local ground" convention. Made explicit so 4-wire consumers don't misread it.
E.PROV.FLOATING_NEUTRALEA neutral section (continuity graph over lines/closed switches) with no path to ground and loads/generators using it — the zero-sequence path is undefined; 4-wire analysis is ill-posed.
W.PROV.FLOATING_NEUTRALWSame, but unused — latent rather than active.
I.PROV.WYE_NEUTRAL_UNGROUNDEDIA three-phase wye winding brings out its star-point neutral at a bus that has no local grounding (no perfect ground and no grounding impedance). The wye star point is the natural earthing point; its zero-sequence potential is then set only by what the neutral conductor reaches elsewhere. Single-phase transformers (phase-to-neutral / phase-to-phase) are exempt.

OpenDSS default fingerprints

Values matching documented OpenDSS defaults indicate the source .dss files likely omitted the field (see methodology for the table).

CodeSevTrigger & rationale
W.PROV.DSS_DEFAULT_ZWRecovered Z₁/Z₀ match the default line constants (r1=0.058, x1=0.1206, r0=0.1784, x0=0.4047 Ω/kft) — a fictitious 60 Hz overhead line in your data.
W.PROV.DSS_DEFAULT_SOURCE_ZWSource Thévenin Z₁ matches MVAsc3=2000 with X1R1=4 — the fault level was never specified; arguably the most consequential default of all.
I.PROV.DSS_DEFAULT_AMPSIi_max exactly 400 A (the normamps default; 600 A is excluded as a common genuine rating).
I.PROV.DSS_DEFAULT_XFMRITransformer per-unit impedance equal to xhl = 7 % / %r = 0.2 per winding.
I.PROV.DSS_DEFAULT_PFILoads at power factor exactly 0.88 — reactive demand defaulted.
I.PROV.DSS_DEFAULT_KVIComponents sitting exactly at 115 kV or 12.47 kV — US defaults, glaring outside US test feeders.
I.PROV.DSS_DEFAULT_LENGTHIA minority of lines with length exactly 1.0 among varied lengths. (Universal 1.0 is detected as a deliberate length-normalised convention and reported in the convention statement instead.)

Control devices

CodeSevTrigger & rationale
W.PROV.REGULATOR_PATTERNWA transformer that looks like a voltage-regulator/autotransformer encoding: either both windings on one bus (the explicit EPRI autotransformer form) or a near-1:1 wye unit with same-level endpoints / very low impedance / non-unity tap. The data model has no regulator object — a control device has been frozen into a fixed branch.

INT — structural integrity

Motivated by the benchmark-pitfall catalogue of (ref. 2).

CodeSevTrigger & rationale
E.INT.UNKNOWN_BUSEA component references a bus id that does not exist.
E.INT.UNKNOWN_LINECODEEA line references a linecode that does not exist (distinct from unused linecodes).
E.INT.UNKNOWN_WIRE_DATAEA line_geometry conductor references a wire_data id that does not exist.
E.INT.UNKNOWN_LINE_GEOMETRYEA linecode's line_geometry back-reference points at a geometry that does not exist.
E.INT.LINE_IMPEDANCE_SOURCEEA line has both a linecode reference and inline absolute R_series_/X_series_ matrices (ambiguous), or neither (no impedance). A line carries exactly one impedance source; units are unambiguous by location — linecode matrices are Ω/m and scale with length, inline line matrices are section totals in Ω and never scale.
E.INT.LINE_DIM_MISMATCHEA line's terminal_map_from/terminal_map_to length does not equal its impedance matrix dimension (from the referenced linecode, the compiled geometry, or its inline matrices). Matrix row k is the impedance seen by terminal-map entry k, so the counts must match exactly: an n-conductor linecode/geometry belongs on an n-terminal line. This is an error, not a warning — some tools (e.g. OpenDSS) silently map/truncate to the shorter length, which drops conductors and their mutual coupling, or misaligns matrix rows with terminal roles (e.g. applying the phase-c row to a neutral terminal), and solves to a plausible-but-wrong answer. solve_opf/solve_pf likewise refuse rather than truncate.
E.INT.UNKNOWN_TERMINALEA terminal-map entry is not a terminal of the referenced bus — typos, or attempts to connect nodal elements directly to ground (forbidden by spec Table 10).
E.INT.UNKNOWN_CONTROL_PROFILEEAn IBR references a control_profile id that does not exist in the network's control_profile table.
E.INT.VOLTAGE_AGGREGATION_INVALIDEAn IBR's voltage_aggregation is neither PER_PHASE nor AVERAGE — the engine cannot resolve which voltage the droop/limits reference.
E.INT.CONTROL_PROFILE_CONFLICTEA control_profile declares both power_factor and a Volt-var/Volt-watt droop. These are mutually exclusive reactive-control modes; only one may be active.
E.INT.VOLT_VAR_SHAPEEA volt_var droop does not have exactly 4 breakpoints and 2 q_limits — the piecewise curve is malformed and cannot be stamped.
E.INT.VOLT_VAR_BREAKPOINTSEA volt_var droop's voltage breakpoints are not strictly increasing — the piecewise-linear curve is non-monotone and ill-defined.
W.INT.VOLT_VAR_QLIMITSWA volt_var droop's q_limits are not in the expected [absorb ≤ 0, inject ≥ 0] order — usually a sign or ordering slip, though the curve still builds.
E.INT.VOLT_WATT_SHAPEEA volt_watt droop does not have exactly 2 breakpoints and 2 p_limits — the curtailment curve is malformed and cannot be stamped.
E.INT.VOLT_WATT_BREAKPOINTSEA volt_watt droop's voltage breakpoints are not strictly increasing — the curtailment curve is non-monotone and ill-defined.
E.INT.DROOP_UNSUPPORTEDEA Volt-var/Volt-watt droop uses an option the engine does not yet implement — a voltage_reference other than PN_PER_PHASE, or a q_unit/p_unit/q_ref/p_ref outside the supported set.
W.INT.DIM_MISMATCHWPer-component vector-length mismatches that are recoverable/ambiguous rather than corrupting: generator/IBR per-phase p_*/q_*/cost/filter vectors vs phase count, i_max length vs conductor count, load setpoint length vs configuration, source vm/va vs map length. (The line-impedance-matrix-vs-terminal-count case is the stricter E.INT.LINE_DIM_MISMATCH.)
W.INT.IMAX_NO_NEUTRALWA star generator/IBR with ≥2 phases rates only its phase conductors (i_max length = phases); add a trailing entry for the neutral conductor, which can carry more current than the phases under unbalance compensation.
W.INT.PADDED_MATRIXWAll-zero row/column pairs in linecode impedances — padded conductors demonstrably wreck NLP performance (22 → 590 Ipopt iterations in (ref. 2) Table 3); shrink the matrix and use terminal maps.
E.INT.NO_VOLTAGE_REFERENCEEA galvanic island (transformer windings are separations) with no source, perfect grounding, or grounding shunt — voltages there are defined only up to a shift (the IEEE-123 "bus 610" rank deficiency (ref. 2)). A shunt counts only if its admittance has nonzero row sums, so a pure delta capacitor bank correctly does not anchor an island.
W.INT.WYE_WITHOUT_NEUTRALWA wye-configured load/generator at a bus with no identifiable neutral — implies an undeclared ground return; in 3-wire sections only delta connections are expected.
W.INT.FLOATING_LOAD_TERMINALWA load or generator references a phase terminal that no branch (line, switch, or transformer winding) uses on the same bus. The voltage at that terminal is decoupled from the rest of the network — KCL is trivially satisfied there and the power balance constraint is degenerate. Common cause: a 3-phase load connected to a 2-wire section, or a terminal number typo. Terminals at voltage-source buses and neutral terminals are excluded (sources pin voltages; neutrals are often grounded implicitly).
W.INT.UNUSED_BUS_TERMINALWA bus declares a terminal in terminal_names that is not referenced by any component at that bus (no branch end, load, generator, shunt, or voltage source uses it). The terminal adds a free voltage variable with no KCL constraint — pure numeric overhead. Almost always a conversion artifact or a missing connection. Voltage-source buses are excluded (the source pins every declared terminal regardless).
W.INT.LOW_IMPEDANCE_LINEWLines whose total series impedance is below 10⁻³× the network median — they degrade conditioning; the spec's lossless switch object is the intended model (ref. 2).
I.INT.UNIFORM_GEN_COSTIGroups of generators with identical cost vectors — any dispatch split among them is optimal (degeneracy); diversify costs for benchmark use.

CONV — terminal-role conventions

Checks on the case-wide terminal_conventions block that classifies terminal labels into phase/neutral/earth roles (see Terminal-role conventions).

CodeSevTrigger & rationale
W.CONV.TERMINAL_ROLES_INFERREDWThe case declares no terminal_conventions block, so phase/neutral/earth roles were inferred from the naming convention (a terminal n/N is neutral, all others phase). Declare the block to make the classification explicit and self-documenting; it is written for you on the next write_bmopf.
E.CONV.ROLE_OVERLAPEA terminal label appears in more than one of the phase/neutral/earth role lists. Each label must have a single role.
W.CONV.TERMINAL_UNCLASSIFIEDWA bus terminal is in none of the declared role lists. It is treated as a phase conductor downstream; add it to the appropriate list (a common cause is a split-phase secondary leg not listed under phase).
W.CONV.MULTIPLE_NEUTRALSWA single bus carries more than one terminal classified as neutral — a bus is expected to have at most one neutral conductor.

TMAP — terminal-map conventions

Checks on how component terminal_maps reference bus terminals.

CodeSevTrigger & rationale
E.TMAP.PHASE_TO_NEUTRALEA component's terminal_map contains no phase terminal (e.g. ["n"]) — it connects only to neutral, leaving no phase to inject into or draw from.
I.TMAP.CROSS_PHASE_LINEIA line or switch has different from/to terminal maps — the conductors are cross-connected between phases across the branch. Valid (e.g. an intentional phase swap) but flagged as context.
I.TMAP.PERMUTED_ORDERIA component's terminal_map is a permutation of the bus's nodal terminal order — non-canonical ordering; verify the swap is deliberate rather than a data-entry slip.

SPEC — TF-spec conformance

Rules the JSON Schema cannot express.

CodeSevTrigger & rationale
W.SPEC.N_SOURCESWVoltage-source count ≠ 1 (spec Eq. 17 requires exactly one in this version).
W.SPEC.BAD_CONFIGWA configuration string outside SINGLE_PHASE/WYE/DELTA.
W.SPEC.CONFIG_ARITYWTerminal-map arity inconsistent with the configuration (SINGLE_PHASE = 2, WYE = 4, DELTA = 3).
E.SPEC.DUPLICATE_TERMINALEA component's terminal_map (or terminal_map_from/terminal_map_to for lines/switches) contains the same terminal label more than once — a degenerate connection that collapses two distinct conductors onto one.
I.SPEC.LOAD_PHASE_TO_PHASEIA SINGLE_PHASE load/generator whose two terminals are both phase conductors (neither is the bus neutral) — a phase-to-phase (delta-connected) single-phase element. Valid per spec; flagged as context because the modelling is distinct from the more common phase-to-neutral case.
E.SPEC.WYE_MISSING_NEUTRALEA WYE load/generator whose last terminal is not the neutral of its bus — the return path is not the neutral conductor, which violates the spec's WYE connection semantics.
E.SPEC.WYE_DUPLICATE_PHASEEA WYE load/generator has duplicate phase terminals in the non-neutral slots.
E.SPEC.DELTA_HAS_NEUTRALEA DELTA load/generator includes the bus neutral in its terminal map — delta elements must be phase-to-phase only.
E.SPEC.DELTA_DUPLICATE_PHASEEA DELTA load/generator has duplicate phase terminals.
W.SPEC.CAP_QRATED_LENGTHWA capacitor's q_rated length is inconsistent with its configuration (SINGLE_PHASE → 1, WYE → #phases, DELTA → #pairs).
E.SPEC.CAP_VRATEDEA capacitor has non-positive v_nom — the susceptance B = q_rated/v_nom² is undefined.
E.SPEC.CAP_NEGATIVE_QEA capacitor has negative q_rated entries. A capacitor bank has non-negative susceptance (Q = B·V², B ≥ 0); a negative value is an inductor/reactor and must be modelled as a shunt with negative B, not a capacitor.
W.SPEC.CAP_WYE_NO_NEUTRALWA WYE capacitor has no resolvable neutral terminal in its terminal_map. Each phase is stamped against the neutral, so without one the bank assembles an all-zero susceptance and is silently ignored by the OPF. Name the return terminal n, or use SINGLE_PHASE/DELTA.
W.SPEC.XFMR_TMAP_ARITYWTransformer terminal-map lengths off the per-subtype spec values — also the deliberate tripwire for unconverted wye-wye units.
W.SPEC.INV_TOPOLOGYWAn IBR topology outside the spec-allowed set (FOUR_LEG/THREE_LEG/SINGLE_PHASE).
W.SPEC.INV_TMAP_ARITYWAn IBR's terminal_map length does not match the arity its topology requires.
W.SPEC.INV_PRIME_MOVERWAn IBR prime_mover is outside the spec-allowed set (PV, BATTERY, GENERIC, STATCOM, DSTATCOM).
W.SPEC.TERMINAL_TYPESWThe source file used non-string terminal identifiers; they were coerced at parse (aliases or verbatim — the finding says which).
I.SPEC.MATRIX_TRIANGULARIImpedance matrices stored upper-triangular; the spec defines full row-first storage. Read fine; normalise before publishing.

SOL — solution profiling

Produced by profile_solution when checking an OPF result dict against its network. See SolutionReport and render_solution.

CodeSevTrigger & rationale
E.SOL.INFEASIBLEESolver reports INFEASIBLE with no primal candidate. A time limit or local failure without a candidate is reported separately, not as a proof of infeasibility.
W.SOL.NO_CANDIDATEWNo primal candidate is available to profile. Termination alone does not establish network infeasibility; inspect result count and primal status.
I.SOL.CONTROLLER_COMPLIANCEISeparate exact Volt-watt cap compliance and declared modeled smooth-cap feasibility in SI, with output, caps, excesses, smoothing width/mode, and approximation error. Missing or unsupported modeled-curve evidence is indeterminate; exact-cap violations retain their original errors. This does not authenticate the supplied model evidence.
W.SOL.INCOMPLETE_RESULTWDeclared result data are missing. The profile is indeterminate; omitted terms must not be interpreted as zero or as checks passed. Structured detail lists missing paths.
E.SOL.PHASOR_INCONSISTENTESupplied vm differs from hypot(vr, vi) beyond max(0.2% of the computed magnitude, 1 μV). All voltage-dependent checks use the rectangular phasor, without mutating the supplied result.
E.SOL.REFERENCE_VIOLATIONERectangular bus voltage disagrees with an explicit perfect ground or supported ideal WYE/SINGLE_PHASE source reference beyond max(0.2% of reference magnitude, 1 μV). This checks references, not full network equations.
W.SOL.LIMIT_UNASSESSEDWA declared limit cannot be assessed: a sequence limit outside the complete three-phase domain, or a line limit with incomplete terminal maps, unsupported angle bounds, or undefined endpoint angle. Structured detail identifies the reason; profiling reports indeterminate coverage.
W.SOL.VUF_UNDEFINEDWA declared voltage-unbalance ratio cannot be assessed because the positive-sequence magnitude is at most 1 μV. The bus-limit contract returns indeterminate rather than inventing a ratio.
E.SOL.NAN_IN_RESULTEOne or more numeric fields in the result dict contain NaN or Inf. Indicates a solver failure or extraction bug even when the termination status appears feasible.
E.SOL.VOLT_VIOLATIONEA bus terminal voltage magnitude (vm, vpn, vpp, sequence component, or vuf ratio) lies outside its declared bound.
W.SOL.VOLT_ACTIVEWA voltage magnitude is within 1 % of its bound — the constraint is near-active (binding at the tolerance level).
E.SOL.ANGLE_VIOLATIONEA line conductor's signed theta_from - theta_to angle lies outside its declared window, or a bus phase pair's centered angle difference θⱼ − θₖ − (va_nom[j] − va_nom[k]) lies outside the bus's va_diff_min/va_diff_max. Recomputed from the primal solution via atan2 per terminal, independent of the constraint's own bilinear expression.
W.SOL.ANGLE_ACTIVEWA signed line angle or centered bus phase-pair angle difference is near a va_diff bound (near-active).
E.SOL.THERMAL_VIOLATIONEA thermal/loading limit is exceeded in the solved result: a line conductor current at either endpoint (including pi-shunts), or a switch conductor current, over i_max or its ground-referenced apparent power |S|=v·cm over s_max (element or linecode); a transformer per-winding current over i_max_from/i_max_to; or a transformer winding coil apparent power |S| over its nameplate cap (s_max, the per-winding share of s_rating; recorded in the result so no coil-voltage reconstruction is needed).
W.SOL.THERMAL_ACTIVEWThe same current or apparent-power quantity is within 1 % of its limit — the thermal limit is near-active.
E.SOL.GEN_VIOLATIONEA generator's solved operating point (per terminal) violates a declared limit: pg/qg outside p_min/p_max/q_min/q_max, the optional s_max apparent-power circle, or the optional i_max current-magnitude circle.
W.SOL.GEN_ACTIVEWGenerator dispatch is within 1 % of a bound — the bound is near-active.
E.SOL.IBR_VIOLATIONEAn IBR's solved operating point (per phase) violates a declared limit: pg outside p_min/p_max, the s_max apparent-power circle, or the optional i_max current-magnitude circle.
W.SOL.IBR_ACTIVEWAn IBR dispatch is within 1 % of a P bound — the bound is near-active.
W.SOL.IBR_PF_DEVIATIONWA constant-power-factor IBR's solved operating point deviates from its commanded PF beyond tolerance — the PF-coupling constraint residual is non-trivial.
W.SOL.LOAD_RESIDUALWFor a constant_power load, solved pd/qd differs from p_nom/q_nom by more than 1 W / 1 var — the bilinear constant-power constraint has a non-trivial residual; the solver may not have converged tightly. Not emitted for voltage-dependent models (where pd ≠ p_nom is expected).
W.SOL.LOAD_MODEL_RESIDUALWFor a voltage-dependent load, the realised pd/qd is inconsistent with what the load model predicts at the solved terminal voltage by more than 1 W / 1 var. Indicates the load model constraint was not satisfied — a solver convergence or result extraction issue.
I.SOL.LOAD_VD_SUMMARYIAggregate realised vs nominal P/Q across all voltage-dependent sub-loads. Quantifies the total demand shift due to voltage sensitivity at the solved operating point.
W.SOL.POWER_BALANCEWNetwork-wide active power balance error (Σpg − Σpd − Σp_loss) exceeds 1 % of total load — a significant mismatch that may indicate a lossy model, a missing component, or a result extraction issue.
I.SOL.BINDING_SUMMARYISummary count of violated and near-active bounds across all categories (voltage, thermal, generator). Always emitted for feasible solutions.
I.SOL.LOSS_FRACTIONILine losses exceed 20 % of total generation — unusually high; may indicate a high-impedance feeder, a model issue, or an extreme operating point.
W.SOL.NEG_LOSSWA line or transformer dissipates negative active power (p_loss < 0) beyond numerical noise — non-physical for a passive branch, which cannot generate active power. Tolerance is throughput-relative (p_loss < −max(1 W, 1e-4·|S_through|)). Signals a non-converged / ill-conditioned solution, a sign error, or a negative-resistance input. Reactive loss is excluded, as line charging / capacitive shunts make q_loss legitimately negative.
I.SOL.NEUTRAL_SHIFTIMaximum neutral terminal voltage magnitude across all buses, with the bus identifier. Non-zero neutral shift indicates load unbalance or grounding impedance.
W.SOL.INIT_LEVEL_MISMATCHWOne or more terminals have vm_init / vm_solved outside [0.1, 10] — the initialisation used the wrong voltage level (e.g. source voltage applied to an LV bus via flat warm-start). Solver may still converge but local-minimum risk is elevated. Only emitted when result["initialisation"] is present.
W.SOL.INIT_LARGE_ERRORWOne or more phase terminals have an initialisation error exceeding 20 % of the solved voltage magnitude — the start point was a poor approximation of the solution.
I.SOL.INIT_NEUTRAL_NONZEROIOne or more neutral terminals were initialised with non-zero voltage. Neutral start values should be zero; non-zero values indicate an initialisation inconsistency.

DER — distributed-energy-resource augmentation

CodeSevTrigger & rationale
W.DER.NO_CANDIDATESWThe selected DER placement strategy produced no placements because no candidate load buses passed its filters.
I.DER.PLACEDIDER augmentation placed one or more generators; the Finding records the strategy, count, total active-power capacity, and generation/load ratio.
W.DER.OVERSUPPLYWAdded DER active-power capacity exceeds 150% of total load, so the resulting OPF may be trivially over-supplied.

IBR — inverter-based-resource augmentation

CodeSevTrigger & rationale
W.IBR.NO_CANDIDATESWThe selected IBR placement strategy produced no placements because no candidate load buses passed its filters.
I.IBR.PLACEDIIBR augmentation placed one or more devices; the Finding records the strategy, count, total apparent-power rating, and rating/load ratio.
W.IBR.OVERSUPPLYWAdded IBR apparent-power rating exceeds 150% of total load, so the resulting OPF may be trivially over-supplied.

BENCH — benchmark readiness

CodeSevTrigger & rationale
I.BENCH.AUGMENTATIONIThe case is not yet a non-trivial OPF benchmark; the message lists the concrete augmentation steps: no costed generation (degenerate objective), slack-only generation (trivial dispatch), absent voltage bounds, absent vpn/vpos bounds (which also aid solver robustness (ref. 3)), missing thermal limits.
W.BENCH.GEN_NO_DOFWOne or more generators have p_min ≈ p_max on every phase — fixed output, not dispatchable. These generators consume variables and constraints but cannot move in the optimal solution, and may mask the true binding constraints.
W.BENCH.GEN_ZERO_COSTWOne or more dispatchable generators (p_max > p_min on at least one phase) have a cost vector of all zeros — the objective is flat in their dispatch direction, making the optimal solution primal non-unique. Assign a non-zero cost to each dispatchable unit.
W.BENCH.GEN_DEGENERATE_COSTWTwo or more dispatchable generators on the same bus or one line/switch hop apart share an identical cost coefficient. The solver can redistribute power between them freely without changing the objective, producing primal non-uniqueness and benchmarks that are sensitive to solver tolerances.
I.BENCH.LOAD_ZERO_PNOMIOne or more loads have p_nom = 0 on all phases — they impose no real power demand and are electrically inert. These loads may indicate missing data or placeholder entries that should be populated before benchmark use.

DC — MVDC/LVDC network

Checks for the DC side: dc_bus nodes (signed line-to-ground voltage, no angle), dc_branch lines, dc_grounding earth-return points, and dc_load/dc_source. A converter station / back-to-back SOP / MVDC tie is several IBRs sharing a dc_bus (see semantic_modeling.md and the conventions for DC terminal/pole/return recognition).

CodeSevTrigger & rationale
E.INT.UNKNOWN_DC_BUSEAn ibr.dc_bus, dc_branch endpoint, dc_load/dc_source.dc_bus, or dc_grounding.dc_bus references a dc_bus id that does not exist.
E.INT.UNKNOWN_DC_TERMINALEA DC terminal-map entry (converter DC port, branch from/to, grounding, load/source) names a terminal not in the target dc_bus.terminal_names.
E.INT.NO_DC_VOLTAGE_REFERENCEEA connected DC island (dcbuses joined by dcbranches) has no dc_grounding (perfect or resistive) — the signed DC voltages float (rank-deficient). The DC analog of E.INT.NO_VOLTAGE_REFERENCE.
W.INT.DC_FED_AC_ISLANDWA converter feeds an AC bus whose AC island has no AC voltage reference (source/grounding) and no grid-forming converter — the bus is energised only through the MVDC link (a dangling converter, not embedded in a referenced AC system). Intentional DC-fed feeders should mark a converter grid_forming.
E.INT.DC_NO_VOLTAGE_CONTROLEA connected DC island has no converter on DC-voltage control (dc_control = "V" or "droop") — the DC operating voltage is underdetermined. The DC analog of needing an AC slack; designate a master/droop converter (master–slave or droop, per MTDC practice).
E.DOM.DC_POLE_ROLE_REQUIREDEA dc_bus carries a line-to-neutral or line-to-line voltage bound but lacks the pole role(s) needed to orient it (POSITIVE/NEGATIVE, and a return for L-N). The roles are the sign tag that keeps the bound linear; without them it cannot be applied.
W.DOM.DC_DROOP_BOUNDSWA dc_control="droop" converter's droop conflicts with its own capability: either dc_p_ref lies outside the net active-power box [Σp_min, Σp_max] (else ±Σsmax), or the converter also runs a `powerfactor` profile whose forced reactive power shrinks the s_max-circle active headroom below the droop's saturation. The droop equality then fights the P/Q/S limits and the OPF can turn infeasible.
E.SPEC.DC_BUS_ARITYEA dc_bus does not have 1 (monopole/earth return), 2 (pole+return), or 3 (bipole) terminals.
E.SPEC.DC_BRANCH_ARITYEA dc_branch's terminal_map_from and terminal_map_to differ in length (conductor count must match end to end).
E.SPEC.DC_BRANCH_R_DIMEA dc_branch's per-conductor r array length does not equal its conductor count.
E.SPEC.DC_PORT_MISSING_MAPEAn IBR references a dc_bus but has no dc_terminal_map.
E.SPEC.DC_PORT_ARITYEAn IBR's dc_terminal_map spans more terminals than its dc_bus has wires.
E.SPEC.DUPLICATE_DC_TERMINALEA DC terminal map (branch or converter port) lists the same terminal twice.
E.DOM.DC_R_NEGATIVEEA dc_branch.r (or dc_grounding.r) has a negative entry — resistances are nonnegative.
E.DOM.DC_GROUNDING_R_NEGATIVEEA dc_grounding.r is negative.
E.DOM.DC_VBOUND_INVALIDEWithin a bound family (v_dc, vdc_ln, vdc_ll) a minimum exceeds its maximum.
E.DOM.DC_LL_BOUND_NO_POLEEA line-to-line bound is declared on a dc_bus with fewer than 3 wires (no positive+negative pole).
E.DOM.DC_LN_BOUND_NO_NEUTRALEA line-to-neutral bound is declared on a dc_bus with no return/neutral conductor (fewer than 2 wires).
E.DOM.DC_RATING_NONPOSITIVEEA dc_branch.i_max/p_max is non-positive.
W.DOM.DC_VBOUND_INCONSISTENTWThe line-to-ground / line-to-neutral / line-to-line bound families cannot hold simultaneously given the topology + grounding (e.g. vdc_ll_max < 2 × the line-to-ground floor on a midpoint-grounded symmetric bipole).
W.DOM.DC_POLE_SIGNWA terminal's bound sign contradicts its declared pole role (a POSITIVE pole with v_dc_max ≤ 0, or a NEGATIVE pole with v_dc_min ≥ 0).
W.DOM.DC_MULTIPOINT_GROUNDINGWA connected DC island has more than one grounding point — this closes an earth loop and permits circulating earth-return current (often deliberate for bipoles; verify).
W.DOM.DC_BUS_NO_CONVERTERWA dc_bus has no converter (IBR) attached — an islanded DC node.
W.RED.DC_BRANCH_SELF_LOOPWA dc_branch connects a dc_bus to itself — it carries no transfer.
I.RED.DC_PARALLEL_BRANCHESITwo dc_branches connect the same unordered dc_bus pair.
W.RED.DC_REDUNDANT_GROUNDINGWA dc_grounding earths a terminal already in the dcbus's `perfectlygrounded_terminals`.
E.SOL.DC_VOLT_VIOLATIONEPost-solve: a signed DC node voltage lies outside its [v_dc_min, v_dc_max] band.
E.SOL.DC_THERMAL_VIOLATIONEPost-solve: a DC branch conductor current exceeds its i_max.

CONTRACT — executable scientific contracts

These findings do not come from analyze. They are produced only by the explicit source-versus-target scientific contracts, which need a source, a target, and an explicit mapping — a reduced target cannot reveal source information that has already been discarded. Ordinary single-case analysis never emits them.

CodeSevTrigger & rationale
E.CONTRACT.PARALLEL_TERMINAL_RELATION_MISMATCHEThe declared scalar aggregate line's admittance differs from the sum of the explicitly mapped source-member admittances. The target therefore fails even the unconstrained terminal-current relation.
W.CONTRACT.PARALLEL_MEMBER_LIMIT_LOSSWThe aggregate preserves the summed scalar terminal admittance but its current rating defines an inner restriction or outer relaxation of the source member-current-limit region. Detail includes PSK-000001, the classification, exact voltage-drop bounds, and a concrete current witness.
I.CONTRACT.NOT_APPLICABLEIA declared executable contract is outside its implemented domain, for example because the initial parallel-member check received a multiconductor or shunted line. No preservation conclusion is drawn.
W.CONTRACT.INDETERMINATEWRequired source, target, mapping, impedance, or rating evidence is missing or unresolved. No preservation conclusion is drawn; detail names the missing evidence and recommended follow-up.
E.CONTRACT.NEUTRAL_IDENTITY_LOSSEA mapped target bus has no identifiable explicit neutral terminal. Omitting it does not establish that its voltage, current, limits, or grounding relation are represented by the mathematical reference.
E.CONTRACT.NEUTRAL_CONTINUITY_MISMATCHEThe target changes whether mapped bus neutrals are connected through neutral-bearing lines, closed switches, or single-phase autotransformers. A matching simple bus graph is not sufficient.
E.CONTRACT.GROUND_REFERENCE_RELATION_MISMATCHEThe target changes a mapped neutral's declared perfect-ground, scalar finite-grounding-shunt, or voltage-source-reference relation. Those declarations are not interchangeable.
I.CONTRACT.NEUTRAL_GROUND_NOT_APPLICABLEIThe neutral/ground/reference check is outside its implemented domain, for example because the source lacks explicit neutrals or a grounding shunt couples multiple terminals. No preservation conclusion is drawn.
W.CONTRACT.NEUTRAL_GROUND_INDETERMINATEWA mapped bus or scalar grounding relation is missing or unresolved. No preservation conclusion is drawn; detail names the missing evidence and recommended follow-up.
E.CONTRACT.CLAIMED_FEASIBLE_SOLUTION_INVALIDEA result labelled LOCALLY_SOLVED, OPTIMAL, or ALMOST_LOCALLY_SOLVED contains non-finite values or violates a declared bus voltage or angle limit when independently recomputed by profile_solution. The contract finding retains the underlying E.SOL.* evidence.
I.CONTRACT.SOLUTION_STATUS_NOT_APPLICABLEIThe solver did not claim a feasible result, or the network has no declared bus terminals. The initial claimed-solution contract therefore makes no validity conclusion.
W.CONTRACT.SOLUTION_VALIDATION_INDETERMINATEWTermination status or required vr/vi/vm data for a declared bus terminal is missing. No validation conclusion is drawn; detail identifies the missing evidence.
E.CONTRACT.LOAD_VOLTAGE_BASE_MISMATCHEScientific contract load_voltage_base_consistency found that a voltage-dependent load's v_nom lies outside the declared ratio band for its source-propagated connection-coordinate base.
I.CONTRACT.LOAD_VOLTAGE_BASE_NOT_APPLICABLEIThe initial contract has no unique voltage-dependent WYE or DELTA load to check.
W.CONTRACT.LOAD_VOLTAGE_BASE_INDETERMINATEWA selected load, numeric v_nom, or source-reachable bus voltage base is unavailable, so connection-coordinate consistency cannot be decided.
E.CONTRACT.TRANSFORMER_TAP_DOMAIN_LOSSEThe mapped target transformer has a different continuous tap interval from the adjustable source: an inner restriction, outer extension, shifted overlap, or disjoint decision domain. Detail includes PSK-000005, both intervals, the classification, and a tap witness admitted by only one domain.
I.CONTRACT.TRANSFORMER_TAP_NOT_APPLICABLEIThe source is not an adjustable continuous tap transformer in the implemented domain, the subtype is unsupported or changes, or mapped non-tap declarations differ. No domain-preservation conclusion is drawn.
W.CONTRACT.TRANSFORMER_TAP_INDETERMINATEWA mapped transformer, complete numeric tap interval, or admissible start is missing or invalid. No domain-preservation conclusion is drawn.
E.CONTRACT.TRANSFORMER_WINDING_INCIDENCE_MISMATCHEThe target changes a mapped transformer winding side, stored orientation, or ordered terminal-to-coil incidence. A bare bus_from/bus_to swap is not a complete typed transformer reversal.
E.CONTRACT.TRANSFORMER_WINDING_BASE_RATIO_MISMATCHEThe target changes a mapped v_nom_from/v_nom_to winding reference or the resulting fixed effective coil ratio under the subtype's connection convention.
I.CONTRACT.TRANSFORMER_WINDING_NOT_APPLICABLEIThe initial winding-convention contract does not cover the subtype, adjustable tap, non-bijective mapping, or subtype-changing reversal. No preservation conclusion is drawn.
W.CONTRACT.TRANSFORMER_WINDING_INDETERMINATEWA mapped transformer, bus, terminal map, positive winding reference, fixed tap, or constructible incidence relation is missing. No preservation conclusion is drawn.
E.CONTRACT.DECISION_MANIFEST_EVIDENCE_GAPEA manifest claiming exact decision equivalence omits a required admissible-domain, terminal, observation, constraint, decision-variable, objective, or recovery disposition, or lacks the evidence reference or justification required by that disposition. Terminal evidence alone is insufficient.
E.CONTRACT.DECISION_MANIFEST_UNRESOLVED_OBLIGATIONEA manifest claiming exact decision equivalence explicitly marks a required dimension as unassessed or not_preserved, contradicting the unqualified exactness claim.
I.CONTRACT.DECISION_MANIFEST_NOT_APPLICABLEIThe manifest does not claim exact decision equivalence. A narrower terminal, inner, outer, or approximate claim lies outside this completeness gate and is not mislabeled as a failure.
W.CONTRACT.DECISION_MANIFEST_INDETERMINATEWThe manifest schema, identity, claim, dimension object, or disposition is missing, malformed, or unsupported. No declaration-completeness conclusion is drawn.
E.CONTRACT.KRON_BOUNDARY_RELATION_MISMATCHEThe target series impedance differs from the source Schur-complement boundary relation in the declared phase coordinate order.
E.CONTRACT.KRON_GROUNDING_PRECONDITIONEThe eliminated source neutral is not perfectly grounded at every source line endpoint, so the three-wire Kron target is not exact for the declared network boundary.
I.CONTRACT.KRON_NOT_APPLICABLEIThe initial Kron contract does not cover the supplied conductor count, terminal order, endpoint mapping, line shunts, or self-loop shape. No reduction conclusion is drawn.
W.CONTRACT.KRON_INDETERMINATEWA mapped line, bus, conductor order, impedance matrix, or endpoint declaration is missing or unresolved, so the Kron boundary cannot be decided.
W.CONTRACT.KRON_RECOVERY_INDETERMINATEWThe required eliminated-terminal recovery map is missing, malformed, or names a different terminal, so internal recovery obligations cannot be decided.
E.CONTRACT.SEQUENCE_SYMMETRY_MISMATCHEA source series or shunt factor is not circulant in the declared phase order and can mix positive, negative, and zero sequence components.
E.CONTRACT.SEQUENCE_DOMAIN_MISMATCHEThe declared boundary, grounding, device, decision, or observation domain is not closed under the positive-sequence restriction.
E.CONTRACT.SEQUENCE_RELATION_MISMATCHEThe scalar target relation differs from the source positive-sequence eigenvalue in the declared convention.
I.CONTRACT.SEQUENCE_NOT_APPLICABLEIThe initial positive-sequence contract does not cover the supplied conductor count, terminal order, factor shape, or unsupported shunt structure.
W.CONTRACT.SEQUENCE_INDETERMINATEWA source or target factor, terminal map, or required collapse-domain declaration is missing or unresolved.
E.CONTRACT.STATE_UPDATE_PROVENANCE_LOSSEThe target freezes or omits update provenance for a source equivalent that varies over a non-singleton state domain.
E.CONTRACT.STATE_DOMAIN_MISMATCHEThe target state domain differs from the source domain, so the declared equivalent does not cover the same state range.
E.CONTRACT.STATE_BASE_ALIGNMENT_MISMATCHEThe target calibration state differs from the source base state.
I.CONTRACT.STATE_EQUIVALENT_NOT_APPLICABLEIThe initial state-dependent-equivalent contract does not cover the supplied domain declaration.
W.CONTRACT.STATE_EQUIVALENT_INDETERMINATEWA required state parameter, domain, base state, or update declaration is missing or malformed.
E.CONTRACT.REFERENCE_LOSSEA target island loses a voltage reference present in the source island.
E.CONTRACT.SINGULARITY_CHANGEEA target island becomes rank-deficient relative to a full-rank source island.
I.CONTRACT.REFERENCE_SINGULARITY_NOT_APPLICABLEINo connected-island reference evidence was supplied, so this initial validation bundle is not applicable.
W.CONTRACT.REFERENCE_SINGULARITY_INDETERMINATEWReference-analysis island records or their mapping are missing or malformed.
E.CONTRACT.TERMINAL_ORDER_MISMATCHETarget endpoint terminal maps do not follow the declared permutation.
E.CONTRACT.PERMUTATION_RELATION_MISMATCHEThe target series primitive is not the source primitive conjugated by the declared permutation.
I.CONTRACT.PERMUTATION_NOT_APPLICABLEIThe explicit permutation contract does not apply because a bijection, line, or compatible matrix dimensions are unavailable.
W.CONTRACT.PERMUTATION_INDETERMINATEWA required source or target line primitive or terminal-map record is missing or malformed.
E.CONTRACT.FEASIBILITY_RESIDUAL_VIOLATIONEAn independently computed equation, KCL, power-balance, or recovery residual exceeds its declared tolerance.
E.CONTRACT.FEASIBILITY_DEVICE_LIMIT_VIOLATIONEIndependent device-limit validation reports one or more violations.
I.CONTRACT.FEASIBILITY_NOT_APPLICABLEINo solved/feasible solver status was supplied for the residual-witness contract.
W.CONTRACT.FEASIBILITY_INDETERMINATEWA solved result lacks finite, independently computed residual or device-limit witness fields.
E.CONTRACT.UNIT_SYSTEM_MISMATCHETarget serialization declares a different unit system.
E.CONTRACT.BASE_MAP_MISMATCHETarget serialization does not preserve the declared unit/base map.
E.CONTRACT.SERIALIZED_PAYLOAD_MISMATCHETarget serialization has a different canonical semantic payload hash.
W.CONTRACT.UNIT_BASE_SERIALIZATION_INDETERMINATEWRequired unit/base or canonical semantic-hash metadata is missing or malformed.