Skip to content

ADR: Domain term — ESIID vs service_point #53

@haydenk

Description

@haydenk

Decision needed

ESIID is an ERCOT-specific term (Electric Service Identifier). Other ISOs use:

  • CAISO — Service Account ID (SAID) / Service Agreement
  • PJM — Account Number / Service Point
  • NYISO — ICAP ID / Premise ID
  • MISO — Premise ID / Account ID
  • ISO-NE — Account ID
  • CENACE — RPU (Registro Único de Usuarios) / Punto de Carga

We need a generic term for "the thing we track per ISO." Candidates:

  • service_point — neutral, used by some ISOs
  • premise — used by NYISO, MISO
  • account — too overloaded
  • Keep esiid as the universal term — fastest, but locks the project to ERCOT vocabulary forever

Affected surfaces if we rename

  • Table: esiidsservice_points (or chosen term)
  • Model: EsiidServicePoint
  • API path: GET /esiid/{esiid} (Add GET /esiid/{esiid} direct lookup endpoint #14 if not yet implemented) → GET /service_points/{id} or GET /service_points/by_iso_id/{iso}/{id}
  • API response field: esiid stays as the ERCOT-specific identifier on the record; the universal primary key is the surrogate id
  • Crate names: esiid-* → handled separately in v0.4.0 crate rename
  • README, CLAUDE.md, docs

Required output

ADR at docs/adr/0002-domain-term.md documenting the choice and rename plan.

Why now

This decision drives the v0.4.0 implementation work (crate rename, schema rename). Decide once, implement once.

Blocks

  • v0.4.0 crate rename
  • v0.4.0 schema implementation

Context

See docs/multi-iso-plan.md for the broader multi-ISO architectural plan.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:multi-isoMulti-ISO architecture / provider abstractiondocumentationImprovements or additions to documentation

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions