grid-capacity-planning

SkillCloud & infra

Perform long-range transmission and distribution capacity planning: load growth forecasting, distributed energy resource hosting capacity, N-1 contingency screening, transfer capability, substation loading, and capital investment plans. Use when asked to 'forecast load growth', 'run a hosting capacity analysis', 'screen N-1 contingencies', 'calculate ATC or transfer capability', 'assess substation loading', or 'build a capital investment plan' for a power grid

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the grid-capacity-planning skill

What this skill tells your AI

The instructions your AI receives, as published by amazon-quick/amazon-quick-official-catalog in skills/energy-utilities/grid-capacity-planning/SKILL.md and read by ahel’s review.

Overview

Grid Capacity Planning performs long-range transmission and distribution planning analysis. It integrates load forecasting (econometric, end-use, and trending methods), hosting capacity determination for distributed energy resources (DER), N-1 contingency screening, and power transfer sensitivity factor computation. The skill calculates Available Transfer Capability (ATC) and identifies thermal bottlenecks that require capital investment. It produces planning-grade outputs: 5/10/20-year load growth scenarios, substation loading assessments, hosting capacity maps, and capital expenditure requirements.

Workflow

  • references/forecasting-methods.md: econometric, end-use, and trending load growth math; weather normalization; scenario construction.
  • references/power-system-analysis.md: PTDF, LODF, N-1 screening, ATC/TTC/TRM/ ETC/CBM, hosting capacity, substation loading, and the sandbox reality for power flow.
  • references/investment-costs.md: PWRR, capital recovery factor, planning-level unit costs, and estimating discipline.

Key terms:

  • DER: distributed energy resource (rooftop solar, storage, small generation).
  • Hosting capacity (HC): maximum DER a feeder accepts without violating limits.
  • PTDF / LODF: power transfer and line outage distribution factors (DC linear sensitivity factors).
  • ATC: Available Transfer Capability = TTC - TRM - ETC - CBM.
  • N-1: loss of any single element. N-1-1: two sequential losses. N-2: simultaneous double contingency.

<Workflow - Load Growth Forecasting description="Develop load growth projections using econometric, end-use, or trending methods." tools=[get_current_time, run_python, file_read, file_write, web_search, url_fetch, open_in_session_tab] triggers=["Load forecast", "load growth", "demand projection", "how much will load grow"]

  1. [Agent] Verify reference data before any calculation. Identify which time-sensitive values are needed (elasticities, prices, costs, regulatory limits) and fetch each from an authoritative source with web_search or url_fetch, per Rule 2. Get the current date with get_current_time so planning years (5/10/20) are anchored correctly. Validate: Every time-sensitive value has a verified source or a user-provided value. If fails: Stop and ask the user to confirm or provide the value.

  2. [Agent] Read historical load data. Determine granularity (annual peaks, monthly energy, hourly profiles) and coverage (number of years). Validate: Structured historical series loaded with a known time base. If fails: Ask the user for historical load data in a structured format.

  3. [Agent] Perform weather normalization if temperature data is available, per references/forecasting-methods.md (CDD/HDD regression, normalize to 50th-percentile or 90/10 design weather). Validate: Normalized series produced, or absence of weather data recorded. If fails: Proceed with raw data and note that results are not weather-normalized.

  4. [Agent] Fit the applicable models in run_python per references/forecasting-methods.md: trending (exponential, linear, logistic; select by adjusted R^2), econometric (if economic data available), and end-use (if end-use data available). Validate: At least one model fits with reported goodness-of-fit. If fails: Fall back to the trending method on available peaks.

  5. [Agent] Generate low/base/high scenarios per 3-4 and references/forecasting-methods.md. Validate: Three scenarios exist with stated assumptions. If fails: Use plus/minus one standard error of the regression as high/low bounds.

  6. [Agent] Produce outputs per planning year (5, 10, 20): peak demand (MW) and annual energy (GWh) by zone/substation, CAGR per scenario, and uncertainty band width. Write tables to an Excel workbook (canvas_xlsx) and growth curves (highcharts with html_design), then open with open_in_session_tab. Include the Rule 3 disclaimer on the deliverable. Validate: Workbook and chart created and opened in a session tab. If fails: Fall back to a text or Markdown table.

