NatLabRockies / NatLabRockies/GridAnalysisToolkit

Surface unserved energy (balance slack) as a first-class dataset

Open
#10 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
Python
Stars
1
Forks
0
PR merge metrics
No merged PRs in 30d

Description

With the fixture now solved under DCPPowerModel; use_slacks = true (#4 / PR #9), the results store carries PSI's system balance slack variables:

  • SystemBalanceSlackUp — fills generation shortfall: this is unserved energy / load shed
  • SystemBalanceSlackDown — absorbs surplus; expected to stay ~zero in practice

Proposed work:

  1. Expose slack-up as an unserved-energy dataset through the Scenario API (and decide its display-group treatment — e.g. an 'Unserved Energy' technology in dispatch stacks, conventionally rendered as a red band at the top).
  2. Add a stressed fixture variant to actually exercise it — the standard RTS week solves with ~zero slack, so UE tests need a scenario that is genuinely short (e.g. a LOAD_SCALE env knob in generate.jl, or an outage week). Note any generate.jl change rotates the fixture cache key: bundle it with a deliberate refresh + baseline regen per the tests.yml procedure.
  3. Regression-test the sign/direction convention: shortage shows up as positive slack-up, never as silently-clipped load.

This also feeds the units design (#8): unserved energy is exactly the kind of cross-tool comparison quantity (MWh of shed load) where unit and sign conventions differ between tools and must be normalized at the parser boundary.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the Scenario API and the existing fixture/test flow, then inspect generate.jl and the tests.yml procedure for cache-key rotation and baseline regeneration. Add a stressed fixture variant and regression coverage for positive slack-up, with the dataset and display-group behavior defined consistently. Done means unserved energy is exposed and shortage direction is verified without clipped load.

Written by the indexing model from the issue text.

Assessment

Tech stack
julia, python
Domain
api, data, testing-qa
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.