← Back to the grid

Research — Substation · Early Access

Substation checks against NESC and RUS tables, with an audit trail of the bugs it caught.

A deterministic model of a substation plus 21 check functions (the README’s count) against NESC (ANSI/IEEE C2) Section 11 rules and RUS Bulletin 1724E-300 clearance tables. Each check returns pass/fail, the violations, and the standard it cited.

NESC Rule 110 · RUS 1724E-300

Interactive demos

Harnesses in action

Scripted chat-and-viewer examples where this domain's harness is one of the tools. Illustrative, not live sessions.

All harness demos →

What it can do

  • check_substation_fence_clearance

    Fence-to-live-part clearance from NESC Rule 110A2 / Table 110-1, a 17-row lookup by voltage and BIL, never interpolated.

  • check_substation_fence_height

    Perimeter fence height against the NESC Rule 110A.1 7 ft floor, with an optional jurisdiction override.

  • check_bus_configuration_breaker_count

    Breaker count against the ratio implied by the bus scheme (RUS 1724E-300 §4.6).

  • check_substation_equipment_ground_clearance

    Equipment-to-ground clearance for personal safety (RUS 1724E-300 Table 4-7).

  • check_substation_insulator_cantilever_strength

    Selected insulator cantilever rating against the required minimum (RUS 1724E-300 §4.11.2.7).

  • validate_substation

    Runs one substation through all 21 checks and returns an aggregate result.

Design workflow

A staged substation design, where anything not evaluated says so.

Six routes walk a design through stages: start, status, run a stage, summary, propose fixes, and decide (apply or dismiss). You send the whole design state in and get the new state back; nothing is stored between calls. Change an input and every stage built on it is marked stale instead of silently kept. A stage that could not evaluate something reports incomplete — never valid.

7 stages, drawn from the harness’s own dependency graph (7 of the 12 stages in its workflow map of RUS Bulletin 1724E-300 are built). Every stage reads the design basis; an arrow means a stage also needs the one it points from, so stages in the same column do not depend on each other.

  1. 1. Design basisdesign_basis

    Takes the substation design basis once; every later stage reads it from the state.

    Validates
    Records the design basis and reports which inputs are still missing.
    Needs
    the design basis
    Can reportvalidincomplete
  2. 2. Topologyelectrical_topology

    Derives the breaker count from the bus scheme and circuit count.

    Validates
    Uses the same bus-scheme breaker ratios as the compliance check, and reports a scheme or circuit count it cannot size as incomplete.
    Cites
    RUS 1724E-300 section 4.6
    Needs
    the design basis
    Can reportvalidincomplete

    Same check on its own: Bus scheme and breaker count

  3. 3. HV fault studyfault_study

    Three-phase fault level at the high-voltage bus from the utility source, with any generator contribution added to it.

    Validates
    A generator’s contribution is added to the utility source, never substituted for it; with generators present the grid X/R is applied to the total, and the stage says asymmetry is understated.
    Cites
    Via circuit-calc-harness (call recorded in the stage)
    Needs
    the design basis
    Can reportvalidincompletecalls circuit-calc-harness
  4. 4. Bus clearancesbus_clearances

    Runs the Table 4-7 clearance checks only for the measurements you supply.

    Validates
    A clearance you did not measure is reported as not evaluated, not as a pass; a check that passes on a caveated lookup (altitude, voltage outside the table) is incomplete.
    Cites
    RUS 1724E-300 Table 4-7 (ANSI C37.32 / NEMA SG-6)
    Needs
    the design basis, and the result of electrical_topology
    Can reportvalidincompletefailed

    Same check on its own: Station walk

  5. 5. Transformertransformer

    Loading of the transformer you selected, initial and ultimate, over the installed MVA.

    Validates
    The nameplate values are your selection, not derived here; no redundancy criterion is applied, and missing loading inputs make it incomplete.
    Needs
    the design basis
    Can reportvalidincomplete
  6. 6. LV fault studylv_fault_study

    Three-phase fault level at the low-voltage bus, through the transformer impedance.

    Validates
    Needs the HV fault level and the transformer stage; the arithmetic runs in the sibling harness.
    Cites
    IEEE Std 551-2006 Ch. 4 (via circuit-calc-harness)
    Needs
    the design basis, and the result of transformer
    Can reportvalidincompletecalls circuit-calc-harness
  7. 7. Equipment ratingsequipment_ratings

    Selected breaker interrupting kA against the available fault current at each bus.

    Validates
    Capability by the RUS voltage-factor rule (Eq. 5-3) and the 1.15 single-line-to-ground factor, applied only when the nameplate data to support them is given. A breaker rated below the evaluated duty is failed.
    Cites
    RUS 1724E-300 section 5.3.3.2.4.3 (Eq. 5-3) and 5.3.3.2.4.5
    Needs
    the design basis, and the result of fault_study and lv_fault_study
    Can reportfailedincompletenever validproposes fixes

    Never valid: asymmetry (the X/R and contact-parting-time derating) is not evaluated.

