See the engine run settings a party holds prototype

Table of Contents

Item Where
Prototype the prototype
Gemini review the review
Group Reporting prototypes

1. Summary

This prototype draws the list of engine run settings configurations and the page of one. It keeps its earlier file name; the screen it draws is Engine run settings. It answers to the design in the story See and change everything a report runs: the engine settings leave the run settings and become a named configuration that reports bind, as they bind the pricing engines.

The list and the page are the ones the pricing engine configurations use, so a person who knows one knows the other. The two are named apart: this one decides how the run behaves, and the product pricing page decides which model and engine price each product. This page does not link to it: a shared configuration explains its own job, and the report page is where the two meet. The list has the standard bar and the four states. The page has six tabs: Details, one tab for each of the three groups, Used by and History.

It is throwaway. It reads no service and writes nothing to one.

To see the page without anything that belongs to the prototype, add clean=1 to the address. That hides the banner, the bottom bar and the dashed notes.

2. Detail

2.1. The question the screen answers

"Which settings does the engine run my reports with, and which reports share them?" The list finds the configuration. The page shows one group on each tab, and the Used by tab shows who is reached by a change.

2.2. Only documented settings

The prototype describes a setting only when the ORE user guide describes it, and it holds every documented engine setting. A setting that appears in the sample files or in the source, and not in the guide, is left out. Where the guide and the source disagree, the source wins, so the defaults on the screen are the source's.

Eleven of the 19 settings that the model stores today are in the guide. The other eight are not: accrualDate, fixingCutoff, dateCalendar, dateConvention, defaultMappingToIdentity, useAnalytics, csvCommentReportHeader and additionalResults as a Setup parameter. Four documented settings are new: useAtParCouponsCurves, useAtParCouponsTrades, ignoreFixingLead and gzipCompressionLevel.

The 15 settings fall into three groups. Fixings and cash flows holds six. Market and trade building holds six. Execution holds three. The groups Dates and Report output of the earlier design hold no documented setting, so they are gone.

2.3. Reading and changing

A person uses the page in two ways, and the page serves both.

Reading. The group tab lists each setting with its value. A setting that is not set shows the default that the engine uses, such as "Default: Yes", so the value in force is always visible. The documentation is collapsed under each setting. A button on the card opens or closes all of it.

Changing. Edit turns the card into a form in place. There is no dialog, so nothing hides the documentation. Each setting becomes a control, and its first option is "Default (Yes)", which unsets it. Focusing a control opens the documentation of its setting. A setting that differs from the saved value is marked, with a count of the changes at the foot of the card. The foot says how many reports the section reaches. A section that changes the numbers, on a configuration a report binds, offers Propose a change: Save submits a proposal for the next version, the version in force stays in force until the sign-off completes, and the person who proposed it cannot sign it off. An operational section offers Edit and writes directly with a reason and a history entry. A configuration no report binds writes directly in every section. Cancel leaves the card as it was.

2.4. The group tabs

Each tab holds one section, as one card. The card says whether the section changes the numbers a run computes or is operational, and shows its own version. A numbers-changing section on a bound configuration shows a pending proposal as a banner. A setting that changes the numbers carries a label for it. A group with no row shows "not set", and the engine uses its default for every setting in it.

2.5. Simple and Advanced

The switch is the one the feed screens use, and the choice is remembered for every screen that offers it. Simple shows the setting and its documentation. Advanced adds the documentation entry inside the expanded documentation: the ORE XML location, the release that introduced the setting, the release that removed it, and the format. The release that removed a setting is empty for a setting that ORE still reads.

2.6. The documentation entries

The documentation of a setting is data of its own, apart from the settings. It is documentation only. The type, the range and the validation of a value stay with the data model. The screens look an entry up by the name of the setting. An entry relates to the ORE file it belongs to, such as ore.xml.

The entries hold no table of values. A value that the model already knows as an entity, such as a calendar or a business day convention, is bound to that entity by the control, and the description gives examples. A closed list of values that belongs to one setting, such as the observation model, is explained in the description, and the control offers the list. Where the list needs an entity of its own is a question for the data model.

