ORE element and leaf screen standard
Table of Contents
- 1. Summary
- 2. Detail
- 2.1. Where this standard applies
- 2.2. Words
- 2.3. The words a screen prints
- 2.4. The Simple and Advanced switch
- 2.5. Reading a leaf
- 2.6. The documentation under a leaf
- 2.7. The element type
- 2.8. Where the words come from
- 2.9. The control
- 2.10. Changing a leaf
- 2.11. Filters
- 2.12. Gaps and states
- 2.13. What this page leaves to the other standards
- 2.14. Conformance today
- 2.15. Where the rules came from
- 2.16. Decisions
- 3. See also
1. Summary
Every value a person reads or changes in ORE Studio that ORE reads from an XML document is a leaf of that document: a parameter of a product, a setting of the engine run settings, a term of a convention. Every leaf belongs to an element type: a product type, a group of settings, a convention kind.
This page states how a screen draws a leaf and an element type, once, with the exact words. A person who learns to read a product parameter can read a convention term without learning anything new: the same Simple and Advanced switch, the same documentation that opens under the leaf, the same value in force, the same default, the same control for the same kind of value, the same marks for a change, the same filters and the same words for a gap.
The page does not decide identity, ownership, reach, selection or lifecycle.
Those differ between a settings document such as pricingengine.xml and a
library document such as conventions.xml, and the
Configuration screen standard and
the Record screen standard govern
them. Each rule here has an identifier of the form OL-AREA-NN, so a test,
the Allium specification
ore-leaf-behaviour.allium and
the screen review checklist can name it. The
identifiers follow the convention the UX hub
states; check_rule_identifiers.py does not key this page yet.
2. Detail
2.1. Where this standard applies
- OL-SCOPE-01 A screen that shows a leaf or an element type follows this page, wherever the leaf appears: a record page, a section card, a workbench pane, a dialog, a wizard step or a review.
- OL-SCOPE-02 Today that means the product pricing page and its product and global parameter dialogs, the engine run settings page, and the convention pages and the convention authoring journey. A screen for any other ORE document kind joins when it is built.
- OL-SCOPE-03 The page governs how a leaf and an element type are drawn and changed in place. It does not govern how a record is found, owned, bound, versioned or signed off.
2.2. Words
One word per idea. The first group are the words of this page and of the code; they are not printed on a screen. The second group are printed.
| Word | Meaning | On screen |
|---|---|---|
| Leaf | One value of one ORE document: an element or an attribute that holds a value, identified by its schema and its XPath | No |
| Element type | What a set of leaves belongs to: a product type, a group of engine run settings, a convention kind | No; the kind's own noun |
| Documentation entry | The one record of what a leaf means, in the ORE parameter contract | No |
| Value set | The values a leaf may take: a type, a closed list, a range or a catalogue of other ORE Studio data | No |
| Parameter | A leaf of a product, of the document's global parameters, or of a curve configuration | Yes |
| Setting | A leaf of the engine run settings, and of nothing else | Yes |
| Term | A leaf of a convention | Yes |
| Value in force | The value a run uses: the set value, or the default when the leaf is absent | Yes, as the value |
| Default | The value ORE uses when the leaf is absent | Yes |
| Documentation | What a leaf means, opened under the leaf | Yes |
| Simple, Advanced | How much of the documentation entry a screen shows | Yes |
- OL-WORDS-01 A screen names a leaf with its kind's noun: parameter, setting or term. Every other word in this page is the same on every screen. A sentence that carries the noun takes it as a value, so the sentence itself is the same.
- OL-WORDS-02 The word setting is never printed for a parameter or a term, as the configuration screen standard requires.
- OL-WORDS-03 The ORE name of a leaf, such as
FixedCalendar, is printed only where this page says so: under Advanced, and in place of a missing label.
2.3. The words a screen prints
These are the only words a screen prints for the ideas below. They live in one
translation namespace, oreParameter, and no screen keeps its own copy of them.
| Key | English | Where |
|---|---|---|
oreParameter.mode.simple |
Simple | The switch |
oreParameter.mode.advanced |
Advanced | The switch |
oreParameter.mode.label |
How much to show | The switch's accessible name (new) |
oreParameter.mode.simpleHelp |
The label, the value and what it means. | The tooltip on Simple (new) |
oreParameter.mode.advancedHelp |
Also the ORE XML path, the format, the options and the releases. | The tooltip on Advanced (new) |
oreParameter.documentation |
Documentation | The button under a closed leaf |
oreParameter.hideDocumentation |
Hide documentation | The button under an open leaf |
oreParameter.showAllDocumentation |
Show all documentation | The button over a section (new) |
oreParameter.hideAllDocumentation |
Hide all documentation | The button over a section (new) |
oreParameter.defaultIs |
Default: {value} | The line in the documentation, and beside a leaf that is not set |
oreParameter.defaultOption |
Default ({value}) | The first option of a control |
oreParameter.notSet |
not set | A group with no row |
oreParameter.required |
Required | The mark on a required leaf |
oreParameter.undocumented |
No documentation is held for {name}. | A leaf with no entry |
oreParameter.documentationUnread |
The documentation could not be read: {message} | The read failed |
oreParameter.schema.xml |
ORE XML | Advanced |
oreParameter.schema.format |
Format | Advanced |
oreParameter.schema.options |
Options | Advanced |
oreParameter.schema.introduced |
Introduced in | Advanced |
oreParameter.schema.removed |
Removed in | Advanced |
oreParameter.changed |
changed | The mark on a changed leaf |
oreParameter.noChanges |
No changes yet | The foot of a card in edit |
oreParameter.oneChange |
1 change | The foot of a card in edit |
oreParameter.changes |
{count} changes | The foot of a card in edit |
oreParameter.changesNumbers |
Changes the numbers | The label on a section, and the filter |
oreParameter.operational |
Operational | The label on a section |
oreParameter.filters.set |
Set in this configuration | The filter |
oreParameter.filters.numbers |
Changes the numbers | The filter |
oreParameter.filters.shown |
{shown} of {total} {noun} shown | The count beside the filters |
oreParameter.filters.none |
No {noun} matches the filters. | The filters match nothing |
oreParameter.source.ore_guide |
From the ORE guide | The source tag |
oreParameter.source.ore_code |
From the ORE code | The source tag |
oreParameter.source.authored |
Written for ORE Studio, to review | The source tag |
oreParameter.source.seed |
Carried over from the old seed, to review | The source tag (new) |
oreParameter.source.unknown |
Source not stated | The source tag |
- OL-WORDS-04 A word marked (new) was on no screen before this page; the owner chose it on 2026-10-26, as Decisions records. The others are already on at least one screen; this table picks one where two screens differ.
- OL-WORDS-05 A translation exists for every key in every language the web offers. A key with no translation is a gap, not a fallback to English.
2.4. The Simple and Advanced switch
The switch decides how much of the documentation entry a screen shows. It is
the same switch as the one on the feed screens, held in EditingMode.tsx.
- OL-MODE-01 The switch is a pair of buttons, Simple and Advanced, on the toolbar of the page or the pane that shows leaves. It is drawn once per page, not once per section.
- OL-MODE-02 The choice is one choice for the whole web application, kept in the browser. A new person starts in Simple. A person who picks Advanced stays in Advanced on every screen that offers it, feeds included.
- OL-MODE-03 Simple shows the row as Reading a leaf draws it. The documentation opens with the description and the default.
- OL-MODE-04 Advanced adds, inside the open documentation, the schema entry: ORE XML, Format, Options, Introduced in and Removed in.
- OL-MODE-05 The switch never hides a value, a control or a gap. It changes only how much of the documentation shows.
- OL-MODE-06 The switch's name and tooltips say what it does on the screen that draws it. On a screen of leaves they are the words above; on a feed they stay the feed's words.
- OL-MODE-07 A card or a dialog that a row opens carries the page's choice. It has no switch of its own.
2.5. Reading a leaf
A leaf is one row. The row is the same in a section card, a workbench pane, a dialog and a review.
- OL-READ-01 The row shows, in this order: the label, the marks (Required, Changes the numbers, changed), and at the right the value in force. The short help stands under the control in edit, and the description opens under Documentation.
- OL-READ-02 The label is the documentation entry's label, and it is the only label the row carries. Where there is no entry, the label is the ORE name and the open documentation says the entry is missing.
- OL-READ-03 The value in force is always shown. A leaf that is set shows its value. A leaf that is not set shows Default: X. A row never shows an empty value.
- OL-READ-04 A section lists every leaf its element type takes, set or not, because the default of a leaf the document leaves out is a value the run uses. A leaf the document does not hold is a row like any other, with Default: X.
- OL-READ-05 A flag shows Yes or No. A value from a closed list shows its words where the value set holds words, and the ORE value where it does not.
- OL-READ-06 A value that names other ORE Studio data, such as a calendar, an index or a sensitivity template, shows one line under it that says what the entry is, and is a link to that record when the screen has a page for it.
- OL-READ-07 A leaf that changes the numbers a run computes carries the Changes the numbers mark in its own row, whatever its section says.
- OL-READ-08 A leaf that ORE no longer reads, because its entry has a Removed in release, shows the release beside the value in Simple and Advanced, so a person does not rely on it.
2.6. The documentation under a leaf
- OL-DOC-01 The documentation is closed under every leaf. Documentation opens it and Hide documentation closes it, for that leaf alone.
- OL-DOC-02 Open, it shows the description, then Default: X. Under Advanced it adds the schema entry below a rule.
- OL-DOC-03 Show all documentation over a section opens it for every leaf of the section, and Hide all documentation closes it. A leaf the person opened or closed by hand follows the section button the next time it is pressed.
- OL-DOC-04 The documentation is the same panel everywhere, the shared
ParameterDocumentationPanel. A screen does not draw its own. - OL-DOC-05 The screen never holds ORE text. The label, the help, the description, the default, the format, the options and the releases come from the documentation entry, keyed by the schema and the XPath and, where the meaning depends on them, by the element pair.
- OL-DOC-06 The documentation validates nothing. It says what a value means; the value set and the write path say what a value may be.
- OL-DOC-07 In edit, a control that takes the focus opens the documentation of its leaf, so a person reads what a value means as they choose it.
2.7. The element type
An element type is what a person picks or opens before its leaves: a product type in the product pricing workbench, a convention kind on the conventions page.
- OL-ELEMENT-01 An element type opens with a card that says what it is: its label, its code under Advanced, its description, its asset class and the source tag.
- OL-ELEMENT-02 The card adds what the kind has that others do not. A product adds its instrument, and the model and engine with their own descriptions. A convention kind adds what it is used for, such as the curves it builds.
- OL-ELEMENT-03 The description is the curated text. Where there is none, the card says No description is held for this choice. and does not print a sentence made from the code.
- OL-ELEMENT-04 The asset class, the instrument and the grouping come from data. A screen does not hold a table that maps a kind to an asset class.
- OL-ELEMENT-05 A list of element types groups by asset class, in the order the data gives, and puts a type with no asset class under No asset class.
2.8. Where the words come from
- OL-SOURCE-01 A description, a model, an engine and an element type show the source of their words as a tag: From the ORE guide, From the ORE code, Written for ORE Studio, to review, Carried over from the old seed, to review or Source not stated.
- OL-SOURCE-02 The two tags that end to review are drawn in the warning tone, because a person wrote the words and a reviewer has not yet confirmed them.
- OL-SOURCE-03 Under Advanced, a leaf's documentation shows the source tag of its entry too.
2.9. The control
The control comes from the leaf's value set. Two leaves with the same kind of value set have the same control on every screen.
| Value set | Control |
|---|---|
| Flag | A select: Default (X), Yes, No |
| Closed list | A select: Default (X), then the values in the order the set gives, as OL-READ-05 shows them |
| Catalogue | A select or a search over that catalogue, such as calendars or indices, with Default (X) first |
| Integer or number | A number field, bounded by the set's range |
| Period | A text field that takes a period such as 3M, with the format under it |
| Text | A text field |
- OL-CONTROL-01 The first option of every select is Default (X), and it unsets the leaf. A field that is not a select is empty when the leaf is not set, with Default (X) as its placeholder, and emptying it unsets the leaf.
- OL-CONTROL-02 A control never offers a value the set refuses. A saved value that the set no longer holds is shown and marked, not added to the options as if it were valid.
- OL-CONTROL-03 Where a choice depends on another (a model on a product type, an engine on a model, an index on a currency), the control offers only the values that belong together.
- OL-CONTROL-04 The control is the shared one for its value set. A screen does not build its own select for a leaf.
2.10. Changing a leaf
The edit of a group, a collection row and a convention follows the record standard and the configuration standard. Within the edit, a leaf behaves the same everywhere.
- OL-EDIT-01 The documentation stays where it was in edit. Nothing hides it.
- OL-EDIT-02 A leaf whose value differs from the saved value shows changed. The foot of the card counts the changes: No changes yet, 1 change, {count} changes.
- OL-EDIT-03 A refusal from the server is shown on the leaf it names, in the server's words.
- OL-EDIT-04 A change that would drop a leaf, because a dependent choice changed, names the leaf before it is dropped.
- OL-EDIT-05 A section that changes the numbers says Changes the numbers, and an operational section says Operational, in view and in edit.
2.11. Filters
- OL-FILTER-01 A list of more leaves than fit on one screen offers two filters: Set in this configuration and Changes the numbers.
- OL-FILTER-02 Set in this configuration keeps the leaves the document holds a value for, a value equal to the default included, because a held value is written to the ORE document and an absent one is not.
- OL-FILTER-03 A filter is drawn only where the data can answer it. A Changes the numbers filter on leaves that carry no such mark is not drawn.
- OL-FILTER-04 A filter never hides a problem. A refusal on a leaf the filters hide is shown over the list, so Save is never refused with no reason in view.
- OL-FILTER-05 Beside the filters stands the count, {shown} of {total} {noun} shown, with the kind's noun.
- OL-FILTER-06 Filters that match nothing say No {noun} matches the filters. and leave the filters visible.
- OL-FILTER-07 The filters are the shared
ParameterFilters. A screen does not draw its own.
2.12. Gaps and states
A gap in the data is visible. A screen never hides a leaf because its data is missing.
| State | What the screen does |
|---|---|
| No entry | The ORE name as the label, the value, and No documentation is held for {name}. |
| No value set | A text field, and the leaf is listed in the coverage gap of the kind |
| Not set | Default: X as the value, and Default (X) chosen in the control |
| Group with no row | not set on the group; the engine uses the default of every leaf |
| Removed | The Removed in release beside the value |
| Documentation unread | The documentation could not be read: {message} over the section, and every value still shown |
- OL-STATE-01 A read of the documentation that fails does not stop the values from showing.
2.13. What this page leaves to the other standards
| Question | Settings document, such as pricingengine.xml |
Library document, such as conventions.xml |
|---|---|---|
| What a row is | A slot of one configuration, keyed by ORE's vocabulary | A named entry that other documents reference by name |
| Who owns it | The configuration | The party |
| Its reach | The reports that bind the configuration | The documents that name it, and the reports whose set holds it |
| Its page | The configuration screen standard | The record screen standard, for the entry |
These differ, so this page does not decide them. Inside either page, a leaf and an element type follow this page.
2.14. Conformance today
Measured on 2026-10-25 at dd50a72032 for engine run settings and product
pricing, and on 2026-10-26 for conventions, by reading
engineSettings/EngineSettingsRecordPage.tsx,
pricingEngines/PricingEnginePage.tsx, pricingEngines/parts.tsx,
ui/OreParameter.tsx, ui/EditingMode.tsx, refdata/conventions.tsx and
refdata/ConventionRecordPage.tsx in
projects/ores.web/packages/web/src/. This is the list of gaps to close. A
screen not yet running against this page was read, not driven; the harness has
not checked it.
| Rule | Engine run settings | Product pricing | Conventions |
|---|---|---|---|
| OL-WORDS-01: one namespace | Gap: the buttons, the default, the marks and the filter count use copies under engineSettings.* |
Meets for the documentation panel and the filters | Meets: the leaf words are oreParameter; the page words are refdata.conventions.record |
| OL-MODE-01: one switch per page | Gap: every group card draws its own | Meets: one on the toolbar | Meets: one, in the page header |
| OL-MODE-06: the switch's words | Gap: the tooltips are the feed's | Gap: the tooltips are the feed's | Meets: How much to show |
| OL-READ-01: help under the control in edit | Meets | Gap: the help is the control's hint, and the view has none | Meets: the help is under the control |
| OL-READ-02: one label, from the entry | Meets | Gap: in edit, and in the journey, the control carries a second label, the ORE name and scope | Meets |
| OL-READ-03: the value in force | Meets | Meets for a parameter the document holds | Meets for a documented term; an undocumented term the convention leaves out shows a dash |
| OL-READ-04: every leaf, set or not | Meets: every setting of the group is a row | Gap: only the parameters the document holds are rows; the defaults of the others cannot be read | Meets: every term of the kind is a row |
| OL-READ-06: what a catalogue value names | N/A | Meets for a sensitivity template | Gap: a value from a closed list shows its words; a catalogue value shows no line under it |
| OL-READ-07: the mark on a leaf | Meets | Gap: the pricing data holds no changes the numbers flag | Gap: the contract holds no changes the numbers flag for a term |
| OL-DOC-01: the leaf's documentation | Meets, with its own button | Meets | Meets |
| OL-DOC-03: the section's documentation | Gap: the words are Show documentation and Hide documentation | Gap: no section button | Meets: Show all documentation |
| OL-DOC-04: one panel | Meets: the shared panel | Meets: the shared panel | Meets: the shared panel |
| OL-DOC-05: no ORE text in the screen | Meets | Meets | Meets: 238 of the 301 terms the ORE parser reads are documented, and the rest show as undocumented |
| OL-DOC-07: focus opens the documentation | Meets | Gap | Meets |
| OL-ELEMENT-04: metadata in data | Gap: the groups are a constant in code | Meets | Meets: the asset class and the ORE element are on the kind, its terms are convention_kind_term rows, and the holder comes from the registry |
| OL-SOURCE-01: the source tag | Gap: none | Partial: a tag in the journey, a line of text on the page; no word for the seed | Gap: the contract holds no source per row, so no tag is drawn |
| OL-CONTROL-01: Default (X) first | Meets, for a select and as a number's placeholder | Gap: the select has no default option | Meets: the shared control, from the term's value set |
| OL-CONTROL-02: no value outside the set | Meets | Gap: a value outside the set is added to the options | Partial: a saved value the set no longer holds stays on the list unmarked; the database refuses it on save |
| OL-EDIT-02: the changed mark and the count | Meets | Gap: no mark on the leaf and no count in edit; the save dialog states the difference | Meets |
| OL-FILTER-02: what set means | Meets: the document holds a value | Gap: a value equal to the default is hidden as if it were absent | Meets: the convention holds a value |
| OL-FILTER-03: only a filter the data answers | Meets | Gap: Changes the numbers is drawn and filters nothing | Meets: Changes the numbers is not drawn |
| OL-FILTER-04: no hidden problem | Meets | N/A: no check by the leaf | Meets: a refused term stays in view under the filter |
| OL-FILTER-05: the noun | Meets | Meets: parameters | Meets: terms |
| OL-STATE: the undocumented words | Meets, through the shared panel | Meets, through the shared panel | Meets, through the shared panel |
Two unused keys hold other sentences for the undocumented state,
engineSettings.undocumented and pricingEngines.globals.noDocumentation. They
go when the words move into oreParameter.
Conventions edit their terms on the record page. A refusal of the value set check, which the database makes on every write, is shown on the term it names (OL-EDIT-03). A composite, the tenor basis swap, is read there and not changed, because its terms live on two parts.
The engine run settings page is the closer of the two: it fails mostly on words and on its own copies of shared parts. The product pricing page shares the parts, but its data cannot yet answer three rules, because a parameter is a name and a value held only when set: the leaves not set, the changes the numbers mark and the edit marks. The tasks that close these gaps are in Make every configuration screen follow one standard: the shared parameter list, control and edit lifecycle, the engine settings groups in data, the labels, domains and tabs from data, and the parameter data model as the source of valid values.
2.15. Where the rules came from
Five rules were taken from what the engine run settings page already does, after the first draft of this page, because the page does them better than the draft said: one label from the entry with the help under the control in edit (OL-READ-01, OL-READ-02), the mark on each leaf (OL-READ-07), focus opens the documentation (OL-DOC-07), Default (X) as a number's placeholder (OL-CONTROL-01), and a filter that never hides a problem (OL-FILTER-04). Two were added because the product pricing page showed a gap the draft did not name: every leaf is a row, set or not (OL-READ-04), and a filter is drawn only where the data answers it (OL-FILTER-03).
2.16. Decisions
Decided by the owner on 2026-10-26:
- A convention leaf is a term. The convention lists and the tenor journey already speak of a convention's terms; field is the record standard's word for any record and says nothing about ORE.
- The section button says Show all documentation and Hide all documentation. The section button and the leaf button never share Hide documentation. The engine run settings page changes from Show documentation.
- The switch is named How much to show on a screen of leaves. There it changes what shows; on a feed it keeps How to edit, because there it changes how a person edits.
- The fourth source tag says Carried over from the old seed, to review, in the warning tone, because no reviewer has confirmed it.
- A curve configuration's leaf is also a parameter, decided on 2026-10-26 with
Standardise the curve configuration's parameters on the one contract. The
contract that stores every leaf is
ore_parameter, and the configuration standard already defines Parameter as one leaf of an ORE document, so a curve family needs no word of its own. setting is reserved to the engine run settings, term collides with term structure, field says nothing about ORE, entry is already the row, and option and attribute name other things.
Still open:
- The short help in view. The configuration standard says Simple shows the short help. Neither built page does: the engine run settings page shows it under the control in edit, and this page follows it. If the owner keeps the help in view, OL-READ-01 changes and both pages gain a gap.
3. See also
- UX — the structure note that places this page in the reading order.
- Configuration screen standard — completes: that page states the reading of a group and a collection for a configuration; this page states the leaf once, with the exact words, so a convention term reads the same as a product parameter.
- Record screen standard — completes: a convention entry is a record page, and this page adds what its terms show inside it.
- Feed screen standard — contradicts: on a feed the Simple and Advanced switch changes how a person edits; here the same switch changes how much documentation shows. One remembered choice carries both meanings, and OL-MODE-06 gives each screen its own words for it.
- UX Language — completes: adds the words for a leaf, and the warning tone on the two source tags that a reviewer has not confirmed.
- How the pricing engine data is sourced and curated — completes: it names four sources for the words; this page gives the screen a tag for each, including the fourth, which no screen shows yet.
- Date Rolling and Business-Day Calendars — exemplifies: a convention term such as
FixedConventionorFixedCalendartakes a value from the catalogue that page defines. The convention models describe each term as a text field with an example such ase.g. ModifiedFollowing; OL-CONTROL makes it a choice from the catalogue, so a misspelt convention cannot be saved. - Make every configuration screen follow one standard — the story whose tasks close the product pricing and engine run settings gaps in the conformance table.
- Name the convention sets a report chooses — completes: the selection of conventions a report binds, which this page leaves to the configuration standard.