</Workflow - Load Growth Forecasting>

<Workflow - Hosting Capacity Analysis description="Determine maximum DER interconnection capacity at each bus or feeder before violations occur." tools=[run_python, file_read, file_write, open_in_session_tab] triggers=["Hosting capacity", "DER interconnection", "how much solar can connect", "PV hosting"]

  1. [Agent] Load the network model into a numpy representation in run_python. Validate topology: no isolated buses, transformer tap ranges present, base-case power flow converges. Validate: Model parses and a base case is defined. If fails: Report model issues and request corrections.

  2. [Agent] Establish the base case (no DER): compute bus voltages and branch flows, verify no base-case violations. See references/power-system-analysis.md. Validate: Base case has no violations. If fails: Adjust the slack/reference bus or voltage setpoints and note it.

  3. [Agent] For each candidate bus (or specified DER queue locations), run the iterative hosting capacity method in references/power-system-analysis.md, incrementing DER until the first violation or the practical upper bound. Process buses in bounded batches to respect the 60-second run_python limit, writing intermediate results to disk. Validate: A hosting capacity value is recorded for each candidate bus. If fails: Reduce the step size for precision or report convergence issues.

  4. [Agent] Classify the limiting factor per bus: thermal, voltage, protection, or reverse flow. Validate: Every bus with an HC value has a limiting factor. If fails: Re-run the binding case and inspect which criterion tripped first.

  5. [Agent] Produce a hosting capacity map/table: bus ID, HC (MW), limiting factor, limiting element, per-feeder totals, and mitigation recommendations (voltage regulators, reconductoring, storage). Write results and open in a session tab with the Rule 3 disclaimer. Validate: Results file created and opened. If fails: Summarize the top constraints in text.

</Workflow - Hosting Capacity Analysis>

<Workflow - N-1 Contingency Screening description="Screen all single-element outages for thermal and voltage violations." tools=[run_python, file_read, file_write, open_in_session_tab] triggers=["N-1 contingency", "contingency analysis", "what overloads under outage", "reliability screening"]

  1. [Agent] Load the network model and build the contingency list: use user-specified contingencies if given, otherwise generate the full N-1 list (all branches with rating > 0). Validate: Contingency list is non-empty. If fails: Ask the user for the network model.

  2. [Agent] Compute PTDF and LODF matrices with DC power flow in run_python per references/power-system-analysis.md. Remove the slack row/column before inverting B; flag any islanding LODF. Validate: PTDF and LODF matrices computed without singularity. If fails: Fall back to sequential AC contingency if an AC solver is available; otherwise report the singularity and its cause.

  3. [Agent] Screen all contingencies with LODF, computing post-contingency loading against emergency ratings. Batch the loops to respect the 60-second limit and write violations to disk incrementally. Validate: Every (contingency, monitored branch) pair evaluated. If fails: Reduce batch size and resume from the last checkpoint.

  4. [Agent] Rank violations by severity: worst overload first, grouped by contingency and by monitored element. Use the Performance Index in the reference for prioritization. Validate: A ranked violation list exists. If fails: Re-sort from the saved violation records.

  5. [Agent] Validate the top violations with full AC power flow if a solver or user-supplied AC results are available; otherwise state that results are DC-only. Validate: Top violations confirmed by AC, or DC-only status stated. If fails: Note the DC screening approximation (5 to 10 percent versus AC).

  6. [Agent] Produce a contingency screening report: summary table (contingency, monitored element, pre- and post-contingency flow, rating, loading%), a thermal violation view, and mitigation options. Open in a session tab with the Rule 3 disclaimer. Validate: Report created and opened. If fails: Provide a text-based violation summary.