The same entry shape serves every ORE document. The conventions, the pricing engines, today's market, the curve configuration and the analytics all have named elements and parameters that need the same facts. This prototype draws the Setup block only.

2.7. The engine build

The prototype shows no engine build and no warning about one. A report does not state the ORE build it runs on. The compute submit handler picks the build with the highest engine version at the time of submission. A warning that a setting is newer than the build needs a build that the data model holds, so it waits for the data model. The Introduced in and Removed in entries are the whole of the version documentation.

2.8. History

The History tab is the shared timeline. A change to a section is one entry that names the section and its part version. The entry also moves the version of the whole configuration, because a write to any part makes the next version of the central row. A proposal that waits shows at the top and is not a version in force. Revert is offered on every entry that is not current and writes the values the section had before as a new version; on a numbers-changing section the revert is a proposal.

2.9. States and switches

  • ?screen=list and ?screen=record&id=e1|e2|e3&tab=details|fixings|building|execution|reports|history. e1 is the standard settings that twenty HK reports share. e2 has four threads and serves two reports. e3 is a trial that no report binds.
  • ?state=all|empty|error|loading for the four list states.
  • ?actor=viewer|analyst|admin. A viewer reads, an analyst adds and edits, and only the administrator deletes.
  • ?mode=simple|advanced sets the switch. ?clean=1 hides the prototype furniture. ?edit=fixings|building|execution opens that group in edit mode.
  • Delete is refused while a report binds the configuration.

2.10. What is fake

The report names are the real names of ACME Corporation HK Ltd, and the five values the standard settings set are the ones the seed writes today. The third configuration, every history entry and every count in the list are fixtures. No operation lists the reports bound to one configuration, and no operation returns a group count for a list row.

2.11. What the prototype does not draw

  • The import warning. The importer drops a Setup parameter that the model does not hold, such as fixingCutoff, and warns, naming it, that the numbers may differ from the original run.
  • The Add, Revert and Delete dialogs keep the standard form, and the engine settings page is the only place that edits in place.

2.12. What it does not settle

  • The wording of the documentation is drawn from the ORE user guide, with the release numbers measured from the ORE source. A reviewer who knows ORE should read the descriptions.
  • Where the target ORE build lives in the data model, so that the screen can warn about a setting the build does not read.
  • The approval parts of a numbers-changing section. The prototype lets an analyst propose and names no parts. Model risk confirms them.
  • The flags are drawn as Yes and No. ORE accepts every spelling, so the model can store booleans. Whether the projection writes true or Y is still open in the story.
  • Whether the list should show the groups that are set, or only the count.

3. The Gemini review

The review is the generated Gemini file, kept as it was produced in gemini-dashboard.html. It loads Tailwind, Lucide and Chart.js from public CDNs without a pinned version, so it needs a network to draw.

It draws one page for one configuration: a sidebar of categories, a bar of filter chips, and one table of settings. Each row has an inline control and a drawer with the documentation and a schema panel. A Simple and Advanced switch hides the ORE XML column.

What the prototype takes up from it:

  1. The schema panel. The drawer shows the ORE XML path, the release that introduced the setting, the release that removed it and the format, in one block. The prototype shows the same four entries inside the expanded documentation.
  2. The two filter chips. "Changed from default" and "Numbers impact" answer the question a reader asks of a long list.
  3. A count of the changes not yet saved, kept in view while a person edits.

What it does not take up:

  1. Settings that ORE does not have. The review adds inflationLagMonths and intradayFallbackMode to the Setup block, and a category named Sensor Management. No ORE release reads them. The prototype holds only settings that the guide documents and the source reads.
  2. Counts that do not agree. The sidebar says 5, 12, 8 and 4 settings, and the table holds five in all.
  3. Release numbers that were not measured. The review gives v1.8.0.1 as the release of includeTodaysCashFlows. The measured release is 1.8.13.0.
  4. A sidebar next to a tab bar. Both name the same groups, and the tab bar does not switch anything.
  5. Invented figures. A "±0.042% variance" chart and an engine named Intraday-v2.8.4 are fixtures with no source.
  6. The word "intraday". The file name and the title use it, and nothing in an ORE engine setting is intraday.

4. See also

Emacs 29.3 (Org mode 9.6.15)