Trades Since Last In
Table of Contents
This page defines one report: Trades Since Last In. It answers which trades were booked since a stated date and time, so a desk reviews its own morning activity and sees what a colleague added to a shared book. It runs every fifteen minutes through the London trading day on weekdays, from the live cut, and a person may also start a run. The run leaves the engine's own output archive in storage, and a reader opens the CSV files in that archive, because the result store that would hold the trade list is not built.
1. Purpose
It answers which trades arrived in the book since a stated instant, how many there are, and how much notional they add. The answer feeds two decisions. A trader reads it to check that the morning's activity landed as intended. A middle office reader reads it to confirm that the book a colleague shares carries the trades both of them expect.
The report is a query over the trade store rather than an engine output. The
platform runs one report workflow for every report, and that workflow runs the
engine, so the definition binds an analytic that inspects the portfolio. The
catalogue classifies the methodology as audit-derived for the same reason. The
section "What is not built" states what the archive therefore cannot give.
2. Audience
| Role | What it takes from the report |
|---|---|
| trading-desk | Which trades the desk booked since the stated instant, and what notional they add. |
| middle-office | The same list for a shared book, read as a check that the bookings the desk made are the ones the office holds. |
3. Frequency
Cycle intraday. The definition is seeded with the expression */15 8-17 * * 1-5,
which fires it every fifteen minutes through the London trading day on weekdays,
and a person may start a run at any time. The product owner set that cadence on
2026-11-04. The concurrency policy is skip, so a firing that arrives while a run
of the same definition is in flight does not start a second run. The report belongs
to no ordered batch.
| Field | Value |
|---|---|
| Cycle | intraday |
| Frequency | on-demand, scheduled |
| Batch | none |
| Owner | trading-desk, middle-office |
The Owner row names the roles that read the report.
4. Inputs
- Trades selected by scope. The scope shape is
bookorportfolio, and the seeded run settings readGlobal Portfoliofor the entity. - A stated date and time, which the catalogue names as the start of the list. No seeded parameter states it, so no seeded run names the instant.
- Six configuration bindings, one for each configuration type. They are
conventions,curve_configuration,todays_market,pricing_engines,risk_report_configandengine_settings. A definition that omits one of the first five cannot run, because the engine reads all of them before it prices. - The run settings row
Portfolio details - Global Portfolio, which states the base currency, the market data typelive, the input and output paths and the log file. - The analytic
portfolioDetails, which is the only analytic the configuration binds. It inspects the portfolio and prices no trade.
5. Outputs
The run produces the engine's own output archive, and it records where that
archive landed against the run instance. It also records the cut the run minted,
with the cut's identity, its label, its kind and its instant. The archive holds
marketObjects.csv and riskFactors.csv, the two files that portfolioDetails
writes. Neither file holds a trade. The result store that would carry the trade
list is designed on
Report post-processing and
is not built.
6. Measures
The values below are the ones the business catalogue states this report carries. Their definitions belong to the measures catalogue on Risk reporting and are not repeated here.
| Measure | Meaning |
|---|---|
| Trade count | How many trades were booked since the stated instant. |
| Notional added | The notional those trades add to the book. |
| Trade identifiers | The identifiers of the trades themselves, which are the list the reader acts on. |
7. Columns and sections
The definition binds one analytic, portfolioDetails, and that analytic writes
two files. Both files hold names. Neither file holds a trade, a booking time, a
count or a notional.
| Column | What it holds |
|---|---|
| MarketObjectType | The kind of market object the book reads. It is the key of the file. |
| MarketObjectName | The name of one market object of that kind. |
| Column | What it holds |
|---|---|
| RiskFactorType | The kind of risk factor the book reads. It is the key of the file. |
| RiskFactorName | The name of one risk factor of that kind. |
The report's shape is a list of trades, one row for each trade booked since the stated instant. The list the reader needs carries a trade identifier, the booking date and time, and the notional. No file the analytic writes holds a trade identifier, a booking time or a notional, so the store does not hold the list. The report post-processing design lists the tables that would hold it, and those tables are not built.
8. ORE configuration
The run document is generated, not stored. The service builds it from the
definition's bindings and the run settings, in
run document generator.
The analytics appear in the configuration's display order, with their
parameters. The fragment below is the shape the generator writes for the
analytic, and it is trimmed from
external/ore/examples/Legacy/Example_74/Input/ore.xml.
<Analytic type="portfolioDetails"> <Parameter name="active">Y</Parameter> <Parameter name="riskFactorFileName">riskFactors.csv</Parameter> <Parameter name="marketObjectFileName">marketObjects.csv</Parameter> </Analytic>
The seeded ACME configuration binds portfolioDetails at display order 1 with
active set to Y. It states no parameter row for the analytic, so the file
names in the fragment are the sample's and not the seed's.
9. Parameters
The table states the rows a definition of this report carries. The mechanism is on ore parameter.
| Parameter | Domain | Seeded value | Meaning |
|---|---|---|---|
| cut_kind_code | a kind of cut | LIVE | The kind of cut the run mints when it starts. A LIVE cut is indicative. |
| schedule_expression | a cron expression | */15 8-17 * * 1-5 | When the definition fires: every fifteen minutes through the London trading day. |
| concurrency_policy | skip or queue | skip | What happens when a firing arrives during a run of the same definition. |
| scope_portfolio | a portfolio of the party | Global Portfolio | The subtree the run reads. |
| base_currency | ISO 4217 code | the entity's, GBP for the UK entity | The currency the figures are expressed in. |
| market_data_type | live, eod or date | live | The market data the run reads. A live run values the book at its start. |
| marketObjectFileName | a file name | none seeded, the sample sets marketObjects.csv | The file that carries the market object names. |
| riskFactorFileName | a file name | none seeded, the sample sets riskFactors.csv | The file that carries the risk factor names. |
10. A worked read
A person at the screen reads this report in the steps below. No run has produced rows, so the steps state what the reader does and what the archive would and would not give.
- Open the report instance and read the cut it minted. The label says indicative, and the cut instant is the upper bound of the period the reader wants.
- Recall the stated instant, which is the lower bound. No seeded parameter carries it, so the reader supplies it.
- Open the output archive and find the run's CSV files.
- Read the two files. They list the market objects and the risk factors the book reads, one row for each kind and one row for each name.
- Look for the trade identifiers the report states as a measure. Neither file holds one.
- Look for the booking timestamp of each trade, which is what decides whether a trade falls inside the period. Neither file holds one either.
- State the count, the notional added and the list of identifiers between the two instants. Until a trade list exists, the reader cannot complete this step.
11. What is not built
- The trade list is a query over the trade store, not an engine output. The definition runs the engine because the platform has one report workflow and that workflow runs the engine.
- The trades a run prices come from the gather step's portfolio, so the archive carries the priced trades and not the booking timestamps that the stated instant needs. This definition binds no analytic that writes a trade row, so the archive it leaves holds no trade at all.
- No seeded parameter states the date and time the list starts from.
- The ACME dataset holds no volatility market data. Its 420 seeded quotes are all
IR_SWAP/RATE/.... There is noFX_OPTION/RATE_LNVOLquote and no volatility surface configuration. so a volatility factor has nothing to shift, and no volatility sensitivity can be computed until the store holds that data. - The result store is not built, so a reader opens the CSV files in the archive rather than a table of rows.
12. Test coverage
No substitute is defined for this report, so a test run executes every phase. It
gathers trades and market data, assembles its own bundle, builds the run
document, submits the work and collects what comes back. The run stops where the
engine needs a volatility, and the refusal is recorded against the run instance.
The analytic the definition binds is also exercised by the engine's own sample,
external/ore/examples/Legacy/Example_74, which models this report's
configuration and output. The task that lit the report is
Light the intraday reports on the LIVE cut.
13. Related
- Reports is the inventory this page is listed in.
- Risk reporting carries the classification taxonomy and the measures catalogue.
- Spike Map is a report read on demand from the live cut.
- Strike Map reads the book by strike and tenor.
- Report execution pipeline states the phases every run goes through.
- Report post-processing designs the tables that would hold the trade list.
- The cut is the body a run prices from states what a LIVE cut holds.
- Report definition and schedule states the definition fields and the schedule.
14. See also
- Report families — the structure note that orders this cluster, and where to read this page in it.
- Open Source Risk Engine is the engine whose
portfolioDetailsanalytic writes the two files.