</Workflow - N-1 Contingency Screening>

<Workflow - Transfer Capability Calculation description="Calculate ATC for a specified transfer path using PTDF-based methods." tools=[run_python, file_read, file_write, open_in_session_tab] triggers=["ATC", "transfer capability", "how much can transfer", "path rating", "TTC"]

  1. [Agent] Identify the transfer source and sink areas (sets of buses). Validate: Source and sink bus sets defined. If fails: Ask the user to specify source and sink zones.

  2. [Agent] Compute TTC with the linearized method in references/power-system-analysis.md, taking the minimum of the N-0 and N-1 limits over all monitored branches. Validate: TTC computed with the limiting element identified. If fails: Report which branch is the binding element and the assumptions used.

  3. [Agent] Determine margins: TRM (utility methodology or default 3 percent of TTC), CBM (from a generation reliability study or default 0), and ETC (sum of existing firm commitments on the path). Verify any assumed percentages per Rule 2. Validate: TRM, CBM, and ETC each have a stated source or documented default. If fails: Ask the user for the margin methodology.

  4. [Agent] Calculate ATC = TTC - TRM - ETC - CBM. If ATC < 0, report the path as fully committed or constrained. Validate: ATC computed with all four components shown. If fails: Recheck component units and signs.

  5. [Agent] Produce a transfer capability summary: limiting element, limiting contingency (if N-1 limited), sensitivity to relief, and available ATC for new service. State the study conditions. Open in a session tab with the Rule 3 disclaimer. Validate: Summary created and opened. If fails: Provide a text summary of the ATC components.

</Workflow - Transfer Capability Calculation>

<Workflow - Investment Planning description="Translate reliability violations and load growth into a capital investment plan." tools=[run_python, file_read, file_write, web_search, url_fetch, open_in_session_tab, start_task, get_task_result] triggers=["Investment plan", "capital plan", "what do we need to build", "how to fix overloads", "capex requirements"]

  1. [Agent] Collect all identified needs: thermal violations from N-1 screening (with year of first occurrence from load growth), substations above 80 percent of N-1 firm capacity, hosting capacity shortfalls versus the DER queue, and transfer capability gaps versus projected transfers. Validate: A consolidated needs list exists with a year of need for each. If fails: Re-run the upstream workflow that produced the missing input.

  2. [Agent] For each need, develop solution alternatives from references/investment-costs.md (reconductoring, new line, transformer, storage, demand-side management). Validate: Each need has at least one alternative. If fails: Flag needs with no viable alternative for user input.

  3. [Agent] Estimate costs for each alternative. Verify current unit costs per Rule 2 (do not treat the reference table as current without a lookup), add a contingency factor (default 20 percent), apply regional multipliers, and compute PWRR over a 30-year period using the utility WACC (default 7 percent, labeled as an assumption). For a large candidate set, run the cost and PWRR computation as a background task with start_task and collect it with get_task_result. Validate: Every alternative has a cost with a stated year-dollar basis and contingency factor. If fails: Report which costs could not be verified and ask the user.

  4. [Agent] Prioritize investments by year of need, then severity, and flag "least regret" investments that address multiple needs. Validate: A ranked investment list exists. If fails: Re-sort from the saved needs and cost records.

  5. [Agent] Produce the capital investment plan: a 5-year near-term plan with specific projects and costs, a 10-year plan with plus/minus 30 percent ranges, a 20-year programmatic view, capex by category, and an annual spending profile. Write to a multi-tab Excel workbook (canvas_xlsx) and open in a session tab with the Rule 3 disclaimer. Validate: Workbook created and opened. If fails: Provide a Markdown summary with key projects and costs.

</Workflow - Investment Planning>

Signals

GitHub stars
49
Forks
2
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
grid-capacity-planning
Source
github.com/amazon-quick/amazon-quick-official-catalog