Skip to content

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 inline for 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.