NatLabRockies / NatLabRockies/GridAnalysisToolkit
Surface unserved energy (balance slack) as a first-class dataset
Nobody has claimed this yet.
- 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 shedSystemBalanceSlackDown— absorbs surplus; expected to stay ~zero in practice
Proposed work:
- 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).
- 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_SCALEenv 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. - 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
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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