RMI / RMI/tpr

Scope technologies to their sector

Open
#461 3 comments 0 reactions 1 assignee View on GitHub

@AlexAxthelm is already working on this.

Since Aug 26, 2026.

Dominant language
TypeScript
Stars
3
Forks
0
Avg merge
6h 36m
Merged PRs (30d)
13

Description

Part of #860 (foundation). Updated scope: the original observation stands (the technology list is
not scoped to sectors), and it is now a prerequisite for the inheritance search's sector/technology
axis.

Original observation

The technologies enum is a single flat list applied to any sector; there is no constraint that a
technology belongs to the sector it is listed under. See the flat technology.v1.json enum and the
nested sectors[].technologies[] shape in pathwayMetadata.

Why it matters now

The inheritance resolver (#869) treats technology as a tighter scope of sector (Solar ⊆ Power),
mirroring geography's country ⊆ region. When a user filters by a technology, the resolver must map that
technology to its parent sector to find candidate values (keyFeatures are stored at sector granularity,
not technology). That mapping must be reliable and validated.

Scope

  • In v2 (#858), constrain each sectors[].technologies[] to the technologies valid for that
    sector name, via a conditional subschema — mirror the pattern already used for power in
    pathwayTimeseries.v1.json and the taxonomy in src/utils/timeseriesTaxonomy.ts
    (POWER_SECTOR_DEFINITION).
  • Reconcile the two divergent taxonomies where practical: metadata uses Title-Case display names;
    timeseries uses camelCase keys with a richer sector-scoped structure. Establish a single source
    of truth for sector→technology membership (extend timeseriesTaxonomy.ts beyond power, or a
    dedicated map) that both sides reference.
  • Provide a technologyBelongsToSector(technology, sector) util for the resolver and validation.
  • Fix any existing data offenders surfaced by the constraint (the codemod in #858 should report
    them).

Acceptance criteria

  • Invalid technology/sector pairings fail schema validation.
  • technologyBelongsToSector is unit-tested and used by #869.
  • All existing src/data/** conform (or are fixed).

Notes / links

  • Part of #860; feeds #869 (sector/technology axis).
  • Coordinate with #858 (the v2 schema is where the constraint lands).
  • Related content issues: #561 / #564 (power technology list additions) — keep the enum in sync.

https://github.com/RMI/pbtar/blob/a57945646a33d63047d068e248a137839b63f07a/src/schema/schema.json#L108

The list of technologies does not correspond to the list in "Data Model Variables" in https://rockmtnins.sharepoint.com/:x:/s/ClimateFinance/EVs3t7CTh_1KjGBHvl-bUEsBmvxj8QRZawIjVdV_CYRiHQ?e=07gvSP
It contains technologies that are not part of the power sector.

Currently, the list of technologies per pathway is not displayed. However the technology-by sector scoping is not apparent to me based on this.

fyi @AlexAxthelm @jdhoffa

Contributor guide

Open the contributing guide

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.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.