@prefix eidos: <https://eidos.software/ontology#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix sosa: <http://www.w3.org/ns/sosa/> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix dcat: <http://www.w3.org/ns/dcat#> .
@prefix time: <http://www.w3.org/2006/time#> .
@prefix schema: <https://schema.org/> .
@prefix vann: <http://purl.org/vocab/vann/> .

<https://eidos.software/ontology/observation> a owl:Ontology ;
  owl:versionInfo "19.5.0" ;
  owl:versionIRI <https://eidos.software/ontology/observation/19.5.0> ;
  owl:imports <https://eidos.software/ontology/governance> ;
  dcterms:isPartOf <https://eidos.software/ontology> ;
  dcterms:license <https://creativecommons.org/licenses/by/4.0/> ;
  rdfs:label "Eidos observation module" ;
  rdfs:comment "What the tape measures about the markets: series, observations, lanes, provenance and the derivations it refused; the recording window as the tape saw it. Aligned to SOSA." ;
  rdfs:comment "One module of the Eidos ontology, release 19.5.0; the whole is at https://eidos.software/ontology, generated from the registries in src/ by npm run ontology. Edit the source, not this file." .

# ── observation: classes ──────────────────────────────────────────────

eidos:Market a owl:Class ;
  rdfs:label "Market" ;
  rdfs:subClassOf sosa:FeatureOfInterest ;
  rdfs:comment "One market the tape observes, by chain, market kind and market id: an organization's token on the spot kind, a proposal's conditional pool, an engine's option. The fact rows that observe it name these three columns." .

eidos:Observation a owl:Class ;
  rdfs:label "Observation" ;
  rdfs:subClassOf sosa:Observation ;
  rdfs:comment "One approved observation the history publishes: a series' value for one market at one instant, with when it became known and the provenance that admitted it." .

eidos:ObservationSeries a owl:Class ;
  rdfs:label "Observation series" ;
  rdfs:subClassOf sosa:ObservableProperty ;
  owl:disjointUnionOf ( eidos:PublishedSeries eidos:CrossCheckSeries ) ;
  rdfs:comment "One measured property on the append-only observation tape — what a reading of fdv or price-usd means — keyed per market as (chain, venue, market, series, ts). The tape records every reading; the rollup decides which readings are published, and a row naming a disproven derivation is recorded but never published or measured against." .

[] a owl:AllDifferent ;
  owl:distinctMembers ( eidos:series-price-usd eidos:series-market-cap-usd eidos:series-fdv-usd eidos:series-volume-24h-usd eidos:series-provider-change-24h-pct eidos:series-circulating-supply eidos:series-total-supply eidos:series-largest-holder-pct eidos:series-top-10-holders-pct eidos:series-tracked-organization-count eidos:series-live-organization-count eidos:series-cited-treasury-usd eidos:series-quoted-market-cap-usd eidos:series-launched-organization-count eidos:series-launched-organization-market-cap-usd eidos:series-launched-organization-fdv-usd eidos:series-dao-vault-usd eidos:series-pending-market-count eidos:series-funded-draft-count eidos:series-program-proposal-count eidos:series-dao-vault-balance-usd eidos:series-final-pass-twap eidos:series-final-fail-twap eidos:series-threshold-pct eidos:series-pass-twap eidos:series-fail-twap eidos:series-pass-spot eidos:series-fail-spot eidos:series-pass-base-reserve eidos:series-pass-quote-reserve eidos:series-fail-base-reserve eidos:series-fail-quote-reserve eidos:series-option-twap eidos:series-option-spot ) .

eidos:ObservationSeriesScheme a skos:ConceptScheme ;
  rdfs:label "Observation series scheme" ;
  rdfs:comment "The registered members of ObservationSeries, as a SKOS scheme: each individual states skos:inScheme." .

eidos:PublishedSeries a owl:Class ;
  rdfs:label "Published series" ;
  rdfs:subClassOf eidos:ObservationSeries ;
  rdfs:comment "A series rendered on a public surface as our own measurement, against baselines the tape itself holds." .

eidos:CrossCheckSeries a owl:Class ;
  rdfs:label "Cross-check series" ;
  rdfs:subClassOf eidos:ObservationSeries ;
  owl:disjointWith eidos:PublishedSeries ;
  rdfs:comment "A recorded claim — a provider's own figure or a raw input — kept to verify a published series against and never rendered as ours. The disjointness is the 24h-column rule as logic: someone else's measurement, against a baseline we cannot name, cannot also be a series we publish." .

eidos:CoverageLane a owl:Class ;
  rdfs:label "Coverage lane" ;
  owl:equivalentClass [ a owl:Class ; owl:oneOf ( eidos:lane-price eidos:lane-caps eidos:lane-fdv eidos:lane-treasury eidos:lane-counts eidos:lane-vaults eidos:lane-proposals eidos:lane-windows ) ] ;
  rdfs:comment "A chart-bearing group of series that answer one question together; the lane is as deep as its shallowest member. Closed enumeration: the depth readout, the rollup, and the charts bind on exactly these lanes. The only sense of lane in this vocabulary; a review is a review." .

[] a owl:AllDifferent ;
  owl:distinctMembers ( eidos:lane-price eidos:lane-caps eidos:lane-fdv eidos:lane-treasury eidos:lane-counts eidos:lane-vaults eidos:lane-proposals eidos:lane-windows ) .

eidos:CoverageLaneScheme a skos:ConceptScheme ;
  rdfs:label "Coverage lane scheme" ;
  rdfs:comment "The closed members of CoverageLane, as a SKOS scheme: each individual states skos:inScheme." .

eidos:ProvenanceMethod a owl:Class ;
  rdfs:label "Provenance method" ;
  owl:equivalentClass [ a owl:Class ; owl:oneOf ( eidos:method-live-collection eidos:method-chain-replay eidos:method-dated-source eidos:method-derived-step ) ] ;
  rdfs:comment "How rows come to exist, ordered by what the claim rests on: live collection, exact chain replay, a source's own dated readings, or a derived step over dated events. Only live collection earns unmarked depth; everything else is borrowed reach and says so." .

[] a owl:AllDifferent ;
  owl:distinctMembers ( eidos:method-live-collection eidos:method-chain-replay eidos:method-dated-source eidos:method-derived-step ) .

eidos:ProvenanceMethodScheme a skos:ConceptScheme ;
  rdfs:label "Provenance method scheme" ;
  rdfs:comment "The closed members of ProvenanceMethod, as a SKOS scheme: each individual states skos:inScheme." .

eidos:DisprovenDerivation a owl:Class ;
  rdfs:label "Disproven derivation" ;
  rdfs:subClassOf prov:Entity ;
  rdfs:comment "A derivation a measurement closed. The tape keeps every row that names one — the record is the point — and the rollup publishes none of them, as a value, as history, or as a baseline. Each member carries the measurement that closed it; an entry scoped to a series, a market, or the time before a stated cutoff disproves only those readings, because a source that resolved the wrong asset for one member is not thereby wrong for the members it resolved correctly, and a feed that was fixed on a known day is not wrong for the days after it." .

[] a owl:AllDifferent ;
  owl:distinctMembers ( eidos:disproven-implied-supply eidos:disproven-live-count-status-history eidos:disproven-zklsol-contract-lookup eidos:disproven-feed-cap-fdv-flip eidos:disproven-ranger-quote-source-flips eidos:disproven-metadao-dust-swap-stretch eidos:disproven-last-swap-dust-print eidos:disproven-ore-implausible-pool-volume ) .

