power-plant-performance
SkillMonitoring & opsAnalyze thermal power plant performance: heat rate, NERC GADS availability metrics, thermodynamic cycle modeling, ambient corrections, degradation trending, and fleet benchmarking. Use when asked to 'calculate heat rate', 'compute EFOR or availability', 'model a Rankine or Brayton cycle', 'apply ambient corrections', 'trend plant degradation', 'benchmark against the NERC fleet', or analyze thermal generation efficiency
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the power-plant-performance 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/power-plant-performance/SKILL.md and read by ahel’s review.
Overview
Provides rigorous thermodynamic and statistical analysis of thermal generation assets. It calculates key performance indicators (heat rate, capacity factor, availability, forced outage rate), models the underlying thermodynamic cycles to identify efficiency opportunities, applies ambient condition corrections for fair comparison, tracks degradation over time, and benchmarks individual plants against NERC GADS fleet averages by technology type. Use it when operators ask questions like "What is our current heat rate versus design?", "How much output are we losing to high ambient temperature?", or "Show me our forced outage rate trend versus the NERC fleet average for F-class combined cycles."
Workflow
<Workflow - Heat Rate Analysis description="Calculate and decompose heat rate performance versus a design baseline." tools=[run_python, file_read, file_write, web_search, url_fetch, open_in_session_tab] triggers=["Heat rate", "efficiency", "how efficient is the plant", "BTU per kWh", "fuel consumption"]
-
[Agent] Verify reference data before any calculation. Identify which values the analysis needs (fleet benchmarks, fuel prices, standard limits). For each time-sensitive value, fetch the current authoritative value with web_search or url_fetch, or ask the user. Physical constants and formulas do not need fetching. Validate: Every time-sensitive value has a verified source or user-provided value. If fails: Stop and ask the user to confirm or provide the value (Rule 1).
-
[Agent] Read plant operational data (generation MWh, fuel MMBTU, ambient conditions) and configuration (technology type, design heat rate, design conditions) via file_read. Validate: At minimum fuel input, power output, and ambient temperature are present. If fails: Ask the user for those minimum required inputs.
-
[Agent] Compute raw metrics in run_python using the formulas in references/performance-metrics.md: gross heat rate, net heat rate, auxiliary power ratio. Confirm the fuel HHV/LHV basis matches the design spec. Validate: Values are finite and the HHV/LHV basis is stated. If fails: Ask the user to confirm the fuel heating value basis.
-
[Agent] Apply ambient corrections per references/thermodynamic-models.md: temperature, pressure, and humidity for gas turbines; condenser back-pressure for steam plants; correct gas turbine and steam turbine components separately for combined cycles. Validate: Corrected values reported with the correction factors applied. If fails: Report uncorrected values and note that correction is required for comparison.
-
[Agent] Compare corrected heat rate to design: dHR, dHR%, and the category (within tolerance, moderate, significant) from references/performance-metrics.md. Validate: A deviation and category are produced. If fails: If no design baseline exists, compare to the verified NERC fleet average.
-
[Agent] Decompose the deviation by component where data allows (compressor, turbine, combustion, HRSG, condenser, auxiliary), per references/performance-metrics.md. Validate: Component contributions sum to the total deviation, or note which are unquantified. If fails: Report the total deviation and list components lacking data.
-
[Agent] Produce a heat rate report: metrics table, deviation waterfall, trend over time, and recommendations separating recoverable from non-recoverable losses. Use canvas_pdf for a formatted report or matplotlib for charts, write the file, then open it with open_in_session_tab. Validate: The report file exists and is opened in a session tab. If fails: Deliver a text summary with the key findings.
</Workflow - Heat Rate Analysis>
<Workflow - Availability and Outage Analysis description="Calculate NERC GADS performance indices and benchmark against the fleet." tools=[run_python, file_read, file_write, web_search, url_fetch, open_in_session_tab] triggers=["EFOR", "availability", "forced outage", "outage rate", "reliability", "GADS", "EAF"]
-
[Agent] Read the outage log and classify events per the NERC GADS cause-code groups in references/performance-metrics.md. Validate: Every event maps to a GADS category. If fails: Ask the user to classify events or provide GADS-format data.
-
[Agent] In run_python, compute period hours, service hours, reserve shutdown hours, forced outage hours, and equivalent forced derated hours. Validate: The hours reconcile to the period (they sum consistently). If fails: Report which data elements are missing.
-
[Agent] Compute the GADS metrics (EFOR, EAF, NCF, SF, SR) using the formulas in references/performance-metrics.md. Validate: Each computed metric is within a physically possible range (0-100%). If fails: Compute the subset the data supports and note the gaps.
-
[Agent] Benchmark against NERC GADS fleet averages. Fetch current fleet figures by technology and unit size from the NERC source (see Resources); use the ranges in references/performance-metrics.md only as a labeled fallback. Identify metrics more than one standard deviation worse than the fleet. Validate: The comparison population (technology, size, vintage) is stated. If fails: Use the fallback ranges and label them as such.
-
[Agent] Analyze outage causes: top causes by hours lost (Pareto), EFOR trend by quarter, seasonal patterns, and starting reliability trend. Validate: At least a ranked cause list and a trend direction are produced. If fails: Report the metrics that are available.
-
[Agent] Produce an availability report: GADS metrics table, fleet comparison, outage Pareto, and reliability recommendations. Write the file and open it with open_in_session_tab. Validate: The report file exists and is opened in a session tab. If fails: Deliver a text summary with the key metrics.
</Workflow - Availability and Outage Analysis>
<Workflow - Thermodynamic Cycle Modeling description="Model a Rankine, Brayton, or combined cycle from state-point data or design parameters." tools=[run_python, file_read, file_write, web_search, url_fetch, open_in_session_tab] triggers=["Rankine cycle", "Brayton cycle", "combined cycle", "thermodynamic model", "cycle analysis", "steam cycle", "gas turbine cycle"]
-
[Decide] Determine the cycle type from configuration or user input: steam Rankine, simple cycle Brayton, or combined cycle. Validate: Exactly one cycle type is selected. If fails: Ask the user for the plant type.
-
[Agent] For Rankine or a bottoming cycle, obtain steam state-point properties (h, s, quality) from user-uploaded data, user input, or an authoritative source fetched this session. CoolProp and IAPWS libraries are not available in the sandbox (see Gotchas). Then compute cycle efficiency and heat rate with the equations in references/thermodynamic-models.md. Validate: Every enthalpy and entropy used traces to verified input, not a guess. If fails: Ask the user for the missing state-point data (Rule 1).
-
[Agent] For a Brayton cycle, compute state points and efficiency in run_python using the ideal-gas code in references/thermodynamic-models.md with plant-specific pressure ratio, turbine inlet temperature, and component efficiencies. Validate: Back-work ratio is in a plausible range (0.40-0.55) and efficiency is physical. If fails: Report the ideal cycle result and note where real effects change it.
-
[Agent] For a combined cycle, model both cycles and the HRSG per references/thermodynamic-models.md, respecting a design pinch of 8-15 C. Validate: The pinch is at least about 5 C and combined efficiency is plausible. If fails: Use the simplified combined cycle equation and note the assumption.
-
[Agent] Compare model results to measured performance where available and map each component efficiency gap to a physical cause (fouling, seal leakage, blade erosion). Validate: Deviations are attributed to a component or flagged as unattributed. If fails: Report the modeled versus measured gap without attribution.
-
[Agent] Produce cycle output: a state-point table, component efficiency summary, and a T-s or P-v diagram via matplotlib. Write the file and open it with open_in_session_tab. Validate: The output file exists and is opened in a session tab. If fails: Deliver the numerical results without diagrams.
</Workflow - Thermodynamic Cycle Modeling>
<Workflow - Degradation Trending description="Track corrected performance over time to identify and quantify degradation." tools=[get_current_time, run_python, file_read, file_write, web_search, url_fetch, open_in_session_tab] triggers=["Degradation", "trending", "performance over time", "is the plant getting worse", "efficiency decline"]
-
[Agent] Read the time-series operational data (generation, fuel, ambient conditions per period). Call get_current_time to anchor "recent" and interval calculations. Validate: At least 6 months of data are present (Rule 8). If fails: Tell the user that meaningful trending needs at least 6 months of corrected data.
-
[Agent] Filter and correct per references/degradation-and-benchmarking.md: remove non-steady-state periods, filter to baseload, correct to ISO conditions, and remove outliers beyond 3 sigma. Validate: A clean corrected series remains. If fails: Report data quality issues and proceed with the available clean data.
-
[Agent] Compute corrected monthly metrics (heat rate, output, and for gas turbines exhaust temperature and pressure ratio). Validate: One corrected value per period. If fails: Note which periods were dropped and why.
-
[Agent] Fit the degradation trend with numpy.polyfit (scipy is unavailable) using the pattern in references/degradation-and-benchmarking.md, and identify recovery events (washes, overhauls). Validate: A slope and r-squared are produced. If fails: Report insufficient data density for statistical significance.
-
[Agent] Classify degradation as recoverable short-term, recoverable at major maintenance, or non-recoverable, using the signatures in references/degradation-and-benchmarking.md. Validate: Each identified loss has a classification. If fails: Report the trend without classification.
-
[Agent] Project future performance and cost impact. Verify the fuel price from a live source or user input before computing cost (Rule 1). Validate: Cost uses a verified fuel price. If fails: Report degradation in BTU/kWh only and ask for the fuel price.
-
[Agent] Produce a degradation report: corrected trend chart with regression line, marked recovery events, degradation rate versus the expected rate, cost impact, and recommended actions with expected payback. Write the file and open it with open_in_session_tab. Validate: The report file exists and is opened in a session tab. If fails: Deliver a summary table with the key findings.
</Workflow - Degradation Trending>
<Workflow - Plant Benchmarking Report description="Produce a full benchmarking assessment against the NERC GADS fleet and design basis." tools=[get_current_time, run_python, file_read, file_write, web_search, url_fetch, open_in_session_tab] triggers=["Benchmark", "how do we compare", "fleet average", "plant report card", "performance report"]
-
[Agent] Run Heat Rate Analysis to get corrected performance. Validate: Corrected heat rate is available. If fails: Report the missing inputs and stop.
-
[Agent] Run Availability and Outage Analysis to get GADS metrics. Validate: GADS metrics are available. If fails: Report the missing inputs and continue with heat rate only.
-
[Agent] Fetch current NERC GADS fleet comparisons by technology and fuel type (see Resources). Use the fallback ranges in references/performance-metrics.md only if the source is unreachable, and label them as fallback. Validate: The comparison population is stated. If fails: Use labeled fallback ranges.
-
[Agent] Compute benchmarking scores per references/degradation-and-benchmarking.md: percentile rank per KPI, weighted composite score, and traffic-light ratings. Validate: Every KPI has a percentile and a rating. If fails: Score the KPIs that have fleet data.
-
[Agent] Rank improvement opportunities by the annual dollar value of closing the gap to the fleet median, mapping each to a physical action. Verify fuel and cost inputs before use (Rule 1). Validate: Opportunities are ranked with verified cost inputs. If fails: Present the gaps without dollar ranking and ask for cost inputs.
-
[Agent] Produce the benchmarking report with canvas_pdf (or canvas_xlsx for a tabular workbook): executive summary with composite score and traffic lights, KPI comparison table, heat rate gap waterfall, reliability comparison, prioritized improvement roadmap, and a methodology appendix listing data sources and correction factors. Write the file and open it with open_in_session_tab. Validate: The report file exists and is opened in a session tab. If fails: Deliver a Markdown report with the key findings.
</Workflow - Plant Benchmarking Report>
Signals
- GitHub stars
- 49
- Forks
- 2
- Last commit
- Sep 2026
ahel review
K1binfo
installs-packagesK1binfo
installs-packages (in references/thermodynamic-models.md)
Automated review, not a security audit. Ruleset v1+k2.
Advanced
- Catalog kind
- skill
- Gateway key
power-plant-performance- Source
- github.com/amazon-quick/amazon-quick-official-catalog