Statuses:missing (the stage has not been run); valid (it ran and everything it evaluates passed); incomplete (it ran but could not evaluate something, and says what); failed (a comparison it did evaluate did not pass); stale (an input or an upstream stage changed since it ran).missing and stale apply to every stage.

Hand-off: Accepts the generation design’s versioned hand-off (contract version 1, generation_to_substation): the plant’s generator-only fault contribution, added to the utility source. It is a JSON object you pass between the two designs, not a pipeline, and it carries no hash of the generation state it came from.

Proposals, on request

For an undersized breaker, the smallest preferred ratings from the RUS tables (5-20 and 5-21 indoor, 5-23 and 5-24 outdoor) that clear the evaluated duties, checked by re-running the fault studies. For a failing clearance or fence check, the smallest spacing, height or distance that passes the same check. Every proposal lists what else it changes; none is applied until you decide.

What was checked

The rating rules were read from the bulletin’s text and from the rendered page image, because the equation is typeset graphically. The calculations are covered by hand-worked test cases. No published worked example is reproduced for this domain.

What it does not do

  • The asymmetry S-factor (RUS 1724E-300 5.3.3.2.4.4) is evaluated when you give the breaker’s rated interrupting time and opening time, and the screen names the matching preferred rating (or notes that the breaker is not one). The breaker’s asymmetrical capability is still not compared with the system asymmetrical current, which needs the system X/R against the breaker’s rated X/R basis (IEEE C37.010, not ingested), so the screen can never report valid.
  • Single line-to-ground current is computed only when you give the utility’s zero-sequence data, the transformer connection and its zero-sequence impedance (it is otherwise entered, and an entered value always wins). Complex sequence impedances are summed with Z2 = Z1; a delta winding blocks the zero-sequence path and a grounded-wye winding over a delta is a local ground source. It is refused, with the reason, for autotransformers, tertiary windings, wye/wye units, more than one transformer, inverter-based generators, and generators without X2 and GSU data. Checked against the IEEE 80 Annex B worked example (3,180 A at the high-voltage bus, 6,815 A at the low-voltage bus; a third-party copy of the standard).
  • A proposed breaker is a row from the bulletin’s preferred-rating tables, not a vendor product: confirm availability and a continuous rating. Applicability flags (such as whether a fence is metallic) and fixed facts (voltage, BIL) are never changed by a proposal.
  • Draft, with AI-assisted review only; no substation engineer has reviewed it.

Live in the REST API (substation harness v0.2.0, seven routes: the six above plus a fix proposal for a single failing check) and as MCP tools. A staged design never ends with every stage valid: the equipment-ratings stage can only be failed or incomplete. Draft.

Draft, unvalidated: no engineer has reviewed this workflow, and a stage result is a screening result, not a design approval.

A worked case

Input

Fence clearance at 345,000 V, BIL 1300 kV, measured 18.2 ft to live parts.

Result

Not compliant — Table 110-1 (NESC Rule 110A2) requires 18.3 ft. A measured 18.3 ft passes. This case is a regression guard for a table-transcription bug (18.0 ft) that was caught and corrected. The table was confirmed against a primary source for the 2007 edition; that it matches the 2023 edition the harness targets is still open.

Where this stands

Draft. No substation design engineer has reviewed it yet; AI-assisted review is a QA pass, not a sign-off. The audit trail records real bugs found and fixed, including a 500 kV case that would have wrongly passed.

Open questions

  • Whether the loaded NESC edition matches the edition used for primary-source confirmation.
  • Whether “compliant” is the right answer when input data is missing or the voltage is not in the table.
  • Transformer/bushing and grounding-grid checks are blocked on licensed standards copies.
All domains →