eidos:DisprovenDerivationScheme a skos:ConceptScheme ;
  rdfs:label "Disproven derivation scheme" ;
  rdfs:comment "The registered members of DisprovenDerivation, as a SKOS scheme: each individual states skos:inScheme." .

eidos:CollectorSource a owl:Class ;
  rdfs:label "Collector source" ;
  rdfs:subClassOf sosa:Sensor ;
  rdfs:comment "One upstream the collector reads, as its attempts record it: the lanes it serves, when it was first and last asked, and whether it was retired and by what." .

eidos:CalendarDate a owl:Class ;
  rdfs:label "Calendar date" ;
  rdfs:subClassOf time:DateTimeDescription ;
  rdfs:comment "One UTC calendar day in the span the run observed: the conformed day facts are grouped by." .

eidos:WindowStage a owl:Class ;
  rdfs:label "Window stage" ;
  owl:equivalentClass [ a owl:Class ; owl:oneOf ( eidos:window-stage-queued eidos:window-stage-recording eidos:window-stage-closing eidos:window-stage-settling ) ] ;
  rdfs:comment "Where a recording window sits as the app watches it: queued (a market whose TWAP has not started), recording, closing (the final quarter of the window) and settling (closed, not yet finalized). One list (src/desk-watch-core.ts) for the watcher, the alerts and every table; the other words pages used — resolved, past, decided, awaiting finalization — are not states." .

[] a owl:AllDifferent ;
  owl:distinctMembers ( eidos:window-stage-queued eidos:window-stage-recording eidos:window-stage-closing eidos:window-stage-settling ) .

eidos:WindowStageScheme a skos:ConceptScheme ;
  rdfs:label "Window stage scheme" ;
  rdfs:comment "The closed members of WindowStage, as a SKOS scheme: each individual states skos:inScheme." .

eidos:RecordingWindow a owl:Class ;
  rdfs:label "Recording window" ;
  rdfs:subClassOf time:ProperInterval ;
  rdfs:comment "A proposal's recording window: the threshold, the pass and fail TWAPs, the state the window reached, and its times, which are of two kinds that are not interchangeable. The public object (/api/live-proposals) carries openedAt and closesAt, the proposal's scheduled open and close as its account states them, the same instants as the decision's decisionOpenedAt and decisionClosesAt. The warehouse relation carries what the tape observed instead, windowTwapStartedAt and windowLastTickAt, and never the schedule. The object a forecast is recorded against and a filing will be made before." .

# ── observation: object and annotation properties ─────────────────────

eidos:inCoverageLane a owl:ObjectProperty, owl:FunctionalProperty ;
  rdfs:domain eidos:ObservationSeries ;
  rdfs:range eidos:CoverageLane ;
  rdfs:comment "The chart-bearing lane a series answers within. Lanes are cut at the granularity the consuming charts bind at, because a lane grouped wider than its charts is how one stale point once read as a month of depth. A series outside every lane is a table cell or a cross-check, never a chart." .

eidos:crossChecks a owl:ObjectProperty, owl:FunctionalProperty ;
  rdfs:domain eidos:CrossCheckSeries ;
  rdfs:range eidos:PublishedSeries ;
  rdfs:comment "The published series a recorded claim exists to verify. The edge points from the claim to our measurement, never the reverse: the provider's figure is compared against ours and is not an input to it." .

eidos:windowStage a owl:ObjectProperty, owl:FunctionalProperty ;
  rdfs:domain eidos:RecordingWindow ;
  rdfs:range eidos:WindowStage ;
  rdfs:comment "Where a window sits as the app watches it: queued before its TWAP starts, recording, closing in the final quarter, settling after the close until finalization. One list, shared by the watcher, the alerts and every table." .

eidos:refusesSeries a owl:ObjectProperty ;
  rdfs:domain eidos:DisprovenDerivation ;
  rdfs:range eidos:ObservationSeries ;
  rdfs:comment "A series a refusal is scoped to, by IRI. scopedToSeries carries the same scope as the registry's string ids; this edge lets a query join it to the series node." .

eidos:decisionHasWindow a owl:ObjectProperty ;
  rdfs:domain eidos:Decision ;
  rdfs:range eidos:RecordingWindow ;
  owl:inverseOf eidos:windowOfDecision ;
  rdfs:comment "has recording window (one-or-none; asserted by tape, append-and-supersede, as-of-known-time). The recording window of the decision: MetaDAO proposals only today, keyed by the same account; the other engines' windows are series on the tape and not yet window objects. The public resolver (/api/live-proposals) answers for every proposal the published snapshot holds; the warehouse relation holds a row only for a window the tape read, so there it may be absent." .

eidos:proposalHasWindow a owl:ObjectProperty ;
  rdfs:domain eidos:GovernanceProposal ;
  rdfs:range eidos:RecordingWindow ;
  rdfs:subPropertyOf eidos:decisionHasWindow ;
  rdfs:comment "has recording window (one-or-none; asserted by tape, append-and-supersede, as-of-known-time). The lifecycle the tape records for this proposal: each state transition is a new row with the time it became known; the latest is the window's current state. MetaDAO's form of decision-has-window, and like it one-or-none: the public resolver (/api/live-proposals) answers for every proposal the published snapshot holds, but the warehouse relation (main.window_outlook_windows) holds a row only for a window the tape read, and a proposal it never read, an open one included, has none there." .

eidos:windowOfDecision a owl:ObjectProperty ;
  rdfs:domain eidos:RecordingWindow ;
  rdfs:range eidos:Decision ;
  rdfs:comment "window of (one; asserted by tape, immutable, at-read). The decision this window belongs to: a MetaDAO decision today, joined by its proposal account, the key both rows hold." .

eidos:marketOfOrganization a owl:ObjectProperty ;
  rdfs:domain eidos:Market ;
  rdfs:range eidos:Organization ;
  rdfs:comment "market of organization (one-or-none; asserted by warehouse, re-derived-per-seal, at-read). The tracked organization whose token or decision the market prices; absent for a market no registry names." .

eidos:marketOfDecision a owl:ObjectProperty ;
  rdfs:domain eidos:Market ;
  rdfs:range eidos:Decision ;
  rdfs:comment "market of decision (one-or-none; asserted by warehouse, re-derived-per-seal, at-read). The decision this market trades, joined by engine, canonical chain and decision id on every decoded engine. Spot, vault and KPI markets have no decision." .

eidos:marketHasObservations a owl:ObjectProperty ;
  rdfs:domain eidos:Market ;
  rdfs:range eidos:Observation ;
  rdfs:subPropertyOf sosa:isFeatureOfInterestOf ;
  rdfs:comment "has observations (many; asserted by tape, append-and-supersede, as-of-known-time). Every approved observation of the market." .

eidos:observationOfMarket a owl:ObjectProperty ;
  rdfs:domain eidos:Observation ;
  rdfs:range eidos:Market ;
  rdfs:subPropertyOf sosa:hasFeatureOfInterest ;
  owl:inverseOf eidos:marketHasObservations ;
  rdfs:comment "observes market (one; asserted by tape, immutable, at-read). The market the value was read from." .

