Task: Cover the no-sample families with synthetic data
Table of Contents
This page documents a task in the Model every output ORE writes story. It captures the goal, current status, acceptance, and any notes or results.
1. Goal
Every output the seed names is read, from a checked-in sample or from a synthetic fixture that states what its writer writes.
2. Status
| Field | Value |
|---|---|
| State | DONE |
| Parent story | Model every output ORE writes |
| Now | Nothing. |
| Waiting on | Nothing. |
| Next | Nothing. |
| Last touched | 2026-11-02 |
3. Acceptance
- Every output the seed names is a family with a sample, real or synthetic, or is stated out of scope with a reason, and the generator refuses one that is neither.
- A synthetic fixture's columns come from the writer that produces it at ORE v1.8.17.0, and each fixture names its writer.
- The catalogue marks a family whose only fixture is synthetic, so a reader can tell a sample ORE shipped from one we wrote.
- The corpus gate reads a synthetic fixture exactly as it reads a sample, and fails when a family has neither.
4. Plan
The seed names 44 output files; 27 had no family. The writers at ORE v1.8.17.0 (3d75a6908, the version the project vendors) sort them:
- Real samples outside the suites.
runtimesandscenariodumpare in the notebook examples,timeaveragedexposurein the legacy ones, andpricingstatsis captured from a run here. Each source is read for the named families only, because the notebooks and legacy examples repeat the suites. - Synthetic.
crif,capital_crif,sacva_sensitivity,jacobiandjacobi_inversehave a writer and no sample; each fixture states its writer's columns in order, with two rows, and the catalogue marks it synthetic. - Other names. A report the run configuration does not name is written under
the engine's report name:
cashflow.csvis flows andsaccrdetail.csvis saccr_detail, which a run here wrote and the catalogue missed. The seed names the initial margin files.txt. A family now carries alias patterns. - Stems.
pca.csvandmeanReversion.csvare written per currency, as the pca and mean-reversion families already match. - No writer. crossgamma, productclass_mapping, creditcurves, parsensi, the aggregation scenario dump and the xvaSensitivity jacobi names are parameters no code reads at v1.8.17.0.
- Not a report. The
.datfiles are binary data the engine reads back; the.csv.gzcubes are compressed copies of what rawcube and netcube state as text. - Text-valued. additional_results, marketObjects, riskFactors and the calibrated model's XML have no figure, so no reader here holds them. They are a new task, Store the text-valued outputs.
The generator states each out-of-scope file with its reason and refuses a seed output that is neither a family nor stated, so the list cannot drift.
5. Measurements
Every number this task claims about a tree, with the command that produced it
and the commit it was measured at. A number without both is not a measurement,
because a clean-up record describes a tree and trunk moves under a branch: a
consumer count, a gate's component count and a suite's size all change with no
code changing, and the reader of a bare number cannot tell which tree it came
from. Where the raw output matters, put it in an evidence/ file beside the
task and name that file in the Command column.
| What | Value | Command | Commit |
|---|---|---|---|
| Catalogue families | 72, 5 synthetic; every seed output covered or excused | python3 projects/ores.ore/scripts/generate_output_catalogue.py |
af7009a36c |
| ore core suite | 480 cases pass | ores.ore.core.tests |
af7009a36c |
| marketdata, reporting core suites | 365 and 246 cases pass | ores.marketdata.core.tests, ores.reporting.core.tests |
af7009a36c |
| Group Consolidated Exposure run | completed; npv 36, pricingstats 219 and runtimes 45 figures, saccr 2, 2 quotes; cashflow.csv, saccrdetail.csv and capital_crif.csv read with headings only | instance fd8bccd5, SQL | af7009a36c |
6. Notes
7. Test Scenarios
Manual QA scenarios (scaffolded via compass add test_scenario)
that verify this task. Link
new ones here as they're created; the scenario doc itself links back
via its "Verifies task" field.
| Scenario | State | Notes |
|---|---|---|
8. PRs
| PR | Title |
|---|---|
| #4376 | [ore] Prove every output the seed names, or say why not |
9. Review
| # | Comment summary | File | Decision | Notes |
|---|---|---|---|---|
| 1 | Local review: spelling check over the changed files | Clean | ||
| 2 | fnmatch imported out of order | generate_output_catalogue.py | Accepted | Sorted. |
| 3 | The generator's fnmatch and the C++ matcher could disagree; dim_evolution.txt untested | results_output_catalogue_tests.cpp | Accepted | The C++ test now finds every alias, dim_evolution.txt included. |
| 4 | Say that dim_regression*.txt also matches the bare name | generate_output_catalogue.py | Declined | The seed names dim_regression.txt and the engine takes a list of names; the pattern is meant to match both. |
| 5 | The out-of-scope reasons cite v1.8.17.0 and nothing re-checks them | README.org, generate_output_catalogue.py | Accepted | Both say to re-check the writers and the reasons when the vendored ORE moves. |
| 6 | Synthetic fixtures prove columns, not figures; the synthetic test names five codes | No change | Stated in the PR and marked in the catalogue. | |
| 7 | Run compass check | PR | Declined | The operator asked for builds and tests instead; the new org files carry ids. |
10. Result
Every output the seed names is a family with a sample or is stated out of scope
with its reason, and the generator refuses one that is neither. The catalogue
gained nine families: four from real samples outside the suites (runtimes,
scenariodump, timeaveragedexposure, and pricingstats captured from a run here)
and five from fixtures written from their writers at ORE v1.8.17.0, marked
synthetic. A family now carries the other names it is written under, which fixed
a gap a run here showed: cashflow.csv and saccrdetail.csv were left unread. A
run now stores its pricing statistics and run times too. The four text-valued
outputs moved to a new task, Store the text-valued outputs.