Story: Publish the ACME reports ready to run

Table of Contents

This page documents a story in Sprint 27. It captures the goal, current status, acceptance criteria, and the tasks that compose it.

1. Goal

Publish the static inputs an ACME risk report needs through DQ datasets with declared dependencies, so a clean provision leaves every report definition bound to its shared configuration, with its analytics and parameters, and the export names every ORE file from the file types table.

2. Status

Field Value
State DONE
Parent sprint Sprint 27
Now Nothing.
Waiting on Nothing.
Next Nothing.
Last touched 2026-10-13

3. Acceptance

  • Each configuration kind the risk report type requires (pricing engines, today's market, curve configuration and conventions) and the run settings has a DQ staging table generated from its domain entity, an artefact type and a publish function.
  • Each ACME party publishes a dataset per kind with declared dependencies, and after a clean provision every definition binds five configurations, with no ORE import step.
  • The risk report configuration is a named, shared, party-owned entity a definition binds by name, and a configuration with no analytic is refused.
  • The analytics and their parameters, the run choices and the market bindings belong to the configuration, and the run document is built at export.
  • The file types table is seeded from the ORE samples, and the export and the run store name every file from it.
  • All 78 ACME definitions export a run configuration that validates against the ORE schemas.

4. Tasks

Task State Start End Description
Design the configuration documents each ACME party needs ABANDONED     Decide, for each party and each report it runs, the pricing engines, today's market, curve configuration and conventions it needs. Craft them for Acme's own reports, inspired by the ORE samples, and record the reason for each choice.
Publish the pricing engines documents through DQ ABANDONED     Add the DQ staging, dataset and publish function for the pricing model configuration with its products and parameters, and publish each party's document.
Publish the today's market documents through DQ ABANDONED     Add the DQ staging, dataset and publish function for the today's market configuration with its entries and collections, and publish each party's document.
Publish the curve configurations through DQ ABANDONED     Add the DQ staging, dataset and publish function for the curve configuration with its sections and curve configs, and publish each party's document.
Publish the conventions as a configuration document ABANDONED     The instrument conventions already publish as a party dataset. Give each party the conventions document the report type requires, so the definition can bind to it.
Publish the report definitions with their bindings ABANDONED     Publish each definition with its bindings to the four configuration documents, with a dataset dependency on the configuration datasets.
Publish the risk report configurations for the ACME parties ABANDONED     Publish a risk report configuration for every ACME definition, with its party's base currency and a scope that resolves to books, without any ORE import.
Store the report configuration documents in DQ and populate ACME's DONE 2026-10-11 2026-10-12 Add the DQ staging and publish for every configuration document an ACME report reads, then populate ACME's own datasets so each report definition publishes with all the configuration it needs, with no ORE import.
Attach the analytics and their parameters to the configuration DONE 2026-10-12 2026-10-12 Replace the sixteen analytic switches of the risk report configuration with analytic rows and parameter rows on the configuration, and publish them through DQ.
Add the ORE file types table with well known names DONE 2026-10-12 2026-10-13 Add a lookup of every kind of ORE file with the well known name it carries in the ORE samples.
Name every ORE file from the file types table DONE 2026-10-13 2026-10-13 Make the export and the run document builder look up each file name in the file types table, and resolve parameters that name an input document from the bindings.

5. Decisions

The remainder is carried in Complete the ACME report inputs and prove they run.

Taken with the product owner on 2026-10-11:

  • The configuration documents are Acme's own crafted data, inspired by the ORE samples. They are not ORE import data, and no ORE import step exists.
  • Publishing leaves every report ready to run. Exporting the configuration to ORE happens when a job runs and is not part of publishing.
  • The publish order is the configurations, then the report definitions with their bindings, then the risk report configurations. Each dataset declares its dependency on the one before.
  • All the static data a report needs is published through DQ datasets with dataset dependencies. Market data comes from the feeds.
  • Trades are out of scope.

Taken on 2026-10-12:

  • A risk report configuration is a named, shared, party owned entity that a definition binds by name. Its DQ staging is generated from the domain entity.
  • The run document is built at export from the configuration and the bindings. It is not stored.
  • The analytics and their parameters belong to the configuration, not to a report. Their entities carry no report_ prefix. This is the task "Attach the analytics and their parameters to the configuration".
  • The files an ORE run names have well known names. A table of file types holds them, the export looks every name up in it, and a configuration repeats none. A file may be split by a key, which is not a day one requirement.

The rules and the reasoning are in the sprint 27 investigation Which reports each ACME party runs, rules D15 to D17.

Relations to other work:

  • The story Make the ACME data realistic and isolate the ORE samples reworks the portfolio trees, the currencies and the feeds. This story needs the trees, because a report's scope names their branches.
  • The backlog task "Configure every seeded report from the ORE examples" in the grid story assumes the configuration comes from ORE examples. That assumption is rejected here, so that task should be closed in favour of this story.

6. Out of scope

Emacs 29.3 (Org mode 9.6.15)