# ── observation: datatype properties ──────────────────────────────────

eidos:calendarDay a owl:DatatypeProperty ;
  rdfs:domain eidos:CalendarDate ;
  rdfs:range xsd:date ;
  rdfs:comment "The UTC day. Bound to main.dim_date.date_day." .

eidos:calendarIsoWeek a owl:DatatypeProperty ;
  rdfs:domain eidos:CalendarDate ;
  rdfs:range xsd:string ;
  rdfs:comment "Its ISO week, as YYYY-Www. Bound to main.dim_date.iso_week." .

eidos:calendarIsWeekend a owl:DatatypeProperty ;
  rdfs:domain eidos:CalendarDate ;
  rdfs:range xsd:boolean ;
  rdfs:comment "Whether it is a Saturday or Sunday. Bound to main.dim_date.is_weekend." .

eidos:calendarMonth a owl:DatatypeProperty ;
  rdfs:domain eidos:CalendarDate ;
  rdfs:range xsd:integer ;
  rdfs:comment "Its month, 1 to 12. Bound to main.dim_date.month." .

eidos:calendarYear a owl:DatatypeProperty ;
  rdfs:domain eidos:CalendarDate ;
  rdfs:range xsd:integer ;
  rdfs:comment "Its year. Bound to main.dim_date.year." .

eidos:consumers a owl:DatatypeProperty ;
  rdfs:domain eidos:CoverageLane ;
  rdfs:range xsd:string .

eidos:disprovenBefore a owl:DatatypeProperty ;
  rdfs:domain eidos:DisprovenDerivation ;
  rdfs:range xsd:dateTime .

eidos:disprovenFrom a owl:DatatypeProperty ;
  rdfs:domain eidos:DisprovenDerivation ;
  rdfs:range xsd:dateTime .

eidos:disprovenSignature a owl:DatatypeProperty ;
  rdfs:domain eidos:DisprovenDerivation ;
  rdfs:range xsd:string .

eidos:episodic a owl:DatatypeProperty ;
  rdfs:domain eidos:CoverageLane ;
  rdfs:range xsd:boolean .

eidos:marketApprovedObservationCount a owl:DatatypeProperty ;
  rdfs:domain eidos:Market ;
  rdfs:range xsd:integer ;
  rdfs:comment "How many of them the admission rules approved: the readings the Observation class and approved_history hold. Bound to main.dim_market.approved_observations." .

eidos:marketChain a owl:DatatypeProperty ;
  rdfs:domain eidos:Market ;
  rdfs:range xsd:string ;
  rdfs:comment "The chain the market trades on. Bound to main.dim_market.chain." .

eidos:marketEngine a owl:DatatypeProperty ;
  rdfs:domain eidos:Market ;
  rdfs:range xsd:string ;
  rdfs:comment "The decision market engine, for a market an engine runs. Bound to main.dim_market.engine." .

eidos:marketEntityType a owl:DatatypeProperty ;
  rdfs:domain eidos:Market ;
  rdfs:range xsd:string ;
  rdfs:comment "What the market prices: an organization's token, a proposal's pass or fail side, an engine option. Bound to main.dim_market.entity_type." .

eidos:marketFirstApprovedAt a owl:DatatypeProperty ;
  rdfs:domain eidos:Market ;
  rdfs:range xsd:dateTime ;
  rdfs:comment "The first approved observation's time; absent where none was approved. Bound to main.dim_market.first_approved_at." .

eidos:marketFirstObservedAt a owl:DatatypeProperty ;
  rdfs:domain eidos:Market ;
  rdfs:range xsd:dateTime ;
  rdfs:comment "The first observation's time, approved or not. Bound to main.dim_market.first_observed_at." .

eidos:marketIdentifier a owl:DatatypeProperty ;
  rdfs:domain eidos:Market ;
  rdfs:range xsd:string ;
  rdfs:comment "The market's id on its venue (a slug, a pool account, an option). Bound to main.dim_market.market_id." .

eidos:marketKind a owl:DatatypeProperty ;
  rdfs:domain eidos:Market ;
  rdfs:range xsd:string ;
  rdfs:comment "The kind of market the market id names on its chain: spot, token-spot, dao-vaults, desk-kpi, metadao-futarchy, or a decoded engine's id (the tape's market_kind column; named venue until 10.0.0). Never a Venue — where the tokens trade is the Venue class. Bound to main.dim_market.market_kind." .

eidos:marketLastApprovedAt a owl:DatatypeProperty ;
  rdfs:domain eidos:Market ;
  rdfs:range xsd:dateTime ;
  rdfs:comment "The newest approved observation's time; absent where none was approved. Bound to main.dim_market.last_approved_at." .

eidos:marketLastObservedAt a owl:DatatypeProperty ;
  rdfs:domain eidos:Market ;
  rdfs:range xsd:dateTime ;
  rdfs:comment "The newest observation's time, approved or not. Bound to main.dim_market.last_observed_at." .

eidos:marketObservationCount a owl:DatatypeProperty ;
  rdfs:domain eidos:Market ;
  rdfs:range xsd:integer ;
  rdfs:comment "How many observations the run holds for the market, approved or withheld: every reading the tape recorded. Bound to main.dim_market.observations." .

eidos:observationKnownAt a owl:DatatypeProperty ;
  rdfs:domain eidos:Observation ;
  rdfs:range xsd:dateTime ;
  rdfs:comment "When the tape first held the value. Bound to main.approved_history.known_at (stored as its lexical form)." .

eidos:observationProvenance a owl:DatatypeProperty ;
  rdfs:domain eidos:Observation ;
  rdfs:range xsd:string ;
  rdfs:comment "The provenance the admission rules accepted it under. Bound to main.approved_history.provenance." .

eidos:observationSeries a owl:DatatypeProperty ;
  rdfs:domain eidos:Observation ;
  rdfs:range xsd:string ;
  rdfs:comment "The series id (series-registry.ts) the value is a reading of. Bound to main.approved_history.series." .

eidos:observedAt a owl:DatatypeProperty ;
  rdfs:domain eidos:Observation ;
  rdfs:range xsd:dateTime ;
  rdfs:comment "The instant the value is of. Bound to main.approved_history.ts (stored as its lexical form)." .

eidos:observedValue a owl:DatatypeProperty ;
  rdfs:domain eidos:Observation ;
  rdfs:range xsd:decimal ;
  rdfs:subPropertyOf sosa:hasSimpleResult ;
  rdfs:comment "The value, in the series' unit. Bound to main.approved_history.value." .

eidos:provenancePattern a owl:DatatypeProperty ;
  rdfs:domain eidos:DisprovenDerivation ;
  rdfs:range xsd:string .

eidos:provenancePrefix a owl:DatatypeProperty ;
  rdfs:domain eidos:ProvenanceMethod ;
  rdfs:range xsd:string .

eidos:scopedToMarket a owl:DatatypeProperty ;
  rdfs:domain eidos:DisprovenDerivation ;
  rdfs:range xsd:string .

eidos:scopedToSeries a owl:DatatypeProperty ;
  rdfs:domain eidos:DisprovenDerivation ;
  rdfs:range xsd:string .

eidos:seriesId a owl:DatatypeProperty ;
  rdfs:domain [ a owl:Class ; owl:unionOf ( eidos:CrossCheckSeries eidos:PublishedSeries ) ] ;
  rdfs:range xsd:string .

