The analytics component¶
A job asked of it and its answer, each figure with how it was computed and what was not evaluated, the measures it defines, and the batches it routes to a pricing plugin. This is its data dictionary today: one entry for every field of its messages a plugin meets, saying what the field is for, what a value means and does not mean, what empty means, who fills it, its bounds and the operations a write must carry it on. Each entry is anchored by its name, the name a refusal's path resolves to and a declaration names, which never changes.
Its messages are declared in meridian/v1/analytics.proto, meridian/v1/scenarios.proto. A field's entry is the same whatever carries it: a typed operation's parameters take the entries of the message they are made from.
RunJobRequest¶
meridian.v1.RunJobRequest, a message.
job¶
message Job · preview
Carries the job a client asks (W12.1).
- Means: what to compute, over which accounts, against which inputs, named by reference
- Does not mean: a record: a job changes nothing
- Empty: never unset
- Filled: as-reported, by
plugin
Job¶
meridian.v1.Job, a message.
account_ids¶
repeated identifier account · preview
Names the accounts a job is over (W12.1).
- Means: each in the client's read scope, which the sidecar stamped on the request; one outside it is refused naming it, and all are read at one watermark
- Does not mean: an account group, which a client expands itself
- Empty: never empty
- Filled: as-reported, by
plugin
inputs¶
message InputRefs · preview
Names a job's inputs by reference (requirement 3).
- Means: the book's watermark, the lake's as-of and source choice, one for the whole job
- Does not mean: the inputs' values, which the component reads itself
- Empty: unset reads the book now, the lake now and the deployment's default sources
- Filled: as-reported, by
plugin
measures¶
repeated message MeasureRef · preview
Names the measures a job asks for.
- Means: each a definition and version the component serves, with its breakdowns
- Does not mean: a measure's parameters, which its definition fixes
- Empty: never empty
- Filled: as-reported, by
plugin
what_if¶
message WhatIf · preview
Adds trades to one account's positions (W12.5).
- Means: the trades, priced at their stated price or the job's as-of price; each figure answered before and after
- Does not mean: a proposal: a what-if trade is never a book record unless proposed
- Empty: unset for no what-if
- Filled: as-reported, by
plugin
business_date¶
date · preview
Asks for a job as of a business date (W12.1).
- Means: ISO 8601 in the deployment's time zone: the book at that date's end, the last watermark recorded on or before it, and the lake at that date's closes, each in its dataset's own day; set beside inputs.book_at or inputs.lake_as_of_ns, or after today's date, it is refused INVALID_ARGUMENT naming business_date
- Does not mean: a recorded-time cut-off, which inputs.lake_as_of_ns is; or a valid time
- Empty: empty for now: the book now and the lake now, as of the time read
- Filled: as-reported, by
plugin
reporting_currency¶
identifier instrument · preview
Names the currency a job's figures are converted to (W12.1; approved 2026-10-19).
- Means: a currency's cash instrument by its
INS-ID; each account's figures converted to it through the lake's rates, each leg named in the provenance - Does not mean: an ISO 4217 code, or an account's base currency, which it overrides only for this answer
- Empty: empty answers each account in its base currency
- Filled: as-reported, by
plugin
chains¶
repeated message ChainRef · preview
Names chains a job prices.
- Means: each an underlying, an expiration window or series keys; series not held are priced from their chain rows, never minted (ruling 561)
- Does not mean: accounts
- Empty: none: the job is over its accounts alone
- Filled: as-reported, by
plugin - Bounds: at most 64 items; past it, refused
scenario_set¶
message ScenarioSet · preview
Carries a scenario set inline, unsaved (the one-API spec's Q20).
- Means: the axes the engine generates the points from; the answer's hash covers it
- Does not mean: a saved scenario, which scenario_ref names
- Empty: unset: no inline scenario
- Filled: as-reported, by
plugin
scenario_ref¶
message ScenarioRef · preview
Names a saved scenario or set.
- Means: its row key and version in the lake (W12.8); refused beside scenario_set
- Does not mean: an inline set
- Empty: unset: no saved scenario
- Filled: as-reported, by
plugin
standing¶
boolean · preview
Asks the component to keep a job's answer current (W12.1; approved by 834).
- Means: true: a standing job, keyed by its canonical form and its client's resolved inputs, computed once for every client with that key and recomputed as its inputs change, each measure by its refresh, while a renewal names it (W12.4); its inputs are live, so naming inputs.book_at, inputs.lake_as_of_ns, business_date or what_if is refused INVALID_ARGUMENT naming standing, and one past the deployment's most standing jobs is refused FAILED_PRECONDITION naming standing
- Does not mean: a record: a standing job's figures are published and never recorded; or a subscription, which SubscribeRequest.job_ids opens
- Empty: false: a one-off job, answered once
- Filled: as-reported, by
plugin
InputRefs¶
meridian.v1.InputRefs, a message.
book_at¶
message Watermark · preview
Names the book's watermark a job reads at.
- Means: a sequence per account partition; every account of the job is read at it, so a firm-wide figure is one cut
- Does not mean: a business date
- Empty: unset for now, which the component resolves to the watermark it read
- Filled: as-reported, by
plugin
lake_as_of_ns¶
moment · preview
Names the lake's recorded-time cut-off for a job.
- Means: rows recorded at or before it, as the lake's reads take as_of_ns (W10.6)
- Does not mean: a valid time or a business date
- Empty: 0 for now, resolved to the as-of read
- Filled: as-reported, by
plugin - Unit: nanoseconds since the epoch
sources¶
message SourceChoice · preview
Names the sources a job's prices come from.
- Means: the lake's source choice: the default with its failover, named datasets, or side by side
- Does not mean: an entitlement: the client's own decide what is read
- Empty: none set is the deployment's default priority
- Filled: as-reported, by
plugin
MeasureRef¶
meridian.v1.MeasureRef, a message.
definition¶
text · preview
Names a measure's definition.
- Means: market_value, exposure, concentration, pnl, historical_var, expected_shortfall, resolution_payoff or implied_distribution in v26, as ListMeasureDefinitions answers; pnl version 1 is Unrealized P&L alone, each bucket's market value less its open lots' cost under the breakdown component. From v27, pnl version 2 answers realized P&L beside unrealized under the breakdown component, realized being each closed lot's proceeds less its cost as the book records them, a lot with no recorded cost not evaluated; and execution_cost version 1 answers each execution's cost against each benchmark it can be measured against, in bps, aggregated per account by benchmark (W12.1)
- Does not mean: a formula a client supplies
- Empty: never empty
- Filled: as-reported, by
plugin
version¶
integer · preview
Names the definition's version.
- Means: 1 or more; an answer names it back, and a published version never changes
- Does not mean: the component's version
- Empty: never zero
- Filled: as-reported, by
plugin - Unit: a definition's versions
breakdowns¶
repeated text · preview
Says what to break figures down by.
- Means: each a breakdown the definition allows: account, asset_class, currency, instrument, sleeve, country, or a scheme the deployment holds; a scheme it lacks is not evaluated
- Does not mean: a filter on positions
- Empty: empty for one figure per account
- Filled: as-reported, by
plugin
event_group_id¶
text · preview
Names the event group an event measure is over (W12.3).
- Means: an EventGroup's ID, read at the version in force at the job's as-of
- Does not mean: a member instrument
- Empty: empty for a measure over positions
- Filled: as-reported, by
plugin
refresh¶
enum Refresh · preview
Says when a standing job recomputes a measure (W12.1; the field and its two values approved by 834; the enum's name approved 2026-11-09).
- Means: the plugin's declaration per figure (803), which wins over a definition's default (the step 3 plan's question 12): FX crosses and spreads and options' IV and greeks per change; realised volatility, correlation, fits, positioning and the volatility index on a cadence
- Does not mean: a one-off job's timing, which never recomputes
- Empty: unspecified: the definition's default
- Filled: as-reported, by
plugin
| Value | Means |
|---|---|
REFRESH_UNSPECIFIED |
the definition's default refresh; where the definition states none, refused INVALID_ARGUMENT naming the measure's refresh (ruled 2026-11-09); read only on a standing job's measure |
REFRESH_PER_CHANGE |
recomputed at once when an input it depends on changes, conflated per key |
REFRESH_CADENCE |
recomputed every cadence_ns, or sooner on a material move |
cadence_ns¶
integer · preview
Says how often a cadence measure is recomputed (W12.1; approved by 834).
- Means: the least time between two recomputations of a dirty cadence figure, unless a material move comes first
- Does not mean: a lease, or how often the inputs are read: a standing job hears its inputs as they change
- Empty: 0: no cadence; set only with REFRESH_CADENCE
- Filled: as-reported, by
plugin - Unit: nanoseconds
material_move_bp¶
integer · preview
Recomputes a cadence measure early on a material move (W12.1; approved by 834).
- Means: a move of the underlying's reference price since the last fit, in basis points, at or past which a dirty cadence figure recomputes before its cadence
- Does not mean: a move of the figure itself
- Empty: 0: no material move; the cadence alone
- Filled: as-reported, by
plugin - Unit: basis points of the underlying's reference price
WhatIf¶
meridian.v1.WhatIf, a message.
account_id¶
identifier account · preview
Names the account a what-if adds trades to.
- Means: an account of the job
- Does not mean: an account the trades are booked to
- Empty: never empty
- Filled: as-reported, by
plugin
trades¶
repeated message WhatIfTrade · preview
Lists the trades a what-if adds.
- Means: each an instrument, a side, a quantity and a price or none
- Does not mean: orders
- Empty: never empty
- Filled: as-reported, by
plugin
WhatIfTrade¶
meridian.v1.WhatIfTrade, a message.
instrument_id¶
identifier instrument · preview
Names a what-if trade's instrument.
- Means: the deployment's record, followed through its replacement
- Does not mean: a venue's symbol
- Empty: never empty
- Filled: as-reported, by
plugin
side¶
enum Side · preview
Says whether a what-if trade buys or sells.
- Means: the order's sides, as an order states them
- Does not mean: an execution's side
- Empty: never unspecified
- Filled: as-reported, by
plugin
| Value | Means |
|---|---|
SIDE_UNSPECIFIED |
refused |
SIDE_BUY |
adds the quantity |
SIDE_SELL |
removes the quantity |
SIDE_SELL_SHORT |
removes the quantity below zero |
SIDE_SELL_SHORT_EXEMPT |
removes the quantity below zero, exempt |
quantity¶
Decimal · preview
States a what-if trade's quantity.
- Means: units of the instrument, greater than zero
- Does not mean: a notional
- Empty: never unset
- Filled: as-reported, by
plugin - Unit: units of the instrument
- Bounds: 0 to 18 decimal places; at most 38 significant digits; past it, refused
- Required on:
RunJob
price¶
Money · preview
States an assumed price for a what-if trade.
- Means: the price of one unit, naming the asset it is in
- Does not mean: a limit
- Empty: unset for the price at the job's as-of
- Filled: as-reported, by
plugin - Unit: the major unit of the asset the Money names, per unit
RunJobReply¶
meridian.v1.RunJobReply, a message.
answered_inline¶
boolean · preview
Says whether the answer is in the reply (Q5).
- Means: true when the component answered within the request's deadline; false when it answers later, the client hearing JobFinished
- Does not mean: a failure
- Empty: false when the job finishes later
- Filled: decided, by
analytics
job_id¶
identifier message · preview
Names the job.
- Means: JOB- and a ULID, never reused; a later answer is read by it
- Does not mean: a record's ID: a job is not a record
- Empty: never empty
- Filled: minted, by
analytics
answer¶
message JobAnswer · preview
Carries the answer inline.
- Means: the figures, what was not evaluated and why, and the provenance; always whole, an answer past a page's budget answered later and read in pages (ruling 794)
- Does not mean: a record
- Empty: unset when answered later
- Filled: decided, by
analytics
JobAnswer¶
meridian.v1.JobAnswer, a message.
job_id¶
identifier message · preview
Names the job answered.
- Means: as RunJobReply.job_id
- Does not mean: a record
- Empty: never empty
- Filled: decided, by
analytics
figures¶
repeated message Figure · preview
Carries the figures.
- Means: each a measure's value or weight for an account and breakdown, under a scenario
- Does not mean: a verdict, which compliance decides
- Empty: empty when nothing was evaluated
- Filled: decided, by
analytics
not_evaluated¶
repeated message NotEvaluated · preview
Lists what was not evaluated, and why (requirement 9).
- Means: a position or a measure with its reason; never answered as zero
- Does not mean: an error
- Empty: empty when everything was evaluated
- Filled: decided, by
analytics
provenance¶
message AnswerProvenance · preview
Says what the answer was computed from (requirement 4).
- Means: the inputs by reference, the implementations and versions, and the answer's hash
- Does not mean: a record
- Empty: never unset
- Filled: decided, by
analytics
values¶
repeated message DerivedSeries · preview
Carries a standing job's figures keyed by subject and series, as its events carry them (W12.4; contract v30, approved 2026-11-09).
- Means: each a DerivedSeries as DerivedSeriesUpdatedEvent.values carries it — its rule the definition and version, its inputs the datasets and the as-of each was read at — set only for a standing job, so a catch-up after a gap or a loss marker returns what the events carry; read in ReadJobAnswer's pages, the figures first, then these, then what was not evaluated
- Does not mean: a recorded row: published, never recorded; or a one-off job's figures, which figures carries
- Empty: none for a one-off job, and for a standing job none of whose figures is keyed by subject and series
- Filled: decided, by
analytics
next_cursor¶
text · preview
Says where the next page of a job's answer starts.
- Means: opaque: ReadJobAnswer's cursor for the page after this one, of this job alone
- Does not mean: a count of the figures
- Empty: empty when nothing follows, and on an answer given inline, which is always whole
- Filled: decided, by
analytics
Figure¶
meridian.v1.Figure, a message.
measure¶
message MeasureRef · preview
Names the measure a figure answers.
- Means: as the job asked it
- Does not mean: a formula
- Empty: never unset
- Filled: decided, by
analytics
account_id¶
identifier account · preview
Names the account a figure is for.
- Means: an account of the job
- Does not mean: the account's base currency
- Empty: empty for a figure across the job's accounts
- Filled: decided, by
analytics
breakdown¶
repeated message BreakdownValue · preview
Places a figure in its breakdowns.
- Means: one value per breakdown the measure asked for
- Does not mean: a filter
- Empty: empty for a figure with no breakdown
- Filled: decided, by
analytics
scenario_key¶
message ScenarioKey · preview
Says which scenario a figure is under (approved 2026-10-14).
- Means: base, a what-if, a historical day, an outcome, and from v28 a grid point, with no field added
- Does not mean: a scenario record
- Empty: unset reads as base
- Filled: decided, by
analytics
value¶
Decimal · preview
States a figure that is one value.
- Means: exact decimal in v26, rounded once, half to even, to the definition's scale; in currency_instrument_id's major unit
- Does not mean: a weight's rounded division
- Empty: unset for a weight or a probability
- Filled: decided, by
analytics - Unit: the major unit of currency_instrument_id's asset
- Bounds: 0 to 18 decimal places; at most 38 significant digits; past it, refused
numerator¶
Decimal · preview
States a weight's or a probability's numerator.
- Means: with denominator, so a bound is compared by cross-multiplication, never a rounded division (requirement 5)
- Does not mean: a percentage
- Empty: unset for a value
- Filled: decided, by
analytics - Unit: the measure's own unit
- Bounds: 0 to 18 decimal places; at most 38 significant digits; past it, refused
denominator¶
Decimal · preview
States a weight's or a probability's denominator.
- Means: greater than zero; for an implied distribution the sum of the group's prices
- Does not mean: a percentage
- Empty: unset for a value
- Filled: decided, by
analytics - Unit: the measure's own unit
- Bounds: 0 to 18 decimal places; at most 38 significant digits; past it, refused
currency_instrument_id¶
identifier instrument · preview
Names the cash instrument a value is in.
- Means: the account's base currency or the client's stated reporting currency
- Does not mean: the instruments' quote currencies
- Empty: empty for a weight
- Filled: decided, by
analytics
computed_as¶
enum ComputedAs · preview
Says how a figure was computed (approved 2026-10-14 as exact and model).
- Means: exact decimal from quantities, quoted prices and FX in v26; a model's value from v28
- Does not mean: a confidence
- Empty: never unspecified from the component
- Filled: decided, by
analytics
| Value | Means |
|---|---|
COMPUTED_AS_UNSPECIFIED |
read as exact by a v26 reader; never sent |
COMPUTED_AS_EXACT |
exact decimal from quantities, quoted prices and FX |
COMPUTED_AS_MODEL |
a model's floating-point value, crossing at its definition's scale, rounded half to even (from v28) |
oldest_input_source_ns¶
moment · preview
States the source time of a figure's oldest input (W12.2; approved 2026-10-19).
- Means: the earliest source time among the market data the figure read, so a reader sees how old it is
- Does not mean: when the figure was computed, or the lake's as-of
- Empty: 0 for a figure that read no market data
- Filled: derived, by
analytics - Unit: nanoseconds since the epoch
series_key¶
repeated message Identifier · preview
Names a series not held a figure is for.
- Means: its occ_osi symbol, or a ticker carrying its venue's ISO 10383 MIC in source (corrected 2026-10-25: amendment 3's wording contradicted Identifier.scheme (v24))
- Does not mean: an instrument ID
- Empty: none: the figure names an INS- record or none
- Filled: decided, by
analytics
BreakdownValue¶
meridian.v1.BreakdownValue, a message.
breakdown¶
text · preview
Names the breakdown.
- Means: as MeasureRef.breakdowns names it
- Does not mean: a filter
- Empty: never empty
- Filled: decided, by
analytics
value¶
text · preview
States a figure's place in the breakdown.
- Means: an asset class's name, a currency's ISO 4217 code, an instrument's or a sleeve's ID, a country's ISO 3166-1 alpha-2 code, or a scheme's class
- Does not mean: a guess: a scheme the deployment lacks is not evaluated
- Empty: never empty
- Filled: decided, by
analytics
ScenarioKey¶
meridian.v1.ScenarioKey, a message.
kind¶
enum ScenarioKind · preview
Says which kind of scenario.
- Means: one of the kinds, each a set of overrides the engine derived
- Does not mean: a scenario the client wrote: the scenario format is v28's
- Empty: unspecified reads as base
- Filled: decided, by
analytics
| Value | Means |
|---|---|
SCENARIO_KIND_UNSPECIFIED |
read as base |
SCENARIO_KIND_BASE |
the positions and the market as they are |
SCENARIO_KIND_WHAT_IF |
with the job's what-if trades added (W12.5) |
SCENARIO_KIND_HISTORICAL_DAY |
one historical day's returns applied, for historical VaR and ES |
SCENARIO_KIND_OUTCOME |
one member of an event group resolving YES, for resolution_payoff |
SCENARIO_KIND_NONE_OF_THE_NAMED |
no named member resolving YES, for a group mutually exclusive and not exhaustive |
SCENARIO_KIND_SCENARIO_POINT |
one point of a scenario or a scenario set, keyed by its set and axis positions |
business_date¶
date · preview
Names a historical day's business date.
- Means: ISO 8601, the day whose returns were applied
- Does not mean: the job's as-of
- Empty: empty but for a historical day
- Filled: decided, by
analytics
outcome_instrument_id¶
identifier instrument · preview
Names the member resolving YES.
- Means: a member of the measure's event group
- Does not mean: a settlement
- Empty: empty but for an outcome
- Filled: decided, by
analytics
scenario_row_key¶
text · preview
Names the scenario or set a point belongs to.
- Means: the saved row key, or
inlinefor a job's own set - Does not mean: a figure's measure
- Empty: empty except on a scenario point
- Filled: decided, by
analytics
scenario_version¶
integer · preview
Names the saved version.
- Means: the row key's version
- Does not mean: a template version
- Empty: 0 except on a saved scenario's point
- Filled: decided, by
analytics - Unit: versions
axis_positions¶
repeated integer · preview
Keys a point by its axes (ruling 582).
- Means: one position per axis, from 0, in the set's axis order: the point is the product of those steps
- Does not mean: a label
- Empty: none except on a scenario set's point
- Filled: decided, by
analytics - Unit: steps along each axis, from 0
NotEvaluated¶
meridian.v1.NotEvaluated, a message.
account_id¶
identifier account · preview
Names the account.
- Means: an account of the job
- Does not mean: a refusal
- Empty: never empty
- Filled: decided, by
analytics
instrument_id¶
identifier instrument · preview
Names the position's instrument.
- Means: the deployment's record
- Does not mean: a zero value
- Empty: empty where the whole measure is not evaluated
- Filled: decided, by
analytics
measure¶
message MeasureRef · preview
Names the measure not evaluated.
- Means: as the job asked it
- Does not mean: a refusal of the job
- Empty: never unset
- Filled: decided, by
analytics
reason¶
enum NotEvaluatedReason · preview
Says why a figure was not evaluated (requirement 9).
- Means: the input missing, stale, unentitled, local or unpriceable; from v27, a lot's cost missing
- Does not mean: zero
- Empty: never unspecified
- Filled: decided, by
analytics
| Value | Means |
|---|---|
NOT_EVALUATED_REASON_UNSPECIFIED |
never sent |
NOT_EVALUATED_REASON_PRICE_MISSING |
no price of the kind the model declares at the as-of |
NOT_EVALUATED_REASON_PRICE_STALE |
a price older than the client's setting for its source allows |
NOT_EVALUATED_REASON_CONVERSION_MISSING |
a conversion leg to the base or reporting currency missing (the first release's Q10) |
NOT_EVALUATED_REASON_NOT_ENTITLED |
a dataset the client is not entitled to, named in detail (Q11) |
NOT_EVALUATED_REASON_LOCAL_RECORD |
a local LCL- record, never priced |
NOT_EVALUATED_REASON_IMPLEMENTATION_UNAVAILABLE |
the routed implementation did not answer by the deadline, for a figure a compliance rule reads (requirement 22) |
NOT_EVALUATED_REASON_SCHEME_NOT_HELD |
a breakdown whose scheme the deployment does not hold (requirement 17) |
NOT_EVALUATED_REASON_GROUP_NOT_EXHAUSTIVE |
an implied distribution over a group not exhaustive in the version in force; the raw prices and their sum still answered |
NOT_EVALUATED_REASON_HISTORY_INSUFFICIENT |
history too short or too sparse for the definition's window |
NOT_EVALUATED_REASON_COST_MISSING |
a lot's cost the book does not record, which the measure needs (an opening balance stated without one): never zero |
NOT_EVALUATED_REASON_BELOW_INTRINSIC |
an option quote below its intrinsic value: no implied volatility exists for it |
NOT_EVALUATED_REASON_FIT_FAILED |
a surface fit that failed a no-arbitrage check or did not converge |
NOT_EVALUATED_REASON_INPUT_QUARANTINED |
the only input in force is invalid, its dataset in detail (ruling 421) |
NOT_EVALUATED_REASON_TERMS_INCOMPLETE |
a debt record minted incomplete, its missing fields named — a callable bond without its calls — so no yield to worst or cash flow is computed from a guess |
NOT_EVALUATED_REASON_NOT_SUPPORTED |
a term v29's engine does not compute, named in detail — a floater's index projection, a TIPS's index ratio, BUS/252, actual/actual (AFB) or (ICMA ultimo) — so no figure is computed from a guess (997) |
detail¶
text · preview
Names what the reason is about.
- Means: the dataset not entitled, the implementation unavailable, or the scheme not held
- Does not mean: instructions
- Empty: empty where the reason says all
- Filled: decided, by
analytics
age_ns¶
integer · preview
States a stale price's age (W12.2; approved 2026-10-19).
- Means: the age of the price's confirmed time at the job's as-of
- Does not mean: a moment, or the dataset's declared delay
- Empty: 0 on any reason but a stale price
- Filled: derived, by
analytics - Unit: nanoseconds
ceiling_ns¶
integer · preview
States the stale ceiling in force (W12.2; approved 2026-10-19).
- Means: the tighter of the dataset's own ceiling and the client's setting for its source, counted only in session
- Does not mean: the price's age
- Empty: 0 on any reason but a stale price
- Filled: derived, by
analytics - Unit: nanoseconds
series_key¶
repeated message Identifier · preview
Names a series not held that was not evaluated.
- Means: its key, as Figure.series_key
- Does not mean: an instrument ID
- Empty: none
- Filled: decided, by
analytics
AnswerProvenance¶
meridian.v1.AnswerProvenance, a message.
book_watermark¶
message Watermark · preview
States the watermark the book was read at.
- Means: the resolved watermark, every account at it
- Does not mean: a time
- Empty: unset for a job reading no position
- Filled: decided, by
analytics
lake_as_of_ns¶
moment · preview
States the lake's as-of the job read at.
- Means: the resolved recorded-time cut-off
- Does not mean: a valid time
- Empty: 0 for a job reading no price
- Filled: decided, by
analytics - Unit: nanoseconds since the epoch
datasets¶
repeated identifier dataset · preview
Names each dataset read.
- Means: as the lake's replies named them, a default read's fallback among them
- Does not mean: the datasets entitled
- Empty: empty for a job reading no price
- Filled: decided, by
analytics
instruments¶
repeated message InstrumentInput · preview
Names each instrument read, by its versions.
- Means: its record version, template and template version, and calculation version
- Does not mean: the instrument's terms
- Empty: empty for a job reading no instrument
- Filled: decided, by
analytics
models¶
repeated message ModelRef · preview
Names each model and its implementation.
- Means: the model id and version, and the implementation and version that answered it
- Does not mean: a vendor's code
- Empty: empty for a job pricing nothing
- Filled: decided, by
analytics
measures¶
repeated message MeasureRef · preview
Names each measure definition and version used.
- Means: as answered
- Does not mean: parameters a client supplied
- Empty: never empty
- Filled: decided, by
analytics
event_groups¶
repeated message EventGroupInput · preview
Names each event group read, at its version.
- Means: its ID and the version in force at the as-of
- Does not mean: membership the client supplied
- Empty: empty for a job with no event measure
- Filled: decided, by
analytics
routing_version¶
integer · preview
Names the routing table's version.
- Means: as ListModelRouting answered it
- Does not mean: a time
- Empty: never zero
- Filled: decided, by
analytics - Unit: routing table versions
engine_version¶
text · preview
Names the component's version.
- Means: its release
- Does not mean: the contract version
- Empty: never empty
- Filled: decided, by
analytics
answer_hash¶
text · preview
Names the answer by its inputs (Q7).
- Means: sha256: and the hex of SHA-256 over the RFC 8785 canonical JSON of the inputs; two answers with the same hash are the same answer
- Does not mean: a signature
- Empty: never empty
- Filled: derived, by
analytics
business_date¶
date · preview
States the job's business date (W12.7).
- Means: ISO 8601, as the job asked it
- Does not mean: the lake's as-of or the book's watermark, which are stated beside it
- Empty: empty where the job had none
- Filled: decided, by
analytics
input_prices¶
repeated message InputPrice · preview
Names each position's input price (W12.7).
- Means: each instrument's price with the lake row it came from and its source time; each enters the answer hash
- Does not mean: a figure
- Empty: empty for a job reading no price
- Filled: decided, by
analytics
conversion_legs¶
repeated message ConversionLeg · preview
Names each conversion leg, direct or derived (W12.7).
- Means: each leg with its rate, how it was found and the pivot a cross went through; each enters the answer hash, so an answer through another pivot is another answer
- Does not mean: rows of the lake: the lake never inverts or crosses
- Empty: empty for a job converting nothing
- Filled: decided, by
analytics
InputPrice¶
meridian.v1.InputPrice, a message.
instrument_id¶
identifier instrument · preview
Names the instrument priced.
- Means: a position's instrument, by its
INS-ID - Does not mean: the price's currency
- Empty: never empty
- Filled: decided, by
analytics
price¶
Money · preview
States the price the job used.
- Means: per unit, a Money naming the asset it is in, as the lake's row gave it
- Does not mean: a converted value, or a figure
- Empty: never unset
- Filled: decided, by
analytics
dataset¶
identifier dataset · preview
Names the dataset the price came from.
- Means: as the lake's reply named it
- Does not mean: a vendor, or an entitlement
- Empty: never empty
- Filled: decided, by
analytics
row_key¶
text · preview
Names the lake row the price came from.
- Means: the row's key in its dataset
- Does not mean: an instrument's ID
- Empty: never empty
- Filled: decided, by
analytics
version¶
integer · preview
Names the row's version read.
- Means: the version of the lake row, so a correction later is another input
- Does not mean: the dataset's or a template's version
- Empty: never zero
- Filled: decided, by
analytics - Unit: row versions
source_ns¶
moment · preview
States the price's source time.
- Means: the row's event time where present, else the earliest time it carries
- Does not mean: when the lake recorded it
- Empty: never zero
- Filled: decided, by
analytics - Unit: nanoseconds since the epoch
ConversionLeg¶
meridian.v1.ConversionLeg, a message.
from_instrument_id¶
identifier instrument · preview
Names the cash instrument a leg converts from.
- Means: a cash instrument by its
INS-ID - Does not mean: an ISO 4217 code
- Empty: never empty
- Filled: decided, by
analytics
to_instrument_id¶
identifier instrument · preview
Names the cash instrument a leg converts to.
- Means: a cash instrument by its
INS-ID - Does not mean: an ISO 4217 code
- Empty: never empty
- Filled: decided, by
analytics
rate¶
Decimal · preview
States the leg's rate.
- Means: the rate applied; an inverted rate is 1 divided by the lake's, rounded half to even to 18 places
- Does not mean: a rate the lake holds in that direction, unless derivation is direct
- Empty: never unset
- Filled: decided, by
analytics - Unit: units of to_instrument_id's asset per unit of from_instrument_id's
- Bounds: 0 to 18 decimal places; at most 38 significant digits; past it, refused
derivation¶
enum ConversionDerivation · preview
Says how the leg's rate was found (W12.2).
- Means: direct, inverted or crossed; only a fiat cash leg is inverted or crossed
- Does not mean: a crypto or stablecoin leg's conversion, which is only by its own lake price
- Empty: never unspecified
- Filled: decided, by
analytics
| Value | Means |
|---|---|
CONVERSION_DERIVATION_UNSPECIFIED |
never sent |
CONVERSION_DERIVATION_DIRECT |
the lake's rate in the leg's direction |
CONVERSION_DERIVATION_INVERTED |
the lake's rate the other way, inverted |
CONVERSION_DERIVATION_CROSSED |
through a pivot, by the deployment's pivot order |
via_instrument_id¶
identifier instrument · preview
Names a cross's pivot.
- Means: the pivot's cash instrument by its
INS-ID, taken in the deployment's pivot order - Does not mean: the leg's from or to
- Empty: empty unless the leg is crossed
- Filled: decided, by
analytics
dataset¶
identifier dataset · preview
Names the dataset the lake's rate came from.
- Means: as the lake's reply named it
- Does not mean: a vendor, or an entitlement
- Empty: never empty
- Filled: decided, by
analytics
InstrumentInput¶
meridian.v1.InstrumentInput, a message.
instrument_id¶
identifier instrument · preview
Names an instrument read.
- Means: the deployment's record
- Does not mean: a venue's symbol
- Empty: never empty
- Filled: decided, by
analytics
record_version¶
integer · preview
Names the record's version read.
- Means: as the instrument store answered it
- Does not mean: the template's version
- Empty: never zero
- Filled: decided, by
analytics - Unit: record versions
template_id¶
text · preview
Names the record's template.
- Means: TPL- and its name
- Does not mean: a calculation
- Empty: empty for a record held to no template
- Filled: decided, by
analytics
template_version¶
text · preview
Names the template's version.
- Means: a published version, immutable
- Does not mean: the calculation version
- Empty: empty with template_id
- Filled: decided, by
analytics
calculation_version¶
text · preview
Names the calculation package's version (the master intent's ruling 9).
- Means: as the template version's package states it
- Does not mean: the engine's version
- Empty: empty for a version with no calculation package
- Filled: decided, by
analytics
EventGroupInput¶
meridian.v1.EventGroupInput, a message.
event_group_id¶
text · preview
Names an event group read.
- Means: an EVG- or LCL- ID
- Does not mean: a venue's event reference
- Empty: never empty
- Filled: decided, by
analytics
version¶
integer · preview
Names the group's version read.
- Means: the version in force at the job's as-of
- Does not mean: the record's sequence
- Empty: never zero
- Filled: decided, by
analytics - Unit: event group versions
ModelRef¶
meridian.v1.ModelRef, a message.
model_id¶
text · preview
Names a pricing model.
- Means: cash, quoted_price or binary_event in v26; immutable once published. From v27 quoted_price's value per unit is rounded half to even to 18 decimal places, in the built-in implementation and a pricing plugin's answer alike, and a market value is that rounded value times the quantity, exact (W12.3)
- Does not mean: an implementation
- Empty: never empty
- Filled: decided, by
analytics
model_version¶
integer · preview
Names the model's version.
- Means: an improved model is a new version a deployment admin routes
- Does not mean: the implementation's version
- Empty: never zero
- Filled: decided, by
analytics - Unit: model versions
implementation¶
text · preview
Names what answered the model.
- Means: built-in, or a pricing plugin's instance ID
- Does not mean: a vendor's name
- Empty: never empty
- Filled: decided, by
analytics
implementation_version¶
text · preview
Names the implementation's version.
- Means: the component's version for the built-in one, the plugin's version for a plugin's
- Does not mean: the model's version
- Empty: never empty
- Filled: decided, by
analytics
ListMeasureDefinitionsReply¶
meridian.v1.ListMeasureDefinitionsReply, a message.
definitions¶
repeated message MeasureDefinition · preview
Lists the definitions the component serves (W12.1).
- Means: each definition and version shipped with the component
- Does not mean: a firm's own definitions, which wait for their row
- Empty: never empty
- Filled: decided, by
analytics
MeasureDefinition¶
meridian.v1.MeasureDefinition, a message.
definition¶
text · preview
Names the definition.
- Means: as MeasureRef.definition
- Does not mean: a formula a client supplies
- Empty: never empty
- Filled: decided, by
analytics
version¶
integer · preview
Names the version.
- Means: immutable once published
- Does not mean: the component's version
- Empty: never zero
- Filled: decided, by
analytics - Unit: a definition's versions
parameters¶
repeated message MeasureParameter · preview
States every parameter that changes the number (Q15).
- Means: a VaR's confidence, horizon, window, return type, missing-day treatment, quantile and daily cut, fixed by the version
- Does not mean: settings a client may change
- Empty: empty for a definition with none
- Filled: decided, by
analytics
breakdowns¶
repeated text · preview
Lists the breakdowns the definition allows.
- Means: as MeasureRef.breakdowns
- Does not mean: schemes the deployment holds
- Empty: empty for none
- Filled: decided, by
analytics
scale¶
integer · preview
States the scale values are rounded to.
- Means: decimal places, 0 to 18, rounded once, half to even
- Does not mean: a display precision
- Empty: never unset
- Filled: decided, by
analytics - Unit: decimal places
- Bounds: from 0 to 18; past it, refused
description¶
text · preview
Describes the definition in the component's words.
- Means: words for people
- Does not mean: instructions to an agent
- Empty: never empty
- Filled: decided, by
analytics
MeasureParameter¶
meridian.v1.MeasureParameter, a message.
name¶
text · preview
Names a parameter.
- Means: confidence, horizon_days, window_days, return_type, missing_days, quantile, daily_cut and the like
- Does not mean: a field a client sets
- Empty: never empty
- Filled: decided, by
analytics
value¶
text · preview
States the parameter's value.
- Means: as the definition writes it: 0.99, 500, relative
- Does not mean: a default a client overrides
- Empty: never empty
- Filled: decided, by
analytics
PriceBatchRequest¶
meridian.v1.PriceBatchRequest, a message.
batch_id¶
identifier message · preview
Names a batch (W12.3).
- Means: PBT- and a ULID; the answer names it back
- Does not mean: a job
- Empty: never empty
- Filled: minted, by
analytics
pricing_instance_id¶
identifier instance · preview
Names the routed pricing instance, which alone hears the batch.
- Means: the instance the model id is routed to (W12.6)
- Does not mean: the client's instance
- Empty: never empty
- Filled: decided, by
analytics
model_id¶
text · preview
Names the model the batch is priced under.
- Means: as the template versions bind it
- Does not mean: an implementation
- Empty: never empty
- Filled: decided, by
analytics
model_version¶
integer · preview
Names the model's version.
- Means: as routed
- Does not mean: the plugin's version
- Empty: never zero
- Filled: decided, by
analytics - Unit: model versions
units¶
repeated message PricingUnit · preview
Lists the instruments to price, each under a scenario.
- Means: every instrument of the job sharing the model, laid out by column; never one batch per instrument
- Does not mean: positions or accounts, which never reach a pricing plugin
- Empty: never empty
- Filled: decided, by
analytics
deadline_ns¶
moment · preview
States when the component stops waiting.
- Means: past it, a figure a compliance rule reads is not evaluated
- Does not mean: a timeout the plugin chooses
- Empty: never zero
- Filled: decided, by
analytics - Unit: nanoseconds since the epoch
batch_hash¶
text · preview
Names the batch by its inputs.
- Means: sha256: over the batch's inputs: a batch answered twice is harmless
- Does not mean: a signature
- Empty: never empty
- Filled: derived, by
analytics
sequence¶
integer · preview
Numbers the batch in the instance's sequence.
- Means: ListPriceBatches reads after it
- Does not mean: a priority
- Empty: never zero
- Filled: decided, by
analytics - Unit: items in the instance's sequence
PricingUnit¶
meridian.v1.PricingUnit, a message.
instrument_id¶
identifier instrument · preview
Names an instrument to price.
- Means: the deployment's record
- Does not mean: a venue's symbol
- Empty: never empty
- Filled: decided, by
analytics
template_version¶
text · preview
Names the template version the instrument is priced by.
- Means: its terms and binding
- Does not mean: the model's version
- Empty: never empty
- Filled: decided, by
analytics
scenario_key¶
message ScenarioKey · preview
Says which scenario the unit is priced under.
- Means: base, or a scenario's shocked values in inputs
- Does not mean: a scenario the plugin chooses
- Empty: unset reads as base
- Filled: decided, by
analytics
inputs¶
repeated message MarketObjectValue · preview
Carries exactly the market objects the model declares (requirement 20).
- Means: each observed, or a scenario's in its place
- Does not mean: anything else the plugin may read for the job: it reads nothing else
- Empty: empty for a model declaring no market object
- Filled: decided, by
analytics
MarketObjectValue¶
meridian.v1.MarketObjectValue, a message.
subject_id¶
identifier instrument · preview
Names the market object's subject.
- Means: the instrument it is about
- Does not mean: a vendor's symbol
- Empty: never empty
- Filled: decided, by
analytics
kind¶
text · preview
Names the market object's kind by the lake's terms (Q6).
- Means: close, nav, mid, last or outcome
- Does not mean: a vendor's field name
- Empty: never empty
- Filled: decided, by
analytics
value¶
Money · preview
States the market object's value.
- Means: a price in the asset it is quoted in; for outcome, the settlement value per contract
- Does not mean: a value per unit of the job's base currency
- Empty: never unset
- Filled: decided, by
analytics - Unit: the major unit of the asset the Money names, per unit
dataset¶
identifier dataset · preview
Names the dataset the value came from.
- Means: as the lake's reply named it
- Does not mean: an entitlement
- Empty: empty for a scenario's value
- Filled: decided, by
analytics
PriceBatchReply¶
meridian.v1.PriceBatchReply, a message.
batch_id¶
identifier message · preview
Names the batch answered.
- Means: the PriceBatchRequest's batch_id
- Does not mean: a job
- Empty: never empty
- Filled: as-reported, by
pricing
values¶
repeated message PricedUnit · preview
Carries a value per unit for each instrument and scenario.
- Means: one per unit the batch named
- Does not mean: a figure, which the component computes from it
- Empty: never empty
- Filled: as-reported, by
pricing
sensitivities¶
repeated message Sensitivity · preview
Carries the sensitivities a model declares (the first release, §3 rule 4).
- Means: from v28; a v26 plugin sends none and stays valid
- Does not mean: greeks a plugin invents
- Empty: empty in v26
- Filled: as-reported, by
pricing
pricing_instance_id¶
identifier instance · preview
Names the answering instance.
- Means: stamped by its sidecar
- Does not mean: anything the plugin supplies
- Empty: never empty: the sidecar stamps it
- Filled: stamped, by
sidecar
PricedUnit¶
meridian.v1.PricedUnit, a message.
instrument_id¶
identifier instrument · preview
Names the instrument priced.
- Means: a unit of the batch
- Does not mean: a venue's symbol
- Empty: never empty
- Filled: as-reported, by
pricing
scenario_key¶
message ScenarioKey · preview
Names the scenario the value is under.
- Means: the unit's
- Does not mean: a scenario the plugin chooses
- Empty: unset reads as base
- Filled: as-reported, by
pricing
value_per_unit¶
Money · preview
States the value of one unit of the instrument.
- Means: naming the asset it is in; equal to the built-in model's for the same inputs where the plugin implements a v26 model. From v27, under quoted_price, rounded half to even to 18 decimal places, as the built-in implementation rounds it, and a market value is that rounded value times the quantity, exact (W12.3)
- Does not mean: a figure for a position
- Empty: never unset
- Filled: as-reported, by
pricing - Unit: the major unit of the asset the Money names, per unit
- Required on:
AnswerPriceBatch
Sensitivity¶
meridian.v1.Sensitivity, a message.
instrument_id¶
identifier instrument · preview
Names the instrument.
- Means: a unit of the batch
- Does not mean: a venue's symbol
- Empty: never empty
- Filled: as-reported, by
pricing
scenario_key¶
message ScenarioKey · preview
Names the scenario.
- Means: the unit's
- Does not mean: a scenario the plugin chooses
- Empty: unset reads as base
- Filled: as-reported, by
pricing
name¶
text · preview
Names the sensitivity.
- Means: as the model declares it
- Does not mean: a measure
- Empty: never empty
- Filled: as-reported, by
pricing
value¶
Decimal · preview
States the sensitivity.
- Means: at the model's declared scale
- Does not mean: a price
- Empty: never unset
- Filled: as-reported, by
pricing - Unit: the model's declared unit
- Bounds: 0 to 18 decimal places; at most 38 significant digits; past it, refused
- Required on:
AnswerPriceBatch
AnswerPriceBatchReply¶
meridian.v1.AnswerPriceBatchReply, a message.
batch_id¶
identifier message · preview
Acknowledges the batch answered.
- Means: the batch_id
- Does not mean: an evaluation of the answer
- Empty: never empty
- Filled: decided, by
analytics
ListPriceBatchesRequest¶
meridian.v1.ListPriceBatchesRequest, a message.
after_sequence¶
integer · preview
Reads the batches waiting after a sequence (W12.3).
- Means: the last sequence the instance saw
- Does not mean: a time
- Empty: zero reads every batch waiting
- Filled: as-reported, by
pricing - Unit: items in the instance's sequence
ListPriceBatchesReply¶
meridian.v1.ListPriceBatchesReply, a message.
batches¶
repeated message PriceBatchRequest · preview
Lists the asking instance's batches still waiting.
- Means: each as delivered
- Does not mean: another instance's batches
- Empty: empty when none waits
- Filled: decided, by
analytics
sequence¶
integer · preview
States the sequence read to.
- Means: the next read's after_sequence
- Does not mean: a count
- Empty: the sequence asked after, when none since
- Filled: decided, by
analytics - Unit: items in the instance's sequence
JobFinishedEvent¶
meridian.v1.JobFinishedEvent, a message.
job_id¶
identifier message · preview
Names the job finished (W12.4).
- Means: as RunJobReply.job_id
- Does not mean: a record
- Empty: never empty
- Filled: decided, by
analytics
client_instance_id¶
identifier instance · preview
Names the instance that ran the job, which alone hears it.
- Means: the client's instance
- Does not mean: an account
- Empty: never empty
- Filled: decided, by
analytics
answer_hash¶
text · preview
Names the answer by its inputs.
- Means: as AnswerProvenance.answer_hash
- Does not mean: a signature
- Empty: never empty
- Filled: derived, by
analytics
finished_at_ns¶
moment · preview
States when the job finished.
- Means: by the component's clock
- Does not mean: when it was asked
- Empty: never zero
- Filled: decided, by
analytics - Unit: nanoseconds since the epoch
sequence¶
integer · preview
Numbers the event in the instance's sequence.
- Means: ListFinishedJobs reads after it
- Does not mean: a priority
- Empty: never zero
- Filled: decided, by
analytics - Unit: items in the instance's sequence
ListFinishedJobsRequest¶
meridian.v1.ListFinishedJobsRequest, a message.
after_sequence¶
integer · preview
Reads the jobs that finished after a sequence (W12.4).
- Means: the last sequence the instance saw
- Does not mean: a time
- Empty: zero reads every finished job held
- Filled: as-reported, by
plugin - Unit: items in the instance's sequence
ListFinishedJobsReply¶
meridian.v1.ListFinishedJobsReply, a message.
finished¶
repeated message JobFinishedEvent · preview
Lists the asking instance's jobs finished since.
- Means: each as delivered
- Does not mean: another instance's jobs
- Empty: empty when none finished since
- Filled: decided, by
analytics
sequence¶
integer · preview
States the sequence read to.
- Means: the next read's after_sequence
- Does not mean: a count
- Empty: the sequence asked after, when none since
- Filled: decided, by
analytics - Unit: items in the instance's sequence
ReadJobAnswerRequest¶
meridian.v1.ReadJobAnswerRequest, a message.
job_id¶
identifier message · preview
Names the job whose answer is read (W12.4).
- Means: a job the asking instance ran; another's answers not found
- Does not mean: a record
- Empty: never empty
- Filled: as-reported, by
plugin
page_size¶
integer · preview
Bounds a page.
- Means: how many entries, figures and not-evaluated together, a page holds at most; the component ends a page at about 512 KiB first, whatever this says
- Does not mean: a promise that a page is full
- Empty: 0 is as many as a page's budget takes
- Filled: as-reported, by
plugin - Unit: entries
- Bounds: from 0 to 500; past it, answered at the bound
cursor¶
text · preview
Continues a read where its last page ended.
- Means: the next_cursor the page before answered for this job, as given
- Does not mean: a position a plugin computes: one from another job, or from an answer the component no longer holds, is refused
- Empty: empty is the first page
- Filled: as-reported, by
plugin
ChainRef¶
meridian.v1.ChainRef, a message.
underlying_instrument_id¶
identifier instrument · preview
Names the chain's underlying.
- Means: its INS- record, the subject of its chain rows
- Does not mean: a series
- Empty: never empty
- Filled: as-reported, by
plugin
expiration_from¶
date · preview
Narrows a chain by expiration, inclusive.
- Means: a plain date
- Does not mean: a trading date
- Empty: empty: from the earliest
- Filled: as-reported, by
plugin
expiration_to¶
date · preview
Narrows a chain by expiration, inclusive.
- Means: a plain date
- Does not mean: a trading date
- Empty: empty: to the latest
- Filled: as-reported, by
plugin
series_keys¶
repeated message Identifier · preview
Names series of the chain.
- Means: their occ_osi symbols, or tickers each carrying its venue's ISO 10383 MIC in source (corrected 2026-10-25: amendment 3's wording contradicted Identifier.scheme (v24))
- Does not mean: INS- IDs
- Empty: none: every series in the window
- Filled: as-reported, by
plugin - Bounds: at most 500 items; past it, refused
ScenarioRef¶
meridian.v1.ScenarioRef, a message.
row_key¶
text · preview
Names a saved scenario.
- Means: its row key in the signal plugin's scenarios dataset
- Does not mean: a name, which may repeat
- Empty: never empty
- Filled: as-reported, by
plugin
dataset¶
identifier dataset · preview
Names the dataset it is saved in.
- Means: the signal plugin's scenarios dataset
- Does not mean: an entitlement
- Empty: never empty
- Filled: as-reported, by
plugin
version¶
integer · preview
Pins a version.
- Means: the row key's version; an edited scenario is a new version
- Does not mean: a template version
- Empty: 0: the latest version
- Filled: as-reported, by
plugin - Unit: versions
Scenario¶
meridian.v1.Scenario, a message.
name¶
text · preview
Names a scenario.
- Means: a person's or a plugin's words
- Does not mean: an identifier
- Empty: never empty
- Filled: as-reported, by
plugin - Bounds: 1 to 200 characters; past it, refused
shocks¶
repeated message Shock · preview
Carries the shocks applied together.
- Means: each to one object or every object of a kind
- Does not mean: a sequence
- Empty: none: the base, nothing moved
- Filled: as-reported, by
plugin - Bounds: at most 64 items; past it, refused
ScenarioSet¶
meridian.v1.ScenarioSet, a message.
name¶
text · preview
Names a scenario set.
- Means: a person's or a plugin's words
- Does not mean: an identifier
- Empty: never empty
- Filled: as-reported, by
plugin - Bounds: 1 to 200 characters; past it, refused
axes¶
repeated message ScenarioAxis · preview
Names the axes the set's points are generated from (ruling 582).
- Means: their product is the set; only the axes are saved, never the points
- Does not mean: the points
- Empty: never empty
- Filled: as-reported, by
plugin - Bounds: 1 to 4 items; past it, refused
ScenarioAxis¶
meridian.v1.ScenarioAxis, a message.
name¶
text · preview
Names an axis.
- Means: spot, vol, date, minutes, or a person's word
- Does not mean: a shock object
- Empty: never empty
- Filled: as-reported, by
plugin - Bounds: 1 to 64 characters; past it, refused
steps¶
repeated message Scenario · preview
Lists an axis's steps in order.
- Means: each a scenario; position 0 first
- Does not mean: a range the engine fills in
- Empty: never empty
- Filled: as-reported, by
plugin - Bounds: 1 to 32 items; past it, refused
Shock¶
meridian.v1.Shock, a message.
object¶
enum ShockObject · preview
Says what a shock moves (ruling 581).
- Means: the market object, by the lake's names
- Does not mean: dividends, borrow, correlation, credit spreads or factors, which v28's format does not shock
- Empty: unspecified is refused
- Filled: as-reported, by
plugin
| Value | Means |
|---|---|
SHOCK_OBJECT_UNSPECIFIED |
refused |
SHOCK_OBJECT_SPOT |
an instrument's price, or an FX rate as its currency's cash instrument's price (ruling 584) |
SHOCK_OBJECT_VOL_SURFACE |
an underlying's fitted volatility surface |
SHOCK_OBJECT_RATE |
a rate curve or a single rate, a referential record |
SHOCK_OBJECT_TIME |
the valuation time |
target¶
message ShockTarget · preview
Names the object shocked (ruling 583).
- Means: a subject ID, or every object of the kind
- Does not mean: a selection by the compliance language, which v31 brings (v30 when written, renumbered 2026-11-02)
- Empty: never unset, except on a time shock
- Filled: as-reported, by
plugin
form¶
enum ShockForm · preview
Says how the shock moves its object.
- Means: one of the forms its object takes
- Does not mean: its unit
- Empty: unspecified is refused: a form is stated, never inferred (ruling 581)
- Filled: as-reported, by
plugin
| Value | Means |
|---|---|
SHOCK_FORM_UNSPECIFIED |
refused |
SHOCK_FORM_RELATIVE |
spot: a relative move, the default for spot |
SHOCK_FORM_ABSOLUTE |
spot: an absolute move in the price's currency; time: a shift by its unit |
SHOCK_FORM_PARALLEL |
vol or rates: the same move at every expiry or tenor |
SHOCK_FORM_BUCKETED |
vol by expiry bucket, rates by key tenor, linear between keys |
SHOCK_FORM_TO_SETTLEMENT |
time: each option moved to its own settlement time (G16) |
unit¶
enum ShockUnit · preview
States the shock's unit (ruling 581).
- Means: the unit its value is in
- Does not mean: a fraction: 10 percent is never 0.10
- Empty: unspecified is refused but on a time shock to settlement
- Filled: as-reported, by
plugin
| Value | Means |
|---|---|
SHOCK_UNIT_UNSPECIFIED |
refused, except on a time shock to settlement |
SHOCK_UNIT_PERCENT |
spot, relative: 10 is +10% |
SHOCK_UNIT_PRICE |
spot, absolute, in the price's currency |
SHOCK_UNIT_VOL_POINTS |
vol, absolute: 2 is +2 vol points |
SHOCK_UNIT_BASIS_POINTS |
rates: 25 is +25 bp |
SHOCK_UNIT_DAYS |
time, calendar days |
SHOCK_UNIT_MINUTES |
time, calendar minutes, counted over 525,600 a year (G16) |
value¶
Decimal · preview
States how far the object moves.
- Means: signed, in the shock's unit
- Does not mean: a level the object moves to
- Empty: unset on a bucketed shock, whose buckets carry the values, and on a time shock to settlement
- Filled: as-reported, by
plugin - Unit: the shock's unit
- Bounds: 0 to 18 decimal places; at most 38 significant digits; past it, refused
buckets¶
repeated message ShockBucket · preview
States a bucketed shock's values.
- Means: each a tenor and its value; linear between key tenors
- Does not mean: a curve the plugin fitted
- Empty: none except on a bucketed shock
- Filled: as-reported, by
plugin - Bounds: at most 32 items; past it, refused
ShockBucket¶
meridian.v1.ShockBucket, a message.
tenor¶
message Tenor · preview
Names an expiry bucket or a key tenor.
- Means: a count and a unit (1M, 3M, 10Y), v27's Tenor
- Does not mean: a date
- Empty: never unset
- Filled: as-reported, by
plugin
value¶
Decimal · preview
States the bucket's move.
- Means: signed, in the shock's unit
- Does not mean: a level
- Empty: never unset
- Filled: as-reported, by
plugin - Unit: the shock's unit
- Bounds: 0 to 18 decimal places; at most 38 significant digits; past it, refused
- Required on:
RecordScenarios;RunJob
ShockTarget¶
meridian.v1.ShockTarget, a message.
subject_id¶
identifier entity · preview
Names one object shocked.
- Means: an INS- record: an instrument, a currency's cash instrument, an underlying for its surface, a referential rate or curve
- Does not mean: a ticker
- Empty: empty where every is true
- Filled: as-reported, by
plugin
every¶
boolean · preview
Shocks every object of the shock's kind (ruling 583; approved 585).
- Means: true: every spot, every surface or every rate the job reads; refused beside a subject_id
- Does not mean: a selection, which v31 brings (v30 when written, renumbered 2026-11-02) and which keeps every as its 'all'
- Empty: false: subject_id names the object
- Filled: as-reported, by
plugin
RenewJobsRequest¶
meridian.v1.RenewJobsRequest, a message.
job_ids¶
repeated identifier message · preview
Keeps a sidecar's standing jobs held (W12.4; approved by 1057).
- Means: each standing job its plugin's open subscriptions name, renewed in one message per lease (analytics.standing.leaseSeconds) and at once for a job newly named; the component keeps each while a renewal names it, and stops one no renewal named within the lease
- Does not mean: a read, or a registration: an unknown job is registered again by RunJob
- Empty: never empty
- Filled: decided, by
sidecar - Bounds: 1 to 256 items; past it, refused
RenewJobsReply¶
meridian.v1.RenewJobsReply, a message.
unknown_job_ids¶
repeated identifier message · preview
Names the renewed jobs the component does not hold (W12.4; approved by 1057).
- Means: each job no live coordinator holds — its coordinator lost or the coordinators changed, or the job lapsed — which the SDK registers again by RunJob with the job it holds
- Does not mean: a refusal: the renewal of every other job stands
- Empty: none: every job renewed is held
- Filled: decided, by
analytics
DerivedSeriesUpdatedEvent¶
meridian.v1.DerivedSeriesUpdatedEvent, a message.
job_id¶
identifier message · preview
Names the standing job a figure is of (W12.4; approved by 1057).
- Means: as RunJobReply.job_id, the same for every client holding the job
- Does not mean: a record
- Empty: never empty
- Filled: decided, by
analytics
client_instance_id¶
identifier instance · preview
Names the instance holding the job that alone hears this event (W12.4; approved 2026-11-09, step 3c's question 2).
- Means: one instance holding the job; the component publishes one event per holding instance, as a job's finishing names the instance that ran it
- Does not mean: the instance that first registered the job
- Empty: never empty
- Filled: decided, by
analytics
values¶
repeated message DerivedSeries · preview
Carries a standing job's recomputed figures keyed by subject and series (W12.4; approved by 1057).
- Means: each figure recomputed since the last event, its rule the definition and version, its inputs the datasets and the as-of each was read at, conflated per job and figure key; an event never over 512 KiB, split where it would be
- Does not mean: a recorded row: published, never recorded; or the whole answer, which ReadJobAnswer reads
- Empty: none where every figure recomputed is not evaluated
- Filled: decided, by
analytics - Bounds: at most 4096 items; past it, refused
figures¶
repeated message Figure · preview
Carries a standing job's recomputed figures over an account, a breakdown or a scenario (W12.4; approved 2026-11-09, step 3c's question 1).
- Means: each a Figure as a job's answer carries it — its measure, account, breakdown, scenario key, value, currency and oldest input — recomputed since the last event, conflated per job and figure key, beside values; ReadJobAnswer reads both whole
- Does not mean: a recorded row: published, never recorded
- Empty: none where every figure recomputed is keyed by subject and series
- Filled: decided, by
analytics - Bounds: at most 4096 items; past it, refused
not_evaluated¶
repeated message NotEvaluated · preview
Says which recomputed figures are not evaluated, and why (W12.4; approved by 1057).
- Means: each with its reason, as a job's answer says it (requirement 9): an input stale, missing, unentitled or unpriceable
- Does not mean: zero
- Empty: none: every figure recomputed was evaluated
- Filled: decided, by
analytics - Bounds: at most 4096 items; past it, refused
sequence¶
integer · preview
Numbers the job's events, so a reader sees a gap (W12.4; approved by 1057).
- Means: the job's sequence for one holding instance, dense per holder; after a gap or a loss marker the reader reads the job's whole current answer again by ReadJobAnswer and applies events above it
- Does not mean: a lake row's sequence
- Empty: never zero
- Filled: decided, by
analytics - Unit: events in the job's sequence
Generated from boundaries/fields.json in meridian-schema at 978c758.