The lake¶
What data sources say: prices and bars by dataset, each dataset's entitlements, and the source priority a default read takes. This is its data dictionary at contract v24: 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/lake.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.
Records¶
The messages this store keeps and answers.
| Record | What it is |
|---|---|
Price |
a price of one kind for one subject, as one source stated it: closes, last prices, net asset values, settlement prices, bids, asks and mids, and FX rates as the price of a currency's cash instrument |
Bar |
open, high, low and close over an interval, as one source stated them |
Trade |
one trade as its source reported it, with what it may count for in the platform's words (contract v19) |
Quote |
the best bid and offer on a venue or consolidated, in force until the next (contract v19) |
Outcome |
an event contract's outcome as its venue determined it, at one stage, each stage a new version under the contract's one row key (contract v23) |
DatasetEntitlement |
a plugin instance's entitlement to a dataset, every field or some, as a deployment admin set it |
SourcePriority |
the deployment's order of datasets a default read takes for one data type and kind, with who set it |
Price¶
meridian.v1.Price, a record.
meta¶
message ObservationMeta · since v18 · preview
Carries a price's envelope.
- Means: its key, subject, source, times, version and sequence
- Does not mean: the price
- Empty: never unset
- Filled: as-reported, by
data - Required on:
RecordPricesfrom v18
kind¶
enum PriceKind · since v18 · preview
Says which price a row is.
- Means: the kind of price
- Does not mean: the last trade at some hour, for a close
- Empty: unspecified is refused
- Filled: as-reported, by
data
| Value | Means |
|---|---|
PRICE_KIND_UNSPECIFIED |
refused |
PRICE_KIND_CLOSE |
the dataset's declared close for the business date: the official close where the venue has one, otherwise the last price of the day the dataset declares |
PRICE_KIND_LAST |
the last eligible trade's price at the valid time |
PRICE_KIND_NAV |
a fund's net asset value per share, for the business date |
PRICE_KIND_SETTLEMENT |
a contract's settlement price, for the business date |
PRICE_KIND_BID |
the best bid at the valid time, or the business date's closing bid |
PRICE_KIND_ASK |
the best ask at the valid time, or the business date's closing ask |
PRICE_KIND_MID |
the mid at the valid time, or the business date's closing mid |
price¶
Money · since v18 · preview
Says what one unit of the subject was priced at, by this source.
- Means: the source's price of one unit of the subject, in the asset it was quoted in, that asset's cash instrument named; for a currency's cash instrument, the rate to the Money's asset; for an event contract, what one contract costs in the asset it pays out in
- Does not mean: a value of a position; a price converted into another asset by the data plugin; a probability; adjusted for splits or dividends unless the dataset declares it so
- Empty: never; a price with no amount is refused, and one whose value failed conversion is not known, its value as reported in unconverted
- Filled: as-reported, by
data - Unit: the major unit of the asset the Money names, per one unit of the subject
- Required on:
RecordPricesfrom v18
basis¶
enum PriceBasis · since v18 · preview
Says what one unit of a price is.
- Means: per unit of the subject in the lake's 1a
- Does not mean: a percent of par, a yield or a spread, which come with fixed income
- Empty: unspecified is refused
- Filled: as-reported, by
data
| Value | Means |
|---|---|
PRICE_BASIS_UNSPECIFIED |
refused |
PRICE_BASIS_PER_UNIT |
per unit of the subject |
Bar¶
meridian.v1.Bar, a record.
meta¶
message ObservationMeta · since v18 · preview
Carries a bar's envelope; its valid time is the interval.
- Means: its key, subject, source, interval, version and sequence; a daily bar names its business date
- Does not mean: the bar's prices
- Empty: never unset
- Filled: as-reported, by
data - Required on:
RecordBarsfrom v18
open¶
Money · since v18 · preview
Says the interval's first eligible price.
- Means: the open, by the source's eligibility rules, in the same asset as the bar's other prices
- Does not mean: the official open, unless the dataset declares it
- Empty: never
- Filled: as-reported, by
data - Unit: the major unit of the asset the Money names, per one unit of the subject
- Required on:
RecordBarsfrom v18
high¶
Money · since v18 · preview
Says the interval's highest eligible price.
- Means: the high, by the source's eligibility rules
- Does not mean: a quote
- Empty: never
- Filled: as-reported, by
data - Unit: the major unit of the asset the Money names, per one unit of the subject
- Required on:
RecordBarsfrom v18
low¶
Money · since v18 · preview
Says the interval's lowest eligible price.
- Means: the low, by the source's eligibility rules
- Does not mean: a quote
- Empty: never
- Filled: as-reported, by
data - Unit: the major unit of the asset the Money names, per one unit of the subject
- Required on:
RecordBarsfrom v18
close¶
Money · since v18 · preview
Says the interval's last eligible price.
- Means: the interval's last eligible price
- Does not mean: the official close, which is a price of kind close
- Empty: never
- Filled: as-reported, by
data - Unit: the major unit of the asset the Money names, per one unit of the subject
- Required on:
RecordBarsfrom v18
volume¶
Decimal · since v18 · preview
Says how much traded in the interval.
- Means: the eligible quantity over the interval, never negative
- Does not mean: notional
- Empty: 0 is a value: nothing traded
- Filled: as-reported, by
data - Unit: units of the instrument
- Bounds: 0 to 18 decimal places; at most 38 significant digits; past it, refused
- Required on:
RecordBarsfrom v18
vwap¶
Money · since v18 · preview
Says the interval's volume-weighted average price.
- Means: the volume-weighted average price over the interval, in the bar's asset
- Does not mean: a price of kind close
- Empty: unset: the source gave none
- Filled: as-reported, by
data - Unit: the major unit of the asset the Money names, per one unit of the subject
trade_count¶
integer · since v18 · preview
Says how many trades the interval held.
- Means: trades counted in the bar
- Does not mean: the volume
- Empty: unset: the source gave none; 0 is a value
- Filled: as-reported, by
data - Unit: trades
Trade¶
meridian.v1.Trade, a record.
meta¶
message ObservationMeta · since v19 · preview
Carries a trade's envelope; valid from its event time at its venue.
- Means: its key, subject, source and venue, event time, version and sequence; valid_until_ns 0 and no business date
- Does not mean: the trade's price or quantity
- Empty: never unset
- Filled: as-reported, by
data - Required on:
RecordTradesfrom v19
price¶
Money · since v19 · preview
Says what one unit of the subject traded at.
- Means: the trade's price per unit of the subject, in the asset it traded in, that asset's cash instrument named; for an event contract, what one contract cost in the asset it pays out in
- Does not mean: a probability; a price converted into another asset by the data plugin; the trade's notional
- Empty: never; a trade with no price is refused
- Filled: as-reported, by
data - Unit: the major unit of the asset the Money names, per one unit of the subject
- Required on:
RecordTradesfrom v19
quantity¶
Decimal · since v19 · preview
Says how much traded.
- Means: the quantity traded, more than zero
- Does not mean: notional, or a count of contracts on another unit than the instrument's
- Empty: never; zero or less is refused
- Filled: as-reported, by
data - Unit: units of the instrument
- Bounds: 0 to 18 decimal places; at most 38 significant digits; past it, refused
- Required on:
RecordTradesfrom v19
attributes¶
message TradeAttributes · since v19 · preview
Says what a trade may count for, and its characteristics.
- Means: the platform's trade attributes, converted from the source's condition codes at the edge
- Does not mean: a vendor's or a SIP's codes, which no reader needs
- Empty: never unset; its eligibilities unspecified are not known
- Filled: as-reported, by
data
aggressor¶
enum Aggressor · since v19 · preview
Says which side took liquidity.
- Means: the side the source says took liquidity: a venue's taker side as sent, or its maker side inverted
- Does not mean: a side guessed from the price's movement; the side of anyone's order in the book
- Empty: unspecified: not known
- Filled: as-reported, by
data
| Value | Means |
|---|---|
AGGRESSOR_UNSPECIFIED |
not known: the source does not say |
AGGRESSOR_BUY |
the buyer took liquidity: it lifted the offer |
AGGRESSOR_SELL |
the seller took liquidity: it hit the bid |
source_sequence¶
integer · since v19 · preview
Keeps the source's own sequence number.
- Means: the number the source gave the trade in its own feed
- Does not mean: the lake's sequence, which the envelope carries; a trade identifier
- Empty: 0: the source gave none
- Filled: as-reported, by
data - Unit: the source's sequence numbers
cancelled¶
boolean · since v19 · preview
Says the source withdrew a trade.
- Means: true in a version, under the trade's row key, saying the source withdrew it
- Does not mean: a trade removed: the versions before it are kept, and an as-of read before the withdrawal answers it
- Empty: false: the trade stands
- Filled: as-reported, by
data
Quote¶
meridian.v1.Quote, a record.
meta¶
message ObservationMeta · since v19 · preview
Carries a quote's envelope; in force from its valid time until the next.
- Means: its key, subject, source and venue, time, version and sequence; no business date
- Does not mean: the quote's prices
- Empty: never unset
- Filled: as-reported, by
data - Required on:
RecordQuotesfrom v19
bid¶
Money · since v19 · preview
Says the best bid.
- Means: the best price a buyer offered, in the quote's asset, its cash instrument named; one asset with the ask
- Does not mean: a price of kind bid, which a dataset records as a price; book depth
- Empty: unset: that side is empty
- Filled: as-reported, by
data - Unit: the major unit of the asset the Money names, per one unit of the subject
ask¶
Money · since v19 · preview
Says the best ask.
- Means: the best price a seller asked, in the quote's asset, its cash instrument named; one asset with the bid
- Does not mean: a price of kind ask, which a dataset records as a price; book depth
- Empty: unset: that side is empty
- Filled: as-reported, by
data - Unit: the major unit of the asset the Money names, per one unit of the subject
bid_quantity¶
Decimal · since v19 · preview
Says how much is bid at the best bid.
- Means: the quantity at the best bid, more than zero
- Does not mean: the quantity across the book
- Empty: unset: the source gave none; zero or less is refused
- Filled: as-reported, by
data - Unit: units of the instrument
- Bounds: 0 to 18 decimal places; at most 38 significant digits; past it, refused
ask_quantity¶
Decimal · since v19 · preview
Says how much is offered at the best ask.
- Means: the quantity at the best ask, more than zero
- Does not mean: the quantity across the book
- Empty: unset: the source gave none; zero or less is refused
- Filled: as-reported, by
data - Unit: units of the instrument
- Bounds: 0 to 18 decimal places; at most 38 significant digits; past it, refused
characteristics¶
repeated enum QuoteCharacteristic · since v19 · preview
Says a quote's state in the platform's words.
- Means: each state the source said the quote was in
- Does not mean: a vendor's code
- Empty: none: firm and trading
- Filled: as-reported, by
data - Bounds: at most 4 items; past it, refused
| Value | Means |
|---|---|
QUOTE_CHARACTERISTIC_UNSPECIFIED |
refused |
QUOTE_CHARACTERISTIC_INDICATIVE |
not firm: a price a participant need not trade at |
QUOTE_CHARACTERISTIC_HALTED |
trading in the subject is halted |
Outcome¶
meridian.v1.Outcome, a record.
meta¶
message ObservationMeta · since v23 · preview
Carries the outcome's envelope.
- Means: its row key, one per contract; its subject the contract's instrument; its valid time the determination's, an event SourceTime; no business date
- Does not mean: a daily value
- Empty: never unset
- Filled: as-reported, by
data
determination¶
enum OutcomeDetermination · since v23 · preview
Says what the instrument pays, as its venue determined it (the lake plan's vL1c, item 1).
- Means: the instrument's own determination, so a token whose outcome is a name, not yes, reads plainly
- Does not mean: the venue's word, kept as reported; or void, which no venue reports
- Empty: never unspecified
- Filled: as-reported, by
data
| Value | Means |
|---|---|
OUTCOME_DETERMINATION_UNSPECIFIED |
not said; refused |
OUTCOME_DETERMINATION_PAYS |
the instrument pays its full payout |
OUTCOME_DETERMINATION_PAYS_NOTHING |
the instrument pays nothing |
OUTCOME_DETERMINATION_PAYS_PART |
the instrument pays part of its payout: a scalar result, or a resolution at half |
stage¶
enum OutcomeStage · since v23 · preview
Says the venue's stage of the determination (item 2).
- Means: each change a new version under the contract's one row key, the lake's restatement pattern
- Does not mean: whether holders were paid, which settled_at_ns says
- Empty: never unspecified
- Filled: as-reported, by
data
| Value | Means |
|---|---|
OUTCOME_STAGE_UNSPECIFIED |
not said; refused |
OUTCOME_STAGE_PROPOSED |
proposed and open to challenge |
OUTCOME_STAGE_DETERMINED |
determined by the venue; an amended determination is a new version here |
OUTCOME_STAGE_DISPUTED |
disputed, the determination challenged |
OUTCOME_STAGE_FINAL |
final |
settlement_value¶
Money · since v23 · preview
Says what one contract settles at (item 1).
- Means: Money per contract in the payout asset, always set: the full payout, nothing, or the part
- Does not mean: a probability, or a price
- Empty: never unset
- Filled: as-reported, by
data - Required on:
RecordOutcomesfrom v23
settled_at_ns¶
moment · since v23 · preview
Says when the venue paid out (item 3).
- Means: the payout's time, as the venue states it
- Does not mean: the determination's time, which the envelope's valid time is
- Empty: 0 until the venue has paid out
- Filled: as-reported, by
data
determination_as_reported¶
message AsReported · since v23 · preview
Keeps the venue's own word for the determination (item 1).
- Means: as the venue reported it: yes, no, scalar, a name, Unknown/50-50
- Does not mean: the determination, which says what the instrument pays
- Empty: never unset
- Filled: as-reported, by
data
DatasetEntitlement¶
meridian.v1.DatasetEntitlement, a record.
dataset¶
identifier dataset · since v18 · preview
Names the dataset entitled.
- Means: a dataset a launched instance's catalogue declares
- Does not mean: a vendor's product
- Empty: never empty
- Filled: entered, by
dashboard
instance¶
identifier instance · since v18 · preview
Names the plugin instance entitled.
- Means: a launched instance, which may read the dataset
- Does not mean: a person: entitlements per person come later
- Empty: never empty
- Filled: entered, by
dashboard
allowed¶
boolean · since v18 · preview
Says whether the instance may read the dataset.
- Means: true, it may; false, the entitlement withdrawn
- Does not mean: a licence to keep the rows
- Empty: false: withdrawn
- Filled: entered, by
dashboard
fields¶
repeated text · since v18 · preview
Narrows an entitlement to some fields.
- Means: the fields by their dictionary entries; the sidecar strips the rest from every delivery and reply, naming each not entitled
- Does not mean: the fields a dataset fills
- Empty: none: every field
- Filled: entered, by
dashboard - Bounds: at most 64 items; past it, refused
updated_by¶
text · since v18 · preview
Names who set the entitlement.
- Means: the deployment-local subject the dashboard stamped
- Does not mean: an email address
- Empty: never empty
- Filled: stamped, by
dashboard
updated_at_ns¶
moment · since v18 · preview
Says when it was set.
- Means: when the conductor recorded the change
- Does not mean: when it takes effect at the broker, which is at once
- Empty: never 0
- Filled: decided, by
conductor - Unit: nanoseconds since the epoch
acting_through_delegation¶
text · since v18 · preview
Names the delegation a person acted through.
- Means: the delegation's ID, as the dashboard stamped it
- Does not mean: an access token
- Empty: empty: set in a browser
- Filled: stamped, by
dashboard
client_name¶
text · since v18 · preview
Names the client a person acted through.
- Means: the client's name, as its delegation recorded it
- Does not mean: a person
- Empty: empty: set in a browser
- Filled: stamped, by
dashboard
note¶
text · since v18 · preview
Says why the entitlement was set.
- Means: the note kept with the change's record
- Does not mean: a description of the dataset
- Empty: empty where none was given at the page; never through /mcp
- Filled: entered, by
dashboard
prepared_call_id¶
text · since v20 · preview
Names the prepared change the change was made from (W6.27).
- Means: the
PC-ID the person's request carried, stamped beside the delegation, so the record says what prepared the change as well as who made it - Does not mean: who made it, who stays the person; or that an agent made it: a person did, from what was prepared
- Empty: empty where the change was not made from a prepared change, and on every change before v20
- Filled: stamped, by
dashboard
SourcePriority¶
meridian.v1.SourcePriority, a record.
data_type¶
text · since v18 · preview
Names the data type a priority is for.
- Means: meridian.v1.Price, meridian.v1.Bar, and from v19 meridian.v1.Trade or meridian.v1.Quote
- Does not mean: a kind of price
- Empty: never empty
- Filled: entered, by
dashboard
Changes: v19, clarified: trades and quotes take a priority too, with no kind (W10.2).
kind¶
enum PriceKind · since v18 · preview
Names the kind of price a priority is for.
- Means: the kind
- Does not mean: a basis
- Empty: unspecified for bars
- Filled: entered, by
dashboard
| Value | Means |
|---|---|
PRICE_KIND_UNSPECIFIED |
for bars |
PRICE_KIND_CLOSE |
closes |
PRICE_KIND_LAST |
last prices |
PRICE_KIND_NAV |
net asset values |
PRICE_KIND_SETTLEMENT |
settlement prices |
PRICE_KIND_BID |
bids |
PRICE_KIND_ASK |
asks |
PRICE_KIND_MID |
mids |
datasets¶
repeated identifier dataset · since v18 · preview
Orders the datasets a default read takes.
- Means: first to last, a dataset silent beyond its cadence passed over for the next
- Does not mean: the datasets a reader is entitled to
- Empty: none: no default, so a default read is answered not covered
- Filled: entered, by
dashboard - Bounds: at most 16 items; past it, refused
updated_by¶
text · since v18 · preview
Names who set the priority.
- Means: the deployment-local subject the dashboard stamped
- Does not mean: an email address
- Empty: never empty
- Filled: stamped, by
dashboard
updated_at_ns¶
moment · since v18 · preview
Says when it was set, and guards against a stale change.
- Means: when the lake journalled the change
- Does not mean: a version number
- Empty: never 0
- Filled: decided, by
lake - Unit: nanoseconds since the epoch
acting_through_delegation¶
text · since v18 · preview
Names the delegation a person acted through.
- Means: the delegation's ID, as the dashboard stamped it
- Does not mean: an access token
- Empty: empty: set in a browser
- Filled: stamped, by
dashboard
client_name¶
text · since v18 · preview
Names the client a person acted through.
- Means: the client's name, as its delegation recorded it
- Does not mean: a person
- Empty: empty: set in a browser
- Filled: stamped, by
dashboard
note¶
text · since v18 · preview
Says why the priority was set.
- Means: the note kept with the change's record
- Does not mean: a description of a dataset
- Empty: empty where none was given at the page; never through /mcp
- Filled: entered, by
dashboard
prepared_call_id¶
text · since v20 · preview
Names the prepared change the change was made from (W6.27).
- Means: the
PC-ID the person's request carried, stamped beside the delegation, so the record says what prepared the change as well as who made it - Does not mean: who made it, who stays the person; or that an agent made it: a person did, from what was prepared
- Empty: empty where the change was not made from a prepared change, and on every change before v20
- Filled: stamped, by
dashboard
ObservationMeta¶
meridian.v1.ObservationMeta, a message.
row_key¶
text · since v18 · preview
Names one observation, so recording it again changes nothing.
- Means: the data plugin's identity for this observation, made from its raw record: the same key with the same values is a repeat, with different values a restatement
- Does not mean: a key unique across datasets, or a trade identifier a venue would recognise
- Empty: never empty
- Filled: as-reported, by
data - Bounds: 1 to 128 characters; past it, refused
- Required on:
RecordPricesfrom v18;RecordBarsfrom v18;RecordTradesfrom v19;RecordQuotesfrom v19
subjects¶
repeated message SubjectRef · since v18 · preview
Names the entities a row is about.
- Means: the deployment's own entities, each resolved through W3.1 before the row is sent: for a price, the instrument priced; for an FX rate, the currency's cash instrument
- Does not mean: every entity a row mentions: a venue or a dealer is its source, not a subject
- Empty: never empty
- Filled: as-reported, by
data - Bounds: 1 to 8 items; past it, refused
- Required on:
RecordPricesfrom v18;RecordBarsfrom v18;RecordTradesfrom v19;RecordQuotesfrom v19
source¶
message Source · since v18 · preview
Says where a row came from.
- Means: the writing instance and its version, the dataset, and the venue where the row is one venue's
- Does not mean: the dataset's vendor or aggregator, which its catalogue declares once and every answer carries
- Empty: never unset
- Filled: as-reported, by
data - Required on:
RecordPricesfrom v18;RecordBarsfrom v18;RecordTradesfrom v19;RecordQuotesfrom v19
valid_from_ns¶
moment · since v18 · preview
Says when a value became true.
- Means: when the value became true, the event happened, or the period began, in UTC
- Does not mean: when anyone learnt it, which the source's times and the recorded time say
- Empty: never 0
- Filled: as-reported, by
data - Unit: nanoseconds since the epoch
- Required on:
RecordPricesfrom v18;RecordBarsfrom v18;RecordTradesfrom v19;RecordQuotesfrom v19
valid_until_ns¶
moment · since v18 · preview
Says when a period ends.
- Means: the end of the period a value covers, exclusive; a daily value's is its day's end, so a value whose end lies after a read is still forming
- Does not mean: an expiry the source declared, which is a value of its own
- Empty: 0: an instant, or a value in force until the next
- Filled: as-reported, by
data - Unit: nanoseconds since the epoch
business_date¶
date · since v18 · preview
Says which business day a daily value is for.
- Means: a plain date, YYYY-MM-DD, in the day the dataset declares (its time zone and the minute its day ends); an invalid date is refused
- Does not mean: the valid time's date in UTC, or a moment; a trade's or a quote's, which name none and are keyed by UTC instants
- Empty: empty: not a daily value
- Filled: as-reported, by
data
Changes: v19, clarified: a trade and a quote name no business date, refused naming it (W10.4).
source_times¶
repeated message SourceTime · since v18 · preview
Keeps the source's own clocks beside the valid time.
- Means: each timestamp the source gave, at most one of each kind
- Does not mean: the lake's or the sidecar's times
- Empty: none: the source gave no times of its own
- Filled: as-reported, by
data - Bounds: at most 6 items; past it, refused
sent_at_ns¶
moment · since v18 · preview
Says when the row left the data plugin's sidecar.
- Means: the envelope's publication time
- Does not mean: the source's time, or a time the plugin chose
- Empty: 0 from a plugin: the sidecar sends it empty, and the lake records the envelope's publication time, which the sidecar stamped
- Filled: stamped, by
sidecar - Unit: nanoseconds since the epoch
recorded_at_ns¶
moment · since v18 · preview
Says when the lake committed this version.
- Means: the recorded time a point-in-time read cuts at
- Does not mean: when the value was true
- Empty: never 0 on a row the lake answers; a plugin's value is never read
- Filled: decided, by
lake - Unit: nanoseconds since the epoch
version¶
integer · since v18 · preview
Tells a restatement from the first record.
- Means: 1 for the first record of the row key, one more for each restatement
- Does not mean: a count of identical repeats, which change nothing
- Empty: never 0 on a row the lake answers; a plugin's value is never read
- Filled: decided, by
lake - Unit: versions of the row key
sequence¶
integer · since v18 · preview
Places a row in its dataset.
- Means: the dataset partition's next number, taken in the change's own transaction, so the numbers have no holes
- Does not mean: comparable across datasets
- Empty: never 0 on a row the lake answers; a plugin's value is never read
- Filled: decided, by
lake - Unit: rows in the dataset's partition
previous_sequence¶
integer · since v18 · preview
Lets a reader narrowed to some subjects see a gap in its own.
- Means: the sequence of the previous row of the same subject, data type and dataset
- Does not mean: the previous row in the partition, which another subject's row may hold
- Empty: 0: the first row of its subject, data type and dataset
- Filled: decided, by
lake - Unit: rows in the dataset's partition
raw¶
message RawRecordRef · since v18 · preview
Points to the raw record a row was converted from.
- Means: the record in the writing plugin's own storage, followed only through that plugin
- Does not mean: a channel to that storage
- Empty: never unset on a data plugin's row
- Filled: as-reported, by
data - Required on:
RecordPricesfrom v18;RecordBarsfrom v18;RecordTradesfrom v19;RecordQuotesfrom v19
unconverted¶
repeated message AsReported · since v18 · preview
Carries each vendor value that failed conversion, beside the field left not known.
- Means: the vendor's value as sent, its scheme naming the plugin and the field; a venue the deployment does not hold yet travels here, its venue left not known
- Does not mean: a meaning: nothing past the plugin interprets it
- Empty: none: every value converted
- Filled: as-reported, by
data - Bounds: at most 16 items; past it, refused
closed_day¶
message DateCheck · since v23 · preview
Flags a daily value dated on a closed day of its dataset's calendar (W10.4).
- Means: v22's DateCheck: the date, each calendar with its version, the reason (weekend, holiday, outside coverage) and the holiday's name; decided by the lake, as recorded_at_ns is; a later calendar version's re-check is journalled beside the row, never a new version, and a point-in-time read shows the flag as known then
- Does not mean: a refusal: the value is recorded as reported; nor a flag on a trade, a quote, an intraday row or an outcome, which name no business date
- Empty: unset unless the row's business date is a closed day of its dataset's calendar, or outside its coverage; unset too where the calendar is not held
- Filled: decided, by
lake
SubjectRef¶
meridian.v1.SubjectRef, a message.
entity_id¶
identifier entity · since v18 · preview
Names one entity a row is about.
- Means: the deployment's own ID for an entity the entity store holds: in the lake's 1a an instrument's
- Does not mean: a vendor's identifier, which is resolved and never a key
- Empty: never empty
- Filled: as-reported, by
data - Bounds: 1 to 64 characters; past it, refused
Source¶
meridian.v1.Source, a message.
instance¶
identifier instance · since v18 · preview
Names the plugin instance that recorded a row.
- Means: the instance the writing sidecar serves
- Does not mean: the vendor
- Empty: empty from a plugin: the sidecar stamps it
- Filled: stamped, by
sidecar
plugin_version¶
text · since v18 · preview
Makes a parser's fix traceable.
- Means: the writing plugin's version when it recorded the row
- Does not mean: the contract version, or a version the plugin claims
- Empty: empty from a plugin: the sidecar sends it empty, and the lake records the version the deployment launched the instance at
- Filled: stamped, by
sidecar - Bounds: at most 64 characters; past it, refused
dataset¶
identifier dataset · since v18 · preview
Names the dataset a row belongs to.
- Means: a dataset the writing instance's catalogue declares: the instance, a colon and the dataset's key
- Does not mean: a vendor's product code
- Empty: never empty
- Filled: as-reported, by
data - Bounds: 1 to 96 characters; past it, refused
- Required on:
RecordPricesfrom v18;RecordBarsfrom v18
venue_id¶
identifier venue · since v18 · preview
Names the venue an observation originated on.
- Means: the venue master's ID (VEN-), resolved through W3.14; for a trade, the venue it printed on: the market centre a consolidated dataset's trade names, a FINRA print's reporting facility
- Does not mean: a MIC, which is one of the venue's identifiers; the dataset's distributor
- Empty: empty: not venue-specific, which is the consolidated view; a venue not yet held is not known, and its value as reported is in unconverted
- Filled: as-reported, by
data
Changes: v19, clarified: a trade's venue is the venue it printed on (W10.4).
SourceTime¶
meridian.v1.SourceTime, a message.
kind¶
enum SourceTimeKind · since v18 · preview
Says which of the source's clocks a timestamp is.
- Means: the clock
- Does not mean: a ranking of trust
- Empty: unspecified is refused
- Filled: as-reported, by
data
| Value | Means |
|---|---|
SOURCE_TIME_KIND_UNSPECIFIED |
refused |
SOURCE_TIME_KIND_EVENT |
when it happened at its origin |
SOURCE_TIME_KIND_CONSOLIDATED |
when a consolidator published it |
SOURCE_TIME_KIND_REPORTED |
when a reporting facility received it |
SOURCE_TIME_KIND_VENDOR_RECEIVED |
when the vendor received it |
SOURCE_TIME_KIND_PUBLISHED |
when the source released it: a close, a panel, a model |
at_ns¶
moment · since v18 · preview
Carries one of the source's timestamps.
- Means: that clock's reading, in UTC, as the source gave it
- Does not mean: a time the data plugin adjusted
- Empty: never 0
- Filled: as-reported, by
data - Unit: nanoseconds since the epoch
DatasetRef¶
meridian.v1.DatasetRef, a message.
dataset¶
identifier dataset · since v18 · preview
Names a dataset an answer includes.
- Means: the dataset's ID in the deployment
- Does not mean: a vendor's product
- Empty: never empty
- Filled: decided, by
lake
instance¶
identifier instance · since v18 · preview
Names the instance serving a dataset.
- Means: the plugin instance whose catalogue declares it
- Does not mean: the vendor
- Empty: never empty
- Filled: decided, by
lake
vendor¶
text · since v18 · preview
Says who originated a dataset's data.
- Means: the vendor its catalogue declares
- Does not mean: who distributed it
- Empty: never empty
- Filled: as-reported, by
data
aggregator¶
text · since v18 · preview
Says who carried a dataset's data, when an aggregator did.
- Means: the aggregator its catalogue declares
- Does not mean: the vendor
- Empty: empty: reached directly
- Filled: as-reported, by
data
declaration¶
message DatasetDeclaration · since v18 · preview
Carries a dataset's catalogue entry.
- Means: the entry as its instance declared it
- Does not mean: the deployment's licence, which is the admin's
- Empty: unset in a read's answer; set in a listing of datasets and on an entitlements change
- Filled: decided, by
lake
unconverted_count¶
integer · since v18 · preview
Counts a dataset's rows whose values failed conversion, for the Data sources page.
- Means: the rows the lake keeps of the dataset carrying a vendor's value as reported beside a field left not known
- Does not mean: the rows refused, which are not kept
- Empty: 0 where no kept row of it carries a value as reported, and in a read's answer and an entitlements change, which count nothing
- Filled: derived, by
lake - Unit: rows
miss_count¶
integer · since v18 · preview
Counts what a dataset's instance could not resolve, for the Data sources page.
- Means: the identifiers and venues the dataset's instance reported missing (W3.2, W3.15), as the lake heard them
- Does not mean: a want declined, or a subject not covered
- Empty: 0 where its instance reported none since the lake started counting, and in a read's answer and an entitlements change
- Filled: derived, by
lake - Unit: misses
closed_day_count¶
integer · since v23 · preview
Counts a dataset's rows dated on a closed day of its calendar, for the Data sources page (W10.9).
- Means: the rows the lake keeps of the dataset flagged ObservationMeta.closed_day for a weekend or a holiday
- Does not mean: the rows dated outside the calendar's coverage, counted apart
- Empty: 0 where no kept row of it is flagged on a closed day, and in a read's answer and an entitlements change
- Filled: derived, by
lake - Unit: rows
outside_coverage_count¶
integer · since v23 · preview
Counts a dataset's rows dated outside its calendar's coverage, apart, so a coverage lapse reads as a curation matter (W10.9).
- Means: the rows flagged DATE_CHECK_REASON_OUTSIDE_COVERAGE
- Does not mean: a vendor's error
- Empty: 0 where no kept row of it is dated outside its calendar's coverage, and in a read's answer and an entitlements change
- Filled: derived, by
lake - Unit: rows
TradeAttributes¶
meridian.v1.TradeAttributes, a message.
consolidated¶
message Eligibility · since v19 · preview
Says what a trade may count for in the consolidated bar across venues.
- Means: whether it may set the consolidated view's high and low, open, close and volume
- Does not mean: whether it did
- Empty: never unset
- Filled: as-reported, by
data
market_centre¶
message Eligibility · since v19 · preview
Says what a trade may count for in its own venue's bar.
- Means: whether it may set its market centre's high and low, open, close and volume
- Does not mean: whether it did
- Empty: never unset
- Filled: as-reported, by
data
characteristics¶
repeated enum TradeCharacteristic · since v19 · preview
Carries what a trade's condition codes meant, in the platform's words.
- Means: each characteristic the source's codes said the trade had
- Does not mean: a vendor's or a SIP's code; whether the trade may set a bar's statistics, which its Eligibility says
- Empty: none listed means a regular trade, unless unconverted names a code that did not convert, when the characteristics are not known
- Filled: as-reported, by
data - Bounds: at most 16 items; past it, refused
| Value | Means |
|---|---|
TRADE_CHARACTERISTIC_UNSPECIFIED |
refused |
TRADE_CHARACTERISTIC_OPENING_AUCTION |
printed by the venue's opening auction |
TRADE_CHARACTERISTIC_CLOSING_AUCTION |
printed by the venue's closing auction |
TRADE_CHARACTERISTIC_OTHER_AUCTION |
printed by another auction: a reopening after a halt, an intraday auction |
TRADE_CHARACTERISTIC_ODD_LOT |
smaller than the instrument's round lot |
TRADE_CHARACTERISTIC_EXTENDED_HOURS |
outside the venue's regular session |
TRADE_CHARACTERISTIC_OUT_OF_SEQUENCE |
reported out of its time order |
TRADE_CHARACTERISTIC_LATE_REPORT |
reported later than its venue's rules require |
TRADE_CHARACTERISTIC_AVERAGE_PRICE |
priced as an average over several executions |
TRADE_CHARACTERISTIC_NON_REGULAR_SETTLEMENT |
settling other than on the regular cycle: cash, next day, seller's option |
TRADE_CHARACTERISTIC_INTERMARKET_SWEEP |
part of an order sweeping several venues at once |
TRADE_CHARACTERISTIC_DERIVATIVELY_PRICED |
priced from another instrument or a benchmark, not by the market at the time |
TRADE_CHARACTERISTIC_PRIOR_REFERENCE_PRICE |
priced at a reference price from earlier in the day |
TRADE_CHARACTERISTIC_CONTINGENT |
executed contingent on another trade |
TRADE_CHARACTERISTIC_CROSS |
a cross of two orders by one participant |
Eligibility¶
meridian.v1.Eligibility, a message.
high_low¶
enum Eligible · since v19 · preview
Says whether a trade may set a bar's high and low.
- Means: whether the trade may set the high and the low
- Does not mean: whether it did
- Empty: unspecified: not known, read as not eligible
- Filled: as-reported, by
data
| Value | Means |
|---|---|
ELIGIBLE_UNSPECIFIED |
not known: a code that did not convert; a reader computing a bar reads it as not eligible, and says so |
ELIGIBLE_ELIGIBLE |
the trade may set the statistic |
ELIGIBLE_NOT_ELIGIBLE |
the trade may not set the statistic |
open¶
enum Eligible · since v19 · preview
Says whether a trade may set a bar's open.
- Means: whether the trade may set the open
- Does not mean: whether it did
- Empty: unspecified: not known, read as not eligible
- Filled: as-reported, by
data
| Value | Means |
|---|---|
ELIGIBLE_UNSPECIFIED |
not known: a code that did not convert; a reader computing a bar reads it as not eligible, and says so |
ELIGIBLE_ELIGIBLE |
the trade may set the statistic |
ELIGIBLE_NOT_ELIGIBLE |
the trade may not set the statistic |
close¶
enum Eligible · since v19 · preview
Says whether a trade may set a bar's close.
- Means: whether the trade may set the close
- Does not mean: whether it did; the official close, which is a price of kind close
- Empty: unspecified: not known, read as not eligible
- Filled: as-reported, by
data
| Value | Means |
|---|---|
ELIGIBLE_UNSPECIFIED |
not known: a code that did not convert; a reader computing a bar reads it as not eligible, and says so |
ELIGIBLE_ELIGIBLE |
the trade may set the statistic |
ELIGIBLE_NOT_ELIGIBLE |
the trade may not set the statistic |
volume¶
enum Eligible · since v19 · preview
Says whether a trade counts toward a bar's volume.
- Means: whether the trade's quantity may count toward the volume
- Does not mean: whether it did
- Empty: unspecified: not known, read as not eligible
- Filled: as-reported, by
data
| Value | Means |
|---|---|
ELIGIBLE_UNSPECIFIED |
not known: a code that did not convert; a reader computing a bar reads it as not eligible, and says so |
ELIGIBLE_ELIGIBLE |
the trade may set the statistic |
ELIGIBLE_NOT_ELIGIBLE |
the trade may not set the statistic |
RecordPricesRequest¶
meridian.v1.RecordPricesRequest, a message.
prices¶
repeated message Price · since v18 · preview
Carries a batch of prices.
- Means: 1 to 500 prices, recorded whole or refused naming the item and field
- Does not mean: a transaction across datasets: each row is recorded in its own dataset's partition
- Empty: never empty
- Filled: as-reported, by
data - Bounds: 1 to 500 items; past it, refused
want_id¶
text · since v18 · preview
Names the want a batch answers.
- Means: the want's identifier as it was delivered
- Does not mean: a key the plugin made
- Empty: empty: recorded unasked
- Filled: as-reported, by
data
RecordBarsRequest¶
meridian.v1.RecordBarsRequest, a message.
bars¶
repeated message Bar · since v18 · preview
Carries a batch of bars.
- Means: 1 to 500 bars, recorded whole or refused naming the item and field
- Does not mean: a transaction across datasets
- Empty: never empty
- Filled: as-reported, by
data - Bounds: 1 to 500 items; past it, refused
want_id¶
text · since v18 · preview
Names the want a batch answers.
- Means: the want's identifier as it was delivered
- Does not mean: a key the plugin made
- Empty: empty: recorded unasked
- Filled: as-reported, by
data
RecordTradesRequest¶
meridian.v1.RecordTradesRequest, a message.
trades¶
repeated message Trade · since v19 · preview
Carries a batch of trades.
- Means: 1 to 500 trades, recorded whole or refused naming the item and field
- Does not mean: a transaction across datasets: each row is recorded in its own dataset's partition
- Empty: never empty
- Filled: as-reported, by
data - Bounds: 1 to 500 items; past it, refused
want_id¶
text · since v19 · preview
Names the want a batch answers.
- Means: the want's identifier as it was delivered
- Does not mean: a key the plugin made
- Empty: empty: recorded unasked, as a standing want's stream mostly is
- Filled: as-reported, by
data
RecordQuotesRequest¶
meridian.v1.RecordQuotesRequest, a message.
quotes¶
repeated message Quote · since v19 · preview
Carries a batch of quotes.
- Means: 1 to 500 quotes, recorded whole or refused naming the item and field
- Does not mean: a transaction across datasets
- Empty: never empty
- Filled: as-reported, by
data - Bounds: 1 to 500 items; past it, refused
want_id¶
text · since v19 · preview
Names the want a batch answers.
- Means: the want's identifier as it was delivered
- Does not mean: a key the plugin made
- Empty: empty: recorded unasked
- Filled: as-reported, by
data
RecordObservationsReply¶
meridian.v1.RecordObservationsReply, a message.
recorded¶
integer · since v18 · preview
Counts the rows recorded for the first time.
- Means: rows whose key the lake had not held
- Does not mean: rows received
- Empty: 0 when none was new
- Filled: decided, by
lake - Unit: rows
restated¶
integer · since v18 · preview
Counts the restatements.
- Means: rows recorded as a new version of a key held, its values different by value
- Does not mean: repeats at another scale: 764.2 and 764.20 are one value
- Empty: 0 when none restated
- Filled: decided, by
lake - Unit: rows
unchanged¶
integer · since v18 · preview
Counts the repeats.
- Means: rows identical to the version in force, which changed nothing
- Does not mean: rows refused
- Empty: 0 when none repeated
- Filled: decided, by
lake - Unit: rows
watermark¶
message Watermark · since v18 · preview
Says where the batch left its dataset.
- Means: the dataset partition's sequence once the batch committed
- Does not mean: a time
- Empty: never unset
- Filled: decided, by
lake
PricesRecordedEvent¶
meridian.v1.PricesRecordedEvent, a message.
price¶
message Price · since v18 · preview
Delivers a price the lake recorded.
- Means: the row as recorded, with its version and sequence
- Does not mean: every price: a reader hears what it is entitled to and asked for, latest first under load per subject, dataset, kind, venue and the price's asset
- Empty: never unset
- Filled: decided, by
lake
Changes: v19, clarified: conflated per the price's asset too (W10.5, approved 2026-10-10).
BarsRecordedEvent¶
meridian.v1.BarsRecordedEvent, a message.
bar¶
message Bar · since v18 · preview
Delivers a bar the lake recorded.
- Means: the row as recorded, with its version and sequence
- Does not mean: every bar
- Empty: never unset
- Filled: decided, by
lake
TradesRecordedEvent¶
meridian.v1.TradesRecordedEvent, a message.
trade¶
message Trade · since v19 · preview
Delivers a trade the lake recorded.
- Means: the row as recorded, with its version and sequence; every trade is delivered, never conflated
- Does not mean: a promise of delivery: a reader too slow for them meets a loss marker and reads the trades after the watermark it last saw
- Empty: never unset
- Filled: decided, by
lake
QuotesRecordedEvent¶
meridian.v1.QuotesRecordedEvent, a message.
quote¶
message Quote · since v19 · preview
Delivers a quote the lake recorded.
- Means: the row as recorded, with its version and sequence
- Does not mean: every quote: a reader hears what it is entitled to and asked for, latest first under load per subject, dataset, venue and the quote's asset
- Empty: never unset
- Filled: decided, by
lake
SourceChoice¶
meridian.v1.SourceChoice, a message.
default¶
boolean · since v18 · preview
Asks for the deployment's priority.
- Means: the datasets the deployment's priority orders for the data type and kind, with failover
- Does not mean: the first dataset the reader is entitled to
- Empty: false, with nothing else set, is the default too
- Filled: as-reported, by
reporting
named¶
repeated identifier dataset · since v18 · preview
Asks for named datasets.
- Means: these datasets, in this order
- Does not mean: datasets the reader is not entitled to, which are answered as not entitled
- Empty: none: not named
- Filled: as-reported, by
reporting - Bounds: at most 16 items; past it, refused
side_by_side¶
boolean · since v18 · preview
Asks for every entitled dataset at once.
- Means: each row from every dataset the reader is entitled to, each naming its own
- Does not mean: a mix: no read silently mixes sources
- Empty: false: one source per value
- Filled: as-reported, by
reporting
Unanswered¶
meridian.v1.Unanswered, a message.
subject¶
message SubjectRef · since v18 · preview
Names the subject a part of a read was not answered for.
- Means: the entity asked about
- Does not mean: a subject that answered
- Empty: unset where the whole dataset went unanswered
- Filled: decided, by
lake
dataset¶
identifier dataset · since v18 · preview
Names the dataset that did not answer.
- Means: the dataset asked, or the one a default read fell back past
- Does not mean: the dataset that did answer
- Empty: empty where no dataset could serve it
- Filled: decided, by
lake
field¶
text · since v18 · preview
Names the field not answered.
- Means: the field by its dictionary entry, meridian.v1.Bar.vwap
- Does not mean: a path into a request
- Empty: empty for the whole row
- Filled: decided, by
lake
reason¶
enum UnansweredReason · since v18 · preview
Says why a part of a read was not answered.
- Means: the reason
- Does not mean: a failure of the read: the rest still answer
- Empty: never unspecified
- Filled: decided, by
lake
| Value | Means |
|---|---|
UNANSWERED_REASON_UNSPECIFIED |
never sent |
UNANSWERED_REASON_NOT_ENTITLED |
the reader is not entitled to the dataset, or the field |
UNANSWERED_REASON_NOT_COVERED |
no dataset covers the subject |
UNANSWERED_REASON_ASKED_SOURCE |
the lake asked the dataset's source for it; the reader hears the rows once recorded |
UNANSWERED_REASON_SOURCE_SILENT |
the dataset recorded nothing for the subject within its cadence |
UNANSWERED_REASON_UNRESOLVED |
the subject is not one the deployment's entities resolve |
UNANSWERED_REASON_BEYOND_HISTORY |
older than the history the dataset reaches, or the lake keeps |
UNANSWERED_REASON_NOT_KEPT |
the dataset's licence forbids keeping it, and it was served, not kept |
ListPricesRequest¶
meridian.v1.ListPricesRequest, a message.
subjects¶
repeated message SubjectRef · since v18 · preview
Names the entities a read is about.
- Means: 1 to 500 entities
- Does not mean: vendor identifiers
- Empty: never empty
- Filled: as-reported, by
reporting - Bounds: 1 to 500 items; past it, refused
kinds¶
repeated enum PriceKind · since v18 · preview
Narrows a read to some kinds of price.
- Means: the kinds wanted
- Does not mean: a basis
- Empty: none: every kind
- Filled: as-reported, by
reporting
| Value | Means |
|---|---|
PRICE_KIND_UNSPECIFIED |
never asked |
PRICE_KIND_CLOSE |
closes |
PRICE_KIND_LAST |
last prices |
PRICE_KIND_NAV |
net asset values |
PRICE_KIND_SETTLEMENT |
settlement prices |
PRICE_KIND_BID |
bids |
PRICE_KIND_ASK |
asks |
PRICE_KIND_MID |
mids |
sources¶
message SourceChoice · since v18 · preview
Says which datasets a read is answered from.
- Means: the default, named datasets, or every entitled dataset side by side
- Does not mean: an entitlement
- Empty: unset: the deployment's default
- Filled: as-reported, by
reporting
at_ns¶
moment · since v18 · preview
Asks for the latest in force at a valid time.
- Means: the valid time; the latest is chosen per subject, dataset, kind, venue and the price's asset, so a subject priced in two assets on one venue answers both
- Does not mean: a recorded time, which as_of_ns cuts
- Empty: 0 with no business date and no range: the latest in force now
- Filled: as-reported, by
reporting - Unit: nanoseconds since the epoch
Changes: v19, clarified: the latest is chosen per the price's asset too (W10.6, approved 2026-10-10).
business_date¶
date · since v18 · preview
Asks for a business date's prices.
- Means: a plain date, YYYY-MM-DD; an invalid date is refused
- Does not mean: a moment
- Empty: empty: not a read by date
- Filled: as-reported, by
reporting
valid_from_ns¶
moment · since v18 · preview
Opens a valid-time range.
- Means: the range's start, inclusive
- Does not mean: a recorded time
- Empty: 0: not a range
- Filled: as-reported, by
reporting - Unit: nanoseconds since the epoch
valid_until_ns¶
moment · since v18 · preview
Closes a valid-time range.
- Means: the range's end, exclusive
- Does not mean: a recorded time
- Empty: 0: not a range
- Filled: as-reported, by
reporting - Unit: nanoseconds since the epoch
as_of_ns¶
moment · since v18 · preview
Reads what the lake knew at a recorded time.
- Means: the recorded-time cut-off: nothing recorded after it answers
- Does not mean: a valid time
- Empty: 0: what the lake knows now
- Filled: as-reported, by
reporting - Unit: nanoseconds since the epoch
page_size¶
integer · since v18 · preview
Bounds a page.
- Means: how many rows a page holds at most
- Does not mean: a promise that a page is full
- Empty: 0 is 100; past 500, answered at 500
- Filled: as-reported, by
reporting - Unit: rows
- Bounds: from 0 to 500; past it, answered at the bound
cursor¶
text · since v18 · preview
Asks for the next page.
- Means: the previous reply's next_cursor, as given
- Does not mean: a position a plugin computes
- Empty: empty for the first page
- Filled: as-reported, by
reporting
ListPricesReply¶
meridian.v1.ListPricesReply, a message.
prices¶
repeated message Price · since v18 · preview
Carries a page of prices.
- Means: the rows, each naming its dataset
- Does not mean: every subject asked: unanswered says which were not
- Empty: none answered
- Filled: decided, by
lake
unanswered¶
repeated message Unanswered · since v18 · preview
Says what a read could not serve, and why.
- Means: each subject, dataset and field not answered, with its reason; a default read's fallback names why the datasets above it did not answer
- Does not mean: a refusal of the read
- Empty: none: every part answered
- Filled: decided, by
lake
datasets¶
repeated message DatasetRef · since v18 · preview
Says what each dataset in the answer is, once.
- Means: each dataset with its instance, vendor and aggregator
- Does not mean: the datasets the reader may read, which ListDatasets answers
- Empty: none when no row answered
- Filled: decided, by
lake
watermark¶
message Watermark · since v18 · preview
Says where the read was answered.
- Means: the sequence per dataset partition the read was answered at
- Does not mean: a time
- Empty: never unset
- Filled: decided, by
lake
next_cursor¶
text · since v18 · preview
Lets a reader ask for the next page.
- Means: an opaque cursor
- Does not mean: a count
- Empty: empty when the read is exhausted
- Filled: decided, by
lake
ListBarsRequest¶
meridian.v1.ListBarsRequest, a message.
subjects¶
repeated message SubjectRef · since v18 · preview
Names the entities a read is about.
- Means: 1 to 500 entities
- Does not mean: vendor identifiers
- Empty: never empty
- Filled: as-reported, by
reporting - Bounds: 1 to 500 items; past it, refused
interval_ns¶
integer · since v18 · preview
Narrows a read to bars of one length.
- Means: the bars' length: a day's, a minute's
- Does not mean: a time range
- Empty: 0: every length
- Filled: as-reported, by
reporting - Unit: nanoseconds
sources¶
message SourceChoice · since v18 · preview
Says which datasets a read is answered from.
- Means: the default, named datasets, or every entitled dataset side by side
- Does not mean: an entitlement
- Empty: unset: the deployment's default
- Filled: as-reported, by
reporting
at_ns¶
moment · since v18 · preview
Asks for the latest bar in force at a valid time.
- Means: the valid time
- Does not mean: a recorded time
- Empty: 0 with no business date and no range: the latest in force now
- Filled: as-reported, by
reporting - Unit: nanoseconds since the epoch
business_date¶
date · since v18 · preview
Asks for a business date's bars.
- Means: a plain date, YYYY-MM-DD; an invalid date is refused
- Does not mean: a moment
- Empty: empty: not a read by date
- Filled: as-reported, by
reporting
valid_from_ns¶
moment · since v18 · preview
Opens a valid-time range.
- Means: the range's start, inclusive
- Does not mean: a recorded time
- Empty: 0: not a range
- Filled: as-reported, by
reporting - Unit: nanoseconds since the epoch
valid_until_ns¶
moment · since v18 · preview
Closes a valid-time range.
- Means: the range's end, exclusive
- Does not mean: a recorded time
- Empty: 0: not a range
- Filled: as-reported, by
reporting - Unit: nanoseconds since the epoch
as_of_ns¶
moment · since v18 · preview
Reads what the lake knew at a recorded time.
- Means: the recorded-time cut-off
- Does not mean: a valid time
- Empty: 0: what the lake knows now
- Filled: as-reported, by
reporting - Unit: nanoseconds since the epoch
page_size¶
integer · since v18 · preview
Bounds a page.
- Means: how many rows a page holds at most
- Does not mean: a promise that a page is full
- Empty: 0 is 100; past 500, answered at 500
- Filled: as-reported, by
reporting - Unit: rows
- Bounds: from 0 to 500; past it, answered at the bound
cursor¶
text · since v18 · preview
Asks for the next page.
- Means: the previous reply's next_cursor, as given
- Does not mean: a position a plugin computes
- Empty: empty for the first page
- Filled: as-reported, by
reporting
ListBarsReply¶
meridian.v1.ListBarsReply, a message.
bars¶
repeated message Bar · since v18 · preview
Carries a page of bars.
- Means: the rows, each naming its dataset
- Does not mean: every subject asked
- Empty: none answered
- Filled: decided, by
lake
unanswered¶
repeated message Unanswered · since v18 · preview
Says what a read could not serve, and why.
- Means: each subject, dataset and field not answered, with its reason
- Does not mean: a refusal of the read
- Empty: none: every part answered
- Filled: decided, by
lake
datasets¶
repeated message DatasetRef · since v18 · preview
Says what each dataset in the answer is, once.
- Means: each dataset with its instance, vendor and aggregator
- Does not mean: the datasets the reader may read
- Empty: none when no row answered
- Filled: decided, by
lake
watermark¶
message Watermark · since v18 · preview
Says where the read was answered.
- Means: the sequence per dataset partition the read was answered at
- Does not mean: a time
- Empty: never unset
- Filled: decided, by
lake
next_cursor¶
text · since v18 · preview
Lets a reader ask for the next page.
- Means: an opaque cursor
- Does not mean: a count
- Empty: empty when the read is exhausted
- Filled: decided, by
lake
ListTradesRequest¶
meridian.v1.ListTradesRequest, a message.
subjects¶
repeated message SubjectRef · since v19 · preview
Names the entities a read is about.
- Means: 1 to 500 entities
- Does not mean: vendor identifiers
- Empty: never empty
- Filled: as-reported, by
signal - Bounds: 1 to 500 items; past it, refused
sources¶
message SourceChoice · since v19 · preview
Says which datasets a read is answered from.
- Means: the default, named datasets, or every entitled dataset side by side
- Does not mean: an entitlement
- Empty: unset: the deployment's default
- Filled: as-reported, by
signal
valid_from_ns¶
moment · since v19 · preview
Opens a valid-time range.
- Means: the range's start, inclusive; the range lies within one day of each dataset as it declares its day, or is refused naming it
- Does not mean: a recorded time
- Empty: 0: not a range, when after_watermark is given
- Filled: as-reported, by
signal - Unit: nanoseconds since the epoch
valid_until_ns¶
moment · since v19 · preview
Closes a valid-time range.
- Means: the range's end, exclusive
- Does not mean: a recorded time
- Empty: 0: not a range, when after_watermark is given
- Filled: as-reported, by
signal - Unit: nanoseconds since the epoch
after_watermark¶
message Watermark · since v19 · preview
Catches a reader up on the trades it lost.
- Means: the watermark the reader last saw: answered the rows each dataset partition it names recorded after its sequence there, for the subjects asked, whatever their valid time, a late or out-of-sequence print included
- Does not mean: a time; a range: a partition it does not name is not read
- Empty: unset: a read by range
- Filled: as-reported, by
signal
as_of_ns¶
moment · since v19 · preview
Reads what the lake knew at a recorded time.
- Means: the recorded-time cut-off: nothing recorded after it answers
- Does not mean: a valid time
- Empty: 0: what the lake knows now
- Filled: as-reported, by
signal - Unit: nanoseconds since the epoch
page_size¶
integer · since v19 · preview
Bounds a page.
- Means: how many rows a page holds at most
- Does not mean: a promise that a page is full
- Empty: 0 is 100; past 500, answered at 500
- Filled: as-reported, by
signal - Unit: rows
- Bounds: from 0 to 500; past it, answered at the bound
cursor¶
text · since v19 · preview
Asks for the next page.
- Means: the previous reply's next_cursor, as given
- Does not mean: a position a plugin computes
- Empty: empty for the first page
- Filled: as-reported, by
signal
latest_recorded¶
boolean · since v20 · preview
Asks, for a data plugin, the last trade its own instance recorded of each subject (W10.6).
- Means: one trade per subject, dataset and venue, its own instance's rows only, with the watermark read at, so it backfills a restart's gap from the venue's history
- Does not mean: the latest in force from every source, or a read any other reader may make: refused from any but a data plugin
- Empty: false: a range, a watermark or a page, as before
- Filled: as-reported, by
data
ListTradesReply¶
meridian.v1.ListTradesReply, a message.
trades¶
repeated message Trade · since v19 · preview
Carries a page of trades.
- Means: the rows, each naming its dataset
- Does not mean: every subject asked: unanswered says which were not
- Empty: none answered
- Filled: decided, by
lake
unanswered¶
repeated message Unanswered · since v19 · preview
Says what a read could not serve, and why.
- Means: each subject, dataset and field not answered, with its reason; a default read's fallback names why the datasets above it did not answer
- Does not mean: a refusal of the read
- Empty: none: every part answered
- Filled: decided, by
lake
datasets¶
repeated message DatasetRef · since v19 · preview
Says what each dataset in the answer is, once.
- Means: each dataset with its instance, vendor and aggregator
- Does not mean: the datasets the reader may read, which ListDatasets answers
- Empty: none when no row answered
- Filled: decided, by
lake
watermark¶
message Watermark · since v19 · preview
Says where the read was answered.
- Means: the sequence per dataset partition the read was answered at, which a later catch-up names
- Does not mean: a time
- Empty: never unset
- Filled: decided, by
lake
next_cursor¶
text · since v19 · preview
Lets a reader ask for the next page.
- Means: an opaque cursor
- Does not mean: a count
- Empty: empty when the read is exhausted
- Filled: decided, by
lake
ListQuotesRequest¶
meridian.v1.ListQuotesRequest, a message.
subjects¶
repeated message SubjectRef · since v19 · preview
Names the entities a read is about.
- Means: 1 to 500 entities
- Does not mean: vendor identifiers
- Empty: never empty
- Filled: as-reported, by
signal - Bounds: 1 to 500 items; past it, refused
sources¶
message SourceChoice · since v19 · preview
Says which datasets a read is answered from.
- Means: the default, named datasets, or every entitled dataset side by side
- Does not mean: an entitlement
- Empty: unset: the deployment's default
- Filled: as-reported, by
signal
at_ns¶
moment · since v19 · preview
Asks for the latest quote in force at a valid time.
- Means: the valid time; the latest is chosen per subject, dataset, venue and the quote's asset
- Does not mean: a recorded time, which as_of_ns cuts
- Empty: 0 with no range: the latest in force now
- Filled: as-reported, by
signal - Unit: nanoseconds since the epoch
valid_from_ns¶
moment · since v19 · preview
Opens a valid-time range.
- Means: the range's start, inclusive; the range lies within one day of each dataset as it declares its day, or is refused naming it
- Does not mean: a recorded time
- Empty: 0: not a range
- Filled: as-reported, by
signal - Unit: nanoseconds since the epoch
valid_until_ns¶
moment · since v19 · preview
Closes a valid-time range.
- Means: the range's end, exclusive
- Does not mean: a recorded time
- Empty: 0: not a range
- Filled: as-reported, by
signal - Unit: nanoseconds since the epoch
as_of_ns¶
moment · since v19 · preview
Reads what the lake knew at a recorded time.
- Means: the recorded-time cut-off
- Does not mean: a valid time
- Empty: 0: what the lake knows now
- Filled: as-reported, by
signal - Unit: nanoseconds since the epoch
page_size¶
integer · since v19 · preview
Bounds a page.
- Means: how many rows a page holds at most
- Does not mean: a promise that a page is full
- Empty: 0 is 100; past 500, answered at 500
- Filled: as-reported, by
signal - Unit: rows
- Bounds: from 0 to 500; past it, answered at the bound
cursor¶
text · since v19 · preview
Asks for the next page.
- Means: the previous reply's next_cursor, as given
- Does not mean: a position a plugin computes
- Empty: empty for the first page
- Filled: as-reported, by
signal
ListQuotesReply¶
meridian.v1.ListQuotesReply, a message.
quotes¶
repeated message Quote · since v19 · preview
Carries a page of quotes.
- Means: the rows, each naming its dataset
- Does not mean: every subject asked: unanswered says which were not
- Empty: none answered
- Filled: decided, by
lake
unanswered¶
repeated message Unanswered · since v19 · preview
Says what a read could not serve, and why.
- Means: each subject, dataset and field not answered, with its reason; a default read's fallback names why the datasets above it did not answer
- Does not mean: a refusal of the read
- Empty: none: every part answered
- Filled: decided, by
lake
datasets¶
repeated message DatasetRef · since v19 · preview
Says what each dataset in the answer is, once.
- Means: each dataset with its instance, vendor and aggregator
- Does not mean: the datasets the reader may read, which ListDatasets answers
- Empty: none when no row answered
- Filled: decided, by
lake
watermark¶
message Watermark · since v19 · preview
Says where the read was answered.
- Means: the sequence per dataset partition the read was answered at, which a later catch-up names
- Does not mean: a time
- Empty: never unset
- Filled: decided, by
lake
next_cursor¶
text · since v19 · preview
Lets a reader ask for the next page.
- Means: an opaque cursor
- Does not mean: a count
- Empty: empty when the read is exhausted
- Filled: decided, by
lake
ObservationsWantedEvent¶
meridian.v1.ObservationsWantedEvent, a message.
want_id¶
text · since v18 · preview
Names a want.
- Means: the want's identifier, which the rows recorded for it name
- Does not mean: a reader's identity: readers' identical wants are one
- Empty: never empty
- Filled: decided, by
lake
dataset¶
identifier dataset · since v18 · preview
Names the dataset a want is of.
- Means: a dataset the hearing instance serves
- Does not mean: another instance's dataset: a want is delivered to the instance serving it alone
- Empty: never empty
- Filled: decided, by
lake
data_type¶
text · since v18 · preview
Names the data type wanted.
- Means: the data type by its message's full name: meridian.v1.Price, meridian.v1.Bar, and from v19 meridian.v1.Trade or meridian.v1.Quote
- Does not mean: a kind of price
- Empty: never empty
- Filled: decided, by
lake
Changes: v19, clarified: a want may be of trades or quotes (W10.7).
subjects¶
repeated message SubjectRef · since v18 · preview
Names the entities wanted.
- Means: the deployment's entities, which the data plugin resolves to its vendor's codes at the edge
- Does not mean: vendor identifiers
- Empty: never empty
- Filled: decided, by
lake - Bounds: 1 to 500 items; past it, refused
kinds¶
repeated enum PriceKind · since v18 · preview
Narrows a want of prices to some kinds.
- Means: the kinds wanted
- Does not mean: a basis
- Empty: none: every kind, or not a want of prices
- Filled: decided, by
lake
| Value | Means |
|---|---|
PRICE_KIND_UNSPECIFIED |
never sent |
PRICE_KIND_CLOSE |
closes |
PRICE_KIND_LAST |
last prices |
PRICE_KIND_NAV |
net asset values |
PRICE_KIND_SETTLEMENT |
settlement prices |
PRICE_KIND_BID |
bids |
PRICE_KIND_ASK |
asks |
PRICE_KIND_MID |
mids |
interval_ns¶
integer · since v18 · preview
Names the length of the bars wanted.
- Means: the bars' length
- Does not mean: a time range
- Empty: 0: not a want of bars
- Filled: decided, by
lake - Unit: nanoseconds
business_date¶
date · since v18 · preview
Names the business date wanted.
- Means: a plain date, YYYY-MM-DD, in the dataset's declared day
- Does not mean: a moment
- Empty: empty: not a want by date
- Filled: decided, by
lake
valid_from_ns¶
moment · since v18 · preview
Opens the valid-time range wanted.
- Means: the range's start, inclusive
- Does not mean: a recorded time
- Empty: 0: not a range
- Filled: decided, by
lake - Unit: nanoseconds since the epoch
valid_until_ns¶
moment · since v18 · preview
Closes the valid-time range wanted.
- Means: the range's end, exclusive
- Does not mean: a recorded time
- Empty: 0: not a range
- Filled: decided, by
lake - Unit: nanoseconds since the epoch
standing¶
boolean · since v18 · preview
Asks the data plugin to keep subjects current.
- Means: keep the subjects current until the want is withdrawn: from the vendor's stream where the dataset is streamed, by its schedule otherwise
- Does not mean: a subscription a plugin holds: the lake withdraws it when no reader asks
- Empty: false: fetch once
- Filled: decided, by
lake
Changes: v19, clarified: a streamed dataset keeps a standing want current from its vendor's stream (W10.7).
WantWithdrawnEvent¶
meridian.v1.WantWithdrawnEvent, a message.
want_id¶
text · since v18 · preview
Names the want withdrawn.
- Means: a standing want no reader asked within the dataset's cadence
- Does not mean: a decline
- Empty: never empty
- Filled: decided, by
lake
dataset¶
identifier dataset · since v18 · preview
Names the dataset of the want withdrawn.
- Means: a dataset the hearing instance serves
- Does not mean: another instance's dataset
- Empty: never empty
- Filled: decided, by
lake
DeclineWantRequest¶
meridian.v1.DeclineWantRequest, a message.
want_id¶
text · since v18 · preview
Names the want declined.
- Means: the want's identifier as it was delivered
- Does not mean: a key the plugin made
- Empty: never empty
- Filled: as-reported, by
data
subjects¶
repeated message SubjectRef · since v18 · preview
Names the subjects declined.
- Means: subjects of the want the data plugin cannot serve
- Does not mean: subjects it served, which it recorded
- Empty: never empty
- Filled: as-reported, by
data - Bounds: 1 to 500 items; past it, refused
reason¶
enum UnansweredReason · since v18 · preview
Says why the data plugin cannot serve subjects of a want.
- Means: not covered, source silent or beyond history, for the date or range the want asked, or the latest where it asked the latest, and no other; the readers' next answers for that date carry it
- Does not mean: an error in the plugin
- Empty: unspecified is refused
- Filled: as-reported, by
data
| Value | Means |
|---|---|
UNANSWERED_REASON_UNSPECIFIED |
refused |
UNANSWERED_REASON_NOT_ENTITLED |
refused: entitlement is the lake's to answer |
UNANSWERED_REASON_NOT_COVERED |
the source does not cover the subjects |
UNANSWERED_REASON_ASKED_SOURCE |
refused: the lake's to answer |
UNANSWERED_REASON_SOURCE_SILENT |
the source did not answer |
UNANSWERED_REASON_UNRESOLVED |
refused: the lake's to answer |
UNANSWERED_REASON_BEYOND_HISTORY |
older than the source reaches |
UNANSWERED_REASON_NOT_KEPT |
refused: the lake's to answer |
Changes: v19, clarified: a decline stands for the date asked only (W10.7, approved 2026-10-10).
SetSourcePriorityRequest¶
meridian.v1.SetSourcePriorityRequest, a message.
data_type¶
text · since v18 · preview
Names the data type a priority is for.
- Means: meridian.v1.Price, meridian.v1.Bar, and from v19 meridian.v1.Trade or meridian.v1.Quote
- Does not mean: a kind of price
- Empty: never empty
- Filled: entered, by
dashboard
Changes: v19, clarified: trades and quotes take a priority too, with no kind (W10.2).
kind¶
enum PriceKind · since v18 · preview
Names the kind of price a priority is for.
- Means: the kind
- Does not mean: a basis
- Empty: unspecified for bars
- Filled: entered, by
dashboard
| Value | Means |
|---|---|
PRICE_KIND_UNSPECIFIED |
for bars |
PRICE_KIND_CLOSE |
closes |
PRICE_KIND_LAST |
last prices |
PRICE_KIND_NAV |
net asset values |
PRICE_KIND_SETTLEMENT |
settlement prices |
PRICE_KIND_BID |
bids |
PRICE_KIND_ASK |
asks |
PRICE_KIND_MID |
mids |
datasets¶
repeated identifier dataset · since v18 · preview
Replaces the order whole.
- Means: first to last
- Does not mean: a change to one place in the order
- Empty: none: clears the priority
- Filled: entered, by
dashboard - Bounds: at most 16 items; past it, refused
note¶
text · since v18 · preview
Says why.
- Means: the note kept with the change's record
- Does not mean: a description of a dataset
- Empty: empty only at the page; through /mcp refused
- Filled: entered, by
dashboard
against_updated_at_ns¶
moment · since v18 · preview
Refuses a change made over another unseen.
- Means: the priority's updated_at_ns as it was read; refused when it has changed since
- Does not mean: when the change takes effect
- Empty: 0 when no priority was set
- Filled: entered, by
dashboard - Unit: nanoseconds since the epoch
ListSourcePrioritiesReply¶
meridian.v1.ListSourcePrioritiesReply, a message.
priorities¶
repeated message SourcePriority · since v18 · preview
Lists the deployment's priorities.
- Means: each with who set it and when
- Does not mean: the datasets themselves
- Empty: none set
- Filled: decided, by
lake
ListDatasetsReply¶
meridian.v1.ListDatasetsReply, a message.
datasets¶
repeated message DatasetRef · since v18 · preview
Lists the datasets a reader may read, with their catalogue entries.
- Means: each with its instance, vendor, aggregator and declaration; to the dashboard, every launched dataset
- Does not mean: the rows
- Empty: none the reader may read
- Filled: decided, by
lake
licences¶
repeated message DatasetLicence · since v18 · preview
Says each dataset's licence.
- Means: the deployment's licence of each dataset listed, as a deployment admin set it
- Does not mean: a claim that a deployment meets a vendor's terms
- Empty: none set: each dataset is kept and read by its catalogue's default
- Filled: decided, by
lake
entitlements¶
repeated message DatasetEntitlement · since v18 · preview
Says who may read the datasets listed.
- Means: to the dashboard every entitlement; to a plugin, its own
- Does not mean: another plugin's entitlement, which a plugin never reads
- Empty: none
- Filled: decided, by
lake
RecordOutcomesRequest¶
meridian.v1.RecordOutcomesRequest, a message.
outcomes¶
repeated message Outcome · since v23 · preview
Carries a batch of outcomes (W10.4).
- Means: 1 to 500 outcomes, recorded whole or refused naming the item and field; each stage of a contract's determination a new version under its one row key
- Does not mean: the payout to holders, which is servicing's
- Empty: never empty
- Filled: as-reported, by
data - Bounds: 1 to 500 items; past it, refused
OutcomesRecordedEvent¶
meridian.v1.OutcomesRecordedEvent, a message.
outcome¶
message Outcome · since v23 · preview
Delivers an outcome the lake recorded (W10.5).
- Means: the row as recorded, with its version and sequence; every version is delivered, never conflated
- Does not mean: a promise of delivery: a reader too slow for them meets a loss marker and reads the outcomes after the watermark it last saw
- Empty: never unset
- Filled: decided, by
lake
ListOutcomesRequest¶
meridian.v1.ListOutcomesRequest, a message.
subjects¶
repeated message SubjectRef · since v23 · preview
Names the event contracts' instruments a read is about (W10.6).
- Means: 1 to 500 entities
- Does not mean: vendor identifiers
- Empty: never empty
- Filled: as-reported, by
reporting - Bounds: 1 to 500 items; past it, refused
after_watermark¶
message Watermark · since v23 · preview
Catches a reader up on the outcomes it lost (W10.6).
- Means: the watermark the reader last saw: answered the versions each dataset partition it names recorded after its sequence there, for the subjects asked, whatever their valid time
- Does not mean: a time: a partition it does not name is not read
- Empty: unset: the version in force, or as of as_of_ns
- Filled: as-reported, by
reporting
as_of_ns¶
moment · since v23 · preview
Reads what the lake knew at a recorded time (W10.6).
- Means: the recorded-time cut-off: nothing recorded after it answers, so a read before a restatement answers the version in force then
- Does not mean: a valid time
- Empty: 0: what the lake knows now
- Filled: as-reported, by
reporting - Unit: nanoseconds since the epoch
ListOutcomesReply¶
meridian.v1.ListOutcomesReply, a message.
outcomes¶
repeated message Outcome · since v23 · preview
Carries the outcomes read (W10.6).
- Means: the version in force of each, or as of a recorded time before a restatement, or those recorded after a watermark; each naming its dataset
- Does not mean: a daily value: no business date is asked or answered
- Empty: none answered
- Filled: decided, by
lake
watermark¶
message Watermark · since v23 · preview
Says where the read was answered.
- Means: the sequence per dataset partition the read was answered at, which a later catch-up names
- Does not mean: a time
- Empty: never unset
- Filled: decided, by
lake
Generated from boundaries/fields.json in meridian-schema at a6a0af7, contract v24.