eidos:sourceAttempts a owl:DatatypeProperty ;
  rdfs:domain eidos:CollectorSource ;
  rdfs:range xsd:integer ;
  rdfs:comment "How many reads the collector recorded by the cutoff. Bound to main.dim_source.attempts." .

eidos:sourceFirstAttemptAt a owl:DatatypeProperty ;
  rdfs:domain eidos:CollectorSource ;
  rdfs:range xsd:dateTime ;
  rdfs:comment "The first recorded read. Bound to main.dim_source.first_attempt_at." .

eidos:sourceIsRetired a owl:DatatypeProperty ;
  rdfs:domain eidos:CollectorSource ;
  rdfs:range xsd:boolean ;
  rdfs:comment "Whether a recorded retirement stopped the source by the cutoff. Bound to main.dim_source.is_retired." .

eidos:sourceLastAttemptAt a owl:DatatypeProperty ;
  rdfs:domain eidos:CollectorSource ;
  rdfs:range xsd:dateTime ;
  rdfs:comment "The newest recorded read. Bound to main.dim_source.last_attempt_at." .

eidos:sourceName a owl:DatatypeProperty ;
  rdfs:domain eidos:CollectorSource ;
  rdfs:range xsd:string ;
  rdfs:comment "The source's id as the collector records it. Bound to main.dim_source.source." .

eidos:unit a owl:DatatypeProperty ;
  rdfs:range xsd:string .

eidos:windowLastTickAt a owl:DatatypeProperty ;
  rdfs:domain eidos:RecordingWindow ;
  rdfs:range xsd:dateTime ;
  rdfs:comment "The last tick the tape holds for the window at the cutoff. Not the proposal's scheduled close (decisionClosesAt): no tape series carries the schedule, and the tape stops reading before or after it. Bound to main.window_outlook_windows.last_tick_at (stored as its lexical form)." .

eidos:windowTwapStartedAt a owl:DatatypeProperty ;
  rdfs:domain eidos:RecordingWindow ;
  rdfs:range xsd:dateTime ;
  rdfs:comment "When the window's TWAP started as the tape saw it: the time of the threshold reading, or the first tick where the tape holds no threshold. Not the proposal's scheduled open (decisionOpenedAt), which comes before it. Bound to main.window_outlook_windows.twap_started_at (stored as its lexical form)." .

# ── observation: individuals (generated from the registries) ──────────

eidos:window-stage-queued a eidos:WindowStage ;
  rdfs:label "queued" ;
  skos:inScheme eidos:WindowStageScheme .

eidos:window-stage-recording a eidos:WindowStage ;
  rdfs:label "recording" ;
  skos:inScheme eidos:WindowStageScheme .

eidos:window-stage-closing a eidos:WindowStage ;
  rdfs:label "closing" ;
  skos:inScheme eidos:WindowStageScheme .

eidos:window-stage-settling a eidos:WindowStage ;
  rdfs:label "settling" ;
  skos:inScheme eidos:WindowStageScheme .

eidos:method-live-collection a eidos:ProvenanceMethod ;
  rdfs:label "Live collection" ;
  skos:inScheme eidos:ProvenanceMethodScheme ;
  eidos:note "The scheduled collector reading a published, schema-validated endpoint at the snapshot's own observation time." ;
  eidos:provenancePrefix "api:" ;
  eidos:provenancePrefix "registry:" .

eidos:method-chain-replay a eidos:ProvenanceMethod ;
  rdfs:label "Chain replay" ;
  skos:inScheme eidos:ProvenanceMethodScheme ;
  eidos:note "Exact reconstruction from confirmed transaction history — determined by dated events, never estimated between them." ;
  eidos:provenancePrefix "solana-rpc:" ;
  eidos:provenancePrefix "replay:" ;
  eidos:provenancePrefix "index:finalization-event" .

eidos:method-dated-source a eidos:ProvenanceMethod ;
  rdfs:label "Dated source" ;
  skos:inScheme eidos:ProvenanceMethodScheme ;
  eidos:note "A source's own dated readings, imported at the source's own resolution and named per row." ;
  eidos:provenancePrefix "coingecko:" ;
  eidos:provenancePrefix "metadao-external-api:" ;
  eidos:provenancePrefix "01resolved:" .

eidos:method-derived-step a eidos:ProvenanceMethod ;
  rdfs:label "Derived step" ;
  skos:inScheme eidos:ProvenanceMethodScheme ;
  eidos:note "A step function over dated events; every intermediate instant carries an exactly-known value, or the row does not exist." ;
  eidos:provenancePrefix "reconstruction:" .

eidos:disproven-implied-supply a eidos:DisprovenDerivation ;
  rdfs:label "implied-supply" ;
  skos:inScheme eidos:DisprovenDerivationScheme ;
  eidos:note "Implied supply — a market cap divided by a price — was closed by three measurements on 25–26 Aug 2026: the tape's own price/cap overlap implies supplies spread 0.56% to 17,053% across markets, the post-FDV-fix readings still swing 27× on one member in five hours, and every launched mint is mintable so no supply is verifiably fixed. A ±$13M error band on a +$34.7M published move is a wrong number, and the house rule is that a window with no honest baseline is withheld." ;
  eidos:provenancePattern "implied-supply" .

eidos:disproven-live-count-status-history a eidos:DisprovenDerivation ;
  rdfs:label "live-count-status-history" ;
  skos:inScheme eidos:DisprovenDerivationScheme ;
  eidos:note "A past live count cannot be derived. The organization registry records today's status and no date it changed, so no step function over listings determines what the count was — which is what this series' own note already says. One pre-collection row naming this method reached the tape before the backfill tool was corrected, no shipped code emits the provenance, and the rollup was measuring the published 30-day delta against it while the drawn chart began 2.3 days ago. Refused 27 Aug 2026, so the window withholds until collection earns it." ;
  eidos:provenancePattern "01resolved-status-history" ;
  eidos:scopedToSeries "live-organization-count" .

eidos:disproven-zklsol-contract-lookup a eidos:DisprovenDerivation ;
  rdfs:label "zklsol-contract-lookup" ;
  skos:inScheme eidos:DisprovenDerivationScheme ;
  eidos:note "The CoinGecko contract lookup resolved a different asset for this member. Its 18 pre-collection rows sit in two flat plateaus, 1.099e-06 and 0.009998, that disagree with each other by 9,099× and with the venue's own quote — 0.149–0.151 since collection began, independently 0.1509 on GeckoTerminal at the same supply the index reads on chain — by four and five orders of magnitude. Scoped to this member: the same source is within 1.6× of the live quote for areal-finance, coal, and superclaw, and those rows keep their reach." ;
  eidos:provenancePattern "coingecko:contract-market-chart-range" ;
  eidos:scopedToSeries "price-usd" ;
  eidos:scopedToMarket "zklsol" .

