Skip to content

Add typed ancillary-service requirement revisions - #13

Merged
kvkenyon merged 2 commits into
mainfrom
feat/ancillary-service-requirements
Sep 9, 2026
Merged

Add typed ancillary-service requirement revisions#13
kvkenyon merged 2 commits into
mainfrom
feat/ancillary-service-requirements

Conversation

@kvkenyon

@kvkenyon kvkenyon commented Sep 8, 2026

Copy link
Copy Markdown
Owner

ERCOT's direct ancillary-service methodology archive contains numerical requirement workbooks that the SDK could not read. Add Client.ancillary_requirements for anonymous discovery, download and typed reading of the 15 published workbook revisions spanning 2016–2026, including the September 1, 2026 revision.

Each workbook returns a concrete model with requirement quantities, RRS components and ratios, adjustment tables, supporting values and located notes. Preserve partial-month/date labels, historical effective versions, original hour labels and adjustment bases. Requirement changes and adjustments are never applied automatically; these schedules remain separate from actual DAM/RT procurement. No dependency or shared-parser changes.

The new reader is 272 lines. The 545 KB fixture retains all 15 unchanged numerical workbooks; narrative Word files are excluded. Sources and evidence record original URLs, hashes and comparison scope. Documentation includes a battery/AS workflow.

Validation: 1,295 tests pass, strict mypy passes for 44 files, Ruff passes and regeneration leaves generated modules unchanged. A fresh anonymous download matches all fixture hashes. Tests compare all 51,515 original numeric cells, including hour-axis labels and supporting calculations, plus source periods, RRS components, adjustment bases and notes. The 245 KB wheel matches all runtime source files and excludes fixtures; the source distribution retains them unchanged.

The five open changes (PRs #9#13) also pass together in an isolated local integration checkout: 1,308 tests, strict typing for 45 files, unchanged generated output and a successful 247 KB wheel containing all combined runtime files. Only appended documentation sections needed conflict resolution. No PRs were merged.

@kvkenyon
kvkenyon merged commit ffecd1f into main Sep 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant