Story: Normalise every ORE parameter representation — the remaining work

Table of Contents

This page documents a story in Sprint 30, carried unfinished from Sprint 29 at close. It captures the goal, current status, acceptance criteria, and the tasks that compose it.

1. Goal

Every ORE parameter whose reader accepts more than one rendering of a value is stored in one canonical representation, and the map from a rendering to that representation is data the database holds, not a table compiled into a binary. The value set states both what is accepted and what is canonical, so the screen offers one form and the store keeps one form, and a spelling ORE adds later is a row rather than a release.

2. Status

Field Value
State BACKLOG
Parent sprint Sprint 30
Now Not yet started. Split from Normalise every ORE parameter representation, which closed in sprint 29 with its done tasks.
Waiting on Nothing.
Next Triage into a sprint.
Last touched 2026-11-08

3. Acceptance

  • Every parameter whose ORE reader accepts more than one rendering is named, with the reader that accepts it and the canonical form chosen for it.
  • The map from an accepted rendering to the canonical form is data: the value set states it, and no compiled table holds ORE's spellings.
  • A write converts an accepted rendering to the canonical form at one boundary for every parameter, and a rendering the map does not know is refused naming the set.
  • The screens offer the canonical forms and not the accepted ones, and the guard accepts every accepted rendering.
  • A check fails when a table holds more than one rendering of one fact.

4. Tasks

Task State Start End Description
Carry one canonical form for each fact BACKLOG     ORE accepts several spellings for one value, and a compiled table in the codec converts them. This task moves the spellings into the value set, converts at the write boundary so the store holds one rendering, offers only canonical forms to a screen, and fails a check when a table holds two renderings of one fact.

5. Decisions

6. Out of scope

  • Model, Engine and a sensitivity template code: the document defines the thing they name, so their set is open and nothing about them is canonicalised.
  • Free text parameters, whose set says so.
  • Currencies, whose registry already holds the ISO code and nothing else.
  • Rewriting ORE's semantics: the canonical form is a rendering, not a new value.

Emacs 29.3 (Org mode 9.6.15)