eidos:disproven-feed-cap-fdv-flip a eidos:DisprovenDerivation ;
  rdfs:label "feed-cap-fdv-flip" ;
  skos:inScheme eidos:DisprovenDerivationScheme ;
  eidos:note "From collection start on 23 Aug 2026 until the source fix landed on 25 Aug, the quote feed substituted FDV for circulating cap per member per read, so the recorded cap flipped between two levels with no trade behind it: on the tape copy the per-member cap lane carries 328 adjacent reads more than 1.5× apart against 32 on fdv-usd over the same rows, concentrated in the large members (jito-dao 302M↔585M on 24 Aug, 39 flips before the fix and one after; p2p-protocol 51↔1, umbra 41↔0, solomon 40↔0), and the universe sum alternated 543M↔846M all of 24 Aug. The round-trip gate cannot see a 50/50 alternation between two plateaus. The last flipped row is 2026-08-25T21:58:44Z and no aggregate row moves more than 1.3× between reads after 22:14 that day, so the cutoff is the first read of the fixed feed; the reconstructed roster sums over the same rows carry the same defect. Without this entry those rows become the 30-day baseline of both aggregate cards on 22–26 Sep 2026 and the published delta swings by the whole flip within a day." ;
  eidos:provenancePattern "^(?:api:organization-quotes|reconstruction:tape-spot-market-cap-readings)" ;
  eidos:scopedToSeries "market-cap-usd" ;
  eidos:scopedToSeries "quoted-market-cap-usd" ;
  eidos:scopedToSeries "launched-organization-market-cap-usd" ;
  eidos:disprovenBefore "2026-08-25T22:00:00.000Z"^^xsd:dateTime .

eidos:disproven-ranger-quote-source-flips a eidos:DisprovenDerivation ;
  rdfs:label "ranger-quote-source-flips" ;
  skos:inScheme eidos:DisprovenDerivationScheme ;
  eidos:note "Ranger (RNGR) never had a ticker row, and its only venues were a drained futarchy pool and, from 13 Sep 2026, one meteora pair holding $40.75 of liquidity on $0.71 of daily volume. With no liquidity floor and no staleness check, every read from 25 Aug 2026 published whichever source answered: the price lane on the tape copy is 1,377 rows in 30 interleaved plateaus that alternate between sources within the hour (0.02569 against 0.03021 on 25–26 Aug, 0.004129 against 0.002644 on 27 Aug), then a single Jupiter print from the drained pool, 0.001275 at block 443983644, repeated 596 times from 3 to 13 Sep with receipt time as its timestamp, then the dust pair at 0.02634 — a 20.7× step the provider's own 24h figure (−1.79%) does not contain, published as +1966% on the 24h and 7d columns. Not one plateau is a trade. Scoped to this member: the same provenance is within 7 points of the provider's 24h figure for every other entity. The cutoff is when the quote extractor that withholds stale and dust prints reaches the collector; a row observed after it either carries a real print or was never written." ;
  eidos:provenancePattern "^api:organization-quotes" ;
  eidos:scopedToSeries "price-usd" ;
  eidos:scopedToSeries "market-cap-usd" ;
  eidos:scopedToSeries "fdv-usd" ;
  eidos:scopedToMarket "ranger" ;
  eidos:disprovenBefore "2026-09-15T00:00:00.000Z"^^xsd:dateTime .

eidos:disproven-metadao-dust-swap-stretch a eidos:DisprovenDerivation ;
  rdfs:label "metadao-dust-swap-stretch" ;
  skos:inScheme eidos:DisprovenDerivationScheme ;
  eidos:note "For two days the last swap of nearly every hour in MetaDAO's pool was a dust swap of 101 units of the quote, so the backfill that read each hour's last swap recorded its ratio instead of a price: 44 of the 48 hourly rows from 06:59 on 21 Aug to 05:59 on 23 Aug 2026 are exactly 101/18 (5.611111), 101/17 (5.941176) or 101/19 (5.315789), and 24 of them sit more than 2% above GeckoTerminal's high–low range for the surrounding hours, 16 by 3–7% (audit of 6 Oct 2026). The four rows between them read inside the range, but they are islands a chart would join into a line across hours no reading measured, so the stretch is refused whole and the chart breaks there: the rows either side, 05:49 on 21 Aug and 06:58 on 23 Aug, are 49 hours apart, past the contiguity tolerance. The other 736 MetaDAO rows from the same backfill keep their reach." ;
  eidos:provenancePattern "^metadao-external-api:dexscreener-events:last-swap-hour$" ;
  eidos:scopedToSeries "price-usd" ;
  eidos:scopedToMarket "metadao" ;
  eidos:disprovenBefore "2026-08-23T06:00:00.000Z"^^xsd:dateTime ;
  eidos:disprovenFrom "2026-08-21T06:00:00.000Z"^^xsd:dateTime .

eidos:disproven-last-swap-dust-print a eidos:DisprovenDerivation ;
  rdfs:label "last-swap-dust-print" ;
  skos:inScheme eidos:DisprovenDerivationScheme ;
  eidos:note "The method is sound except where the hour's last swap was dust. Measured on 6 Oct 2026 against GeckoTerminal's hourly OHLCV for the same MetaDAO pools, the backfill's 7,709 price rows on 20 members land within 2% of the surrounding hours' high–low range in all but 56 cases, and every one of MetaDAO's 24 misses is an exact small ratio (101/17, 101/18, 101/19); Umbra's 496 and Solomon's 474 rows hold. Exact small ratios are the dust signature: 51 rows carry one with a denominator of 100 or less (46 MetaDAO, 2 Futardio Cult, 2 Umbra, 1 Avici), each too coarse to place the price within 1%, and they are refused wherever they fall. The same dust bot's prints against larger amounts (101/358 on Umbra, 101/770 on Loyal) resolve the price within about 1% and stay. The other 32 misses are not this defect: Paystream's 31 are measured against a different, $14-deep pool, and one Flash Trade print sits 3% below a thin hour's range." ;
  eidos:provenancePattern "^metadao-external-api:dexscreener-events:last-swap-hour$" ;
  eidos:scopedToSeries "price-usd" ;
  eidos:disprovenSignature "An exact ratio of small integers, denominator at most 100: a dust swap's print, whose one-unit step moves the price by 1% or more." .

eidos:disproven-ore-implausible-pool-volume a eidos:DisprovenDerivation ;
  rdfs:label "ore-implausible-pool-volume" ;
  skos:inScheme eidos:DisprovenDerivationScheme ;
  eidos:note "From 5 Oct 2026 ORE's 24h volume summed two thin pools whose stated volume their trades could not have moved: ORE/STONK, averaging 146% of its $7,123 of liquidity a trade, and ORE/GLDx, 45% of its $93,001, while both pools' prices sat at the consensus. On 14 Oct they stated $8.3M of the $9.3M published, against GeckoTerminal's $1.18M for the token. Replaying the archived DexScreener receipts behind every ORE volume reading since receipts began (11 Sep, 3,100 readings; 3,071 reproduce exactly under the rule they were written with, and the other 29, on 6–8 Oct, by 0.2% under an earlier volume rule) finds 566 inflated, the first at 22:45 on 5 Oct and the last at 18:30 on 14 Oct, interleaved with 267 that hold and whose values overlap theirs ($0.84M–$4.4M either way), so neither a value test nor anything finer than the stretch separates them. The stretch is refused whole, 833 readings, so the chart breaks there rather than drawing islands through hours the inflated readings held; the cutoff is the first reading the collector took with the fixed rule (`isImplausibleVolume`), which read $983,844. The 11–12 Sep spike to $7.2M is not this defect: the replay leaves it unchanged, and it rises and falls over 24 hours as a real day's trading does." ;
  eidos:provenancePattern "^api:organization-quotes" ;
  eidos:scopedToSeries "volume-24h-usd" ;
  eidos:scopedToMarket "ore" ;
  eidos:disprovenBefore "2026-10-14T18:45:10.498Z"^^xsd:dateTime ;
  eidos:disprovenFrom "2026-10-05T22:45:16.869Z"^^xsd:dateTime .

eidos:lane-price a eidos:CoverageLane ;
  rdfs:label "price lane" ;
  skos:inScheme eidos:CoverageLaneScheme ;
  eidos:consumers "organizations table 24h/7d/30d change columns; the organization page's recorded-history chart, read end to end from the warehouse-history index" ;
  eidos:episodic false .

eidos:lane-caps a eidos:CoverageLane ;
  rdfs:label "caps lane" ;
  skos:inScheme eidos:CoverageLaneScheme ;
  eidos:consumers "launched composition stack and the recorded market-cap aggregates" ;
  eidos:episodic false .

eidos:lane-fdv a eidos:CoverageLane ;
  rdfs:label "fdv lane" ;
  skos:inScheme eidos:CoverageLaneScheme ;
  eidos:consumers "the Overview's cohort FDV chart, merged with the published as-of index" ;
  eidos:episodic false .

eidos:lane-treasury a eidos:CoverageLane ;
  rdfs:label "treasury lane" ;
  skos:inScheme eidos:CoverageLaneScheme ;
  eidos:consumers "cited-treasury KPI chart" ;
  eidos:episodic false .

eidos:lane-counts a eidos:CoverageLane ;
  rdfs:label "counts lane" ;
  skos:inScheme eidos:CoverageLaneScheme ;
  eidos:consumers "tracked/live/launched count cards' 30-day indicators" ;
  eidos:episodic false .

eidos:lane-vaults a eidos:CoverageLane ;
  rdfs:label "vaults lane" ;
  skos:inScheme eidos:CoverageLaneScheme ;
  eidos:consumers "DAO-vaults KPI card" ;
  eidos:episodic false .

eidos:lane-proposals a eidos:CoverageLane ;
  rdfs:label "proposals lane" ;
  skos:inScheme eidos:CoverageLaneScheme ;
  eidos:consumers "proposals KPI charts" ;
  eidos:episodic false .

eidos:lane-windows a eidos:CoverageLane ;
  rdfs:label "windows lane" ;
  skos:inScheme eidos:CoverageLaneScheme ;
  eidos:consumers "proposal window charts and the cohort cards, which also draw replayed windows" ;
  eidos:episodic true .

eidos:series-price-usd a eidos:PublishedSeries ;
  rdfs:label "Spot price" ;
  skos:inScheme eidos:ObservationSeriesScheme ;
  eidos:seriesId "price-usd" ;
  eidos:unit "price" ;
  eidos:note "Per-organization token price. Backing series for the organizations table's 24h/7d/30d change columns, measured against the tape's own baselines. Also the Combinator, Umia and futarchy.fi organizations' token prices, and MetaDAO tokens the quote feed does not price (each hour's last precise swap in the DAO's own spot pool, read at the hours its decisions are measured at), keyed by mint or token address under the token-spot market kind on the engine's chain, which the decision outcomes measure from the close." .

eidos:series-market-cap-usd a eidos:PublishedSeries ;
  rdfs:label "Quoted market cap" ;
  skos:inScheme eidos:ObservationSeriesScheme ;
  eidos:seriesId "market-cap-usd" ;
  eidos:unit "usd" ;
  eidos:note "Per-organization market cap as the quote states it: the published price times the quote's circulating supply (on-chain total minus registered lock balances where the chain read covers the mint, a feed's figure otherwise; the quote's marketCapBasis names which), never above the FDV. Where the source cannot tell cap from FDV the quote carries marketCapIsFdv and the reading is recorded all the same — the flag rides on the quote, not on this series, because dropping the member would withhold the whole-universe sum on every read. No observation when the quote has no cap, including a cap a quote gate withheld (marketCapWithheld or priceWithheld). The composition stack sums it per registry class at the instants the whole-universe sum was recorded." .

eidos:series-fdv-usd a eidos:PublishedSeries ;
  rdfs:label "Fully diluted valuation" ;
  skos:inScheme eidos:ObservationSeriesScheme ;
  eidos:seriesId "fdv-usd" ;
  eidos:unit "usd" ;
  eidos:note "Per-organization FDV as the quote feed states it; a current-value table cell, not a chart series." .

eidos:series-volume-24h-usd a eidos:PublishedSeries ;
  rdfs:label "24h volume" ;
  skos:inScheme eidos:ObservationSeriesScheme ;
  eidos:seriesId "volume-24h-usd" ;
  eidos:unit "usd" ;
  eidos:note "Per-organization trailing-24h volume as the quote feed states it: every pool DexScreener lists for the mint, summed, else Jupiter's token-wide buy plus sell volume; never the futarchy pool's alone. No observation when no feed states one, never a zero: a quote whose price stands after both feeds answered without a volume carries volumeWithheld (volume-unstated), and a feed that did not answer leaves the member missing from its series lane." .

eidos:series-provider-change-24h-pct a eidos:CrossCheckSeries ;
  rdfs:label "Provider 24h change" ;
  skos:inScheme eidos:ObservationSeriesScheme ;
  eidos:seriesId "provider-change-24h-pct" ;
  eidos:unit "percent" ;
  eidos:note "The provider's own 24h change figure, kept to cross-check the change we measure. Never rendered: measured by someone else, against a baseline we cannot name." .

eidos:series-circulating-supply a eidos:CrossCheckSeries ;
  rdfs:label "Circulating supply" ;
  skos:inScheme eidos:ObservationSeriesScheme ;
  eidos:seriesId "circulating-supply" ;
  eidos:unit "token" ;
  eidos:note "The circulating supply a quote's market cap rests on: the mint's on-chain total supply minus the balances registered lock programs hold (src/supply-locks.ts) where the chain read covers the mint, otherwise a feed's stated float. Each feed's own claim is recorded beside it under the feed's provenance, so a cap is checkable against its inputs and the feeds against the chain." .

eidos:series-total-supply a eidos:CrossCheckSeries ;
  rdfs:label "Total supply" ;
  skos:inScheme eidos:ObservationSeriesScheme ;
  eidos:seriesId "total-supply" ;
  eidos:unit "token" ;
  eidos:note "The mint's total supply: on-chain getTokenSupply where the chain answered, a feed's claim otherwise, recorded beside circulating supply for the same cross-check. Not collected under the token-spot market kind: the Combinator, Umia and futarchy.fi organizations' tokens carry only price-usd on the tape, because the collector does not ask the engine-token reader for supply or holders (src/engine-token-holders.ts). The reader would take a supply from chain state only (the mint account, or totalSupply() through Multicall3; a bridged futarchy.fi token's is its Ethereum home token's)." .

eidos:series-largest-holder-pct a eidos:PublishedSeries ;
  rdfs:label "Largest holder share" ;
  skos:inScheme eidos:ObservationSeriesScheme ;
  eidos:seriesId "largest-holder-pct" ;
  eidos:unit "percent" ;
  eidos:note "Per-organization share of the mint's on-chain total supply held by its largest holder: the twenty largest token accounts (getTokenLargestAccounts), each attributed to its owner, with balances owned by a registered lock program (src/supply-locks.ts) or a known pool vault (src/pool-vaults.ts) reported on the quote apart and never counted as a holder. Published beside the market cap because a chain float counts every token no registered lock holds, whoever holds it. No observation when the quote withholds the reading (holderConcentrationWithheld). Not collected under the token-spot market kind: the Combinator, Umia and futarchy.fi organizations' tokens carry only price-usd on the tape, because the collector does not ask the engine-token reader for supply or holders (src/engine-token-holders.ts). The reader would take Combinator's mints the same way; GNO's and PNK's from Blockscout's holder lists on Ethereum and Gnosis, every listed balance read on chain, summed by address across the two chains with the bridge's custody set apart, and no observation when a holder the indexer did not list could be larger; Umia's tokens have none, since no holder list can be read on Base." .

eidos:series-top-10-holders-pct a eidos:PublishedSeries ;
  rdfs:label "Top-10 holder share" ;
  skos:inScheme eidos:ObservationSeriesScheme ;
  eidos:seriesId "top-10-holders-pct" ;
  eidos:unit "percent" ;
  eidos:note "Per-organization share of the mint's on-chain total supply held by its ten largest holders, read and attributed as largest-holder-pct is. No observation when fewer than ten holders appear among the twenty largest accounts of a mint that has more, since the rest are out of sight, or when the quote withholds the reading. Not collected under the token-spot market kind: the Combinator, Umia and futarchy.fi organizations' tokens carry only price-usd on the tape, because the collector does not ask the engine-token reader for supply or holders (src/engine-token-holders.ts)." .

eidos:series-tracked-organization-count a eidos:PublishedSeries ;
  rdfs:label "Tracked organizations" ;
  skos:inScheme eidos:ObservationSeriesScheme ;
  eidos:seriesId "tracked-organization-count" ;
  eidos:unit "count" ;
  eidos:note "Registry row count. Reconstructable as an exact step over MetaDAO ticker start dates, which is how its history reaches past the collector's birth." .

eidos:series-live-organization-count a eidos:PublishedSeries ;
  rdfs:label "Live organizations" ;
  skos:inScheme eidos:ObservationSeriesScheme ;
  eidos:seriesId "live-organization-count" ;
  eidos:unit "count" ;
  eidos:note "Tracked orgs currently in live status. The registry records today's status, not when it changed, so this lane's honest history starts at collection." .

eidos:series-cited-treasury-usd a eidos:PublishedSeries ;
  rdfs:label "Reported treasury" ;
  skos:inScheme eidos:ObservationSeriesScheme ;
  eidos:seriesId "cited-treasury-usd" ;
  eidos:unit "usd" ;
  eidos:note "Sum of 01Resolved's cited treasury figures. A step over editions: the value between editions is exactly what the app cited, so edition-dated history is honest." .

eidos:series-quoted-market-cap-usd a eidos:PublishedSeries ;
  rdfs:label "Quoted market cap (universe)" ;
  skos:inScheme eidos:ObservationSeriesScheme ;
  eidos:seriesId "quoted-market-cap-usd" ;
  eidos:unit "usd" ;
  eidos:note "The whole quoted universe summed at complete instants only. Derivable exactly wherever the tape holds a complete instant, and no further: pre-tape history needs supplies nobody can verify and instants no source aligns." .

eidos:series-launched-organization-count a eidos:PublishedSeries ;
  rdfs:label "Launched organizations" ;
  skos:inScheme eidos:ObservationSeriesScheme ;
  eidos:seriesId "launched-organization-count" ;
  eidos:unit "count" ;
  eidos:note "Registry count of the launched cohort the app root lists; a step over the same dated listings as the tracked count." .

eidos:series-launched-organization-market-cap-usd a eidos:PublishedSeries ;
  rdfs:label "Cohort market cap" ;
  skos:inScheme eidos:ObservationSeriesScheme ;
  eidos:seriesId "launched-organization-market-cap-usd" ;
  eidos:unit "usd" ;
  eidos:note "The launched cohort summed at instants where the whole cohort reported — the cohort's own completeness gate, so an established organization's feed blinking cannot withhold it. Recorded and served on the API; the Overview draws the FDV series instead, because the feed's cap mixes circulating cap and FDV across members." .

eidos:series-launched-organization-fdv-usd a eidos:PublishedSeries ;
  rdfs:label "Cohort FDV" ;
  skos:inScheme eidos:ObservationSeriesScheme ;
  eidos:seriesId "launched-organization-fdv-usd" ;
  eidos:unit "usd" ;
  eidos:note "The cohort's fully diluted valuation summed at instants where the whole cohort reported — the one uniformly defined member quantity, and the aggregate the Overview draws. Its 30-day history is the published as-of index at /data/cohort-fdv-index.json until this lane earns the window itself." .

eidos:series-dao-vault-usd a eidos:PublishedSeries ;
  rdfs:label "Cohort treasury cash" ;
  skos:inScheme eidos:ObservationSeriesScheme ;
  eidos:seriesId "dao-vault-usd" ;
  eidos:unit "usd" ;
  eidos:note "USD-settled balances across tracked organization vaults. History is exact by transaction replay — a token account's balance cannot change outside a transaction that touches it." .

eidos:series-pending-market-count a eidos:PublishedSeries ;
  rdfs:label "Pending markets" ;
  skos:inScheme eidos:ObservationSeriesScheme ;
  eidos:seriesId "pending-market-count" ;
  eidos:unit "count" ;
  eidos:note "Live-proposal lifecycle count; history replayed exactly from confirmed program events." .

eidos:series-funded-draft-count a eidos:PublishedSeries ;
  rdfs:label "Funded drafts" ;
  skos:inScheme eidos:ObservationSeriesScheme ;
  eidos:seriesId "funded-draft-count" ;
  eidos:unit "count" ;
  eidos:note "Live-proposal lifecycle count; history replayed exactly from confirmed program events." .

eidos:series-program-proposal-count a eidos:PublishedSeries ;
  rdfs:label "Program proposals" ;
  skos:inScheme eidos:ObservationSeriesScheme ;
  eidos:seriesId "program-proposal-count" ;
  eidos:unit "count" ;
  eidos:note "Live-proposal lifecycle count; history replayed exactly from confirmed program events." .

eidos:series-dao-vault-balance-usd a eidos:PublishedSeries ;
  rdfs:label "Treasury cash" ;
  skos:inScheme eidos:ObservationSeriesScheme ;
  eidos:seriesId "dao-vault-balance-usd" ;
  eidos:unit "usd" ;
  eidos:note "One DAO account's USD-settled vault balance, exact by transaction replay of the vault's own token account." .

eidos:series-final-pass-twap a eidos:PublishedSeries ;
  rdfs:label "Final pass TWAP" ;
  skos:inScheme eidos:ObservationSeriesScheme ;
  eidos:seriesId "final-pass-twap" ;
  eidos:unit "normalized-price" ;
  eidos:note "The pass conditional market's TWAP the program finalized on, recorded once at the finalization instant from the indexed finalization event and its chain signature. The outcome's own number, not a reading during the window." .

eidos:series-final-fail-twap a eidos:PublishedSeries ;
  rdfs:label "Final fail TWAP" ;
  skos:inScheme eidos:ObservationSeriesScheme ;
  eidos:seriesId "final-fail-twap" ;
  eidos:unit "normalized-price" ;
  eidos:note "The fail conditional market's TWAP the program finalized on, recorded once at the finalization instant from the indexed finalization event and its chain signature." .

eidos:series-threshold-pct a eidos:PublishedSeries ;
  rdfs:label "Pass threshold" ;
  skos:inScheme eidos:ObservationSeriesScheme ;
  eidos:seriesId "threshold-pct" ;
  eidos:unit "percent" ;
  eidos:note "The pass threshold a recording window's finalization must reach — the edge the pass TWAP needs over the fail TWAP — from the proposal's own threshold. A constant per window, recorded once at the window's TWAP start so a cutoff query finds it without a per-read row." .

eidos:series-pass-twap a eidos:PublishedSeries ;
  rdfs:label "Pass TWAP" ;
  skos:inScheme eidos:ObservationSeriesScheme ;
  eidos:seriesId "pass-twap" ;
  eidos:unit "normalized-price" ;
  eidos:note "The pass conditional market's TWAP while a recording window is open. Windows are episodic: the series exists only while a market does." .

eidos:series-fail-twap a eidos:PublishedSeries ;
  rdfs:label "Fail TWAP" ;
  skos:inScheme eidos:ObservationSeriesScheme ;
  eidos:seriesId "fail-twap" ;
  eidos:unit "normalized-price" ;
  eidos:note "The fail conditional market's TWAP while a recording window is open." .

eidos:series-pass-spot a eidos:PublishedSeries ;
  rdfs:label "Pass spot" ;
  skos:inScheme eidos:ObservationSeriesScheme ;
  eidos:seriesId "pass-spot" ;
  eidos:unit "normalized-price" ;
  eidos:note "The pass conditional market's spot print." .

eidos:series-fail-spot a eidos:PublishedSeries ;
  rdfs:label "Fail spot" ;
  skos:inScheme eidos:ObservationSeriesScheme ;
  eidos:seriesId "fail-spot" ;
  eidos:unit "normalized-price" ;
  eidos:note "The fail conditional market's spot print." .

eidos:series-pass-base-reserve a eidos:PublishedSeries ;
  rdfs:label "Pass base reserve" ;
  skos:inScheme eidos:ObservationSeriesScheme ;
  eidos:seriesId "pass-base-reserve" ;
  eidos:unit "token" ;
  eidos:note "The pass pool's base reserve; the flip-cost scenario's input." .

eidos:series-pass-quote-reserve a eidos:PublishedSeries ;
  rdfs:label "Pass quote reserve" ;
  skos:inScheme eidos:ObservationSeriesScheme ;
  eidos:seriesId "pass-quote-reserve" ;
  eidos:unit "token" ;
  eidos:note "The pass pool's quote reserve; the flip-cost scenario's input." .

eidos:series-fail-base-reserve a eidos:PublishedSeries ;
  rdfs:label "Fail base reserve" ;
  skos:inScheme eidos:ObservationSeriesScheme ;
  eidos:seriesId "fail-base-reserve" ;
  eidos:unit "token" ;
  eidos:note "The fail pool's base reserve; the flip-cost scenario's input." .

eidos:series-fail-quote-reserve a eidos:PublishedSeries ;
  rdfs:label "Fail quote reserve" ;
  skos:inScheme eidos:ObservationSeriesScheme ;
  eidos:seriesId "fail-quote-reserve" ;
  eidos:unit "token" ;
  eidos:note "The fail pool's quote reserve; the flip-cost scenario's input." .

eidos:series-option-twap a eidos:PublishedSeries ;
  rdfs:label "Option TWAP" ;
  skos:inScheme eidos:ObservationSeriesScheme ;
  eidos:seriesId "option-twap" ;
  eidos:unit "price" ;
  eidos:note "One option's time-weighted conditional price on an engine beyond MetaDAO, keyed <decision>#<option>, while its window is open: Combinator's pool oracle in its raw observation units, Umia's money per venture token. Engines price in their own units, so options compare within a decision, never across engines." .

eidos:series-option-spot a eidos:PublishedSeries ;
  rdfs:label "Option spot" ;
  skos:inScheme eidos:ObservationSeriesScheme ;
  eidos:seriesId "option-spot" ;
  eidos:unit "price" ;
  eidos:note "One option's current conditional price on an engine beyond MetaDAO, keyed <decision>#<option>, while its window is open: Combinator's last pool price (raw units), Umia's money per venture token, Butter's long-token price as the market's expected share of the metric's range." .

# ── observation: statements ───────────────────────────────────────────

eidos:disproven-live-count-status-history eidos:refusesSeries eidos:series-live-organization-count .
eidos:disproven-zklsol-contract-lookup eidos:refusesSeries eidos:series-price-usd .
eidos:disproven-feed-cap-fdv-flip eidos:refusesSeries eidos:series-market-cap-usd .
eidos:disproven-feed-cap-fdv-flip eidos:refusesSeries eidos:series-quoted-market-cap-usd .
eidos:disproven-feed-cap-fdv-flip eidos:refusesSeries eidos:series-launched-organization-market-cap-usd .
eidos:disproven-ranger-quote-source-flips eidos:refusesSeries eidos:series-price-usd .
eidos:disproven-ranger-quote-source-flips eidos:refusesSeries eidos:series-market-cap-usd .
eidos:disproven-ranger-quote-source-flips eidos:refusesSeries eidos:series-fdv-usd .
eidos:disproven-metadao-dust-swap-stretch eidos:refusesSeries eidos:series-price-usd .
eidos:disproven-last-swap-dust-print eidos:refusesSeries eidos:series-price-usd .
eidos:disproven-ore-implausible-pool-volume eidos:refusesSeries eidos:series-volume-24h-usd .
eidos:series-price-usd eidos:inCoverageLane eidos:lane-price .
eidos:series-market-cap-usd eidos:inCoverageLane eidos:lane-caps .
eidos:series-provider-change-24h-pct eidos:crossChecks eidos:series-price-usd .
eidos:series-circulating-supply eidos:crossChecks eidos:series-market-cap-usd .
eidos:series-total-supply eidos:crossChecks eidos:series-fdv-usd .
eidos:series-tracked-organization-count eidos:inCoverageLane eidos:lane-counts .
eidos:series-live-organization-count eidos:inCoverageLane eidos:lane-counts .
eidos:series-cited-treasury-usd eidos:inCoverageLane eidos:lane-treasury .
eidos:series-quoted-market-cap-usd eidos:inCoverageLane eidos:lane-caps .
eidos:series-launched-organization-count eidos:inCoverageLane eidos:lane-counts .
eidos:series-launched-organization-market-cap-usd eidos:inCoverageLane eidos:lane-caps .
eidos:series-launched-organization-fdv-usd eidos:inCoverageLane eidos:lane-fdv .
eidos:series-dao-vault-usd eidos:inCoverageLane eidos:lane-vaults .
eidos:series-pending-market-count eidos:inCoverageLane eidos:lane-proposals .
eidos:series-funded-draft-count eidos:inCoverageLane eidos:lane-proposals .
eidos:series-program-proposal-count eidos:inCoverageLane eidos:lane-proposals .
eidos:series-pass-twap eidos:inCoverageLane eidos:lane-windows .
eidos:series-fail-twap eidos:inCoverageLane eidos:lane-windows .
