Skip to content
Eidos
Thesis Methodology
Platform
For OrganizationsMarket-governed organizations For FundsFunds and market participants For AgentsEconomic agents
Research
Open app Add your organization
Menu
Thesis Methodology For Organizations For Funds For Agents Research Open app Add your organization
Ontology

The ontology

The domain model behind the analysis: decisions, choices, evidence, analytical instruments, execution and outcomes.

Release 19.5.0. Namespace https://eidos.software/ontology# (prefix eidos); ontology IRI https://eidos.software/ontology. Licence CC BY 4.0. Machine-readable: eidos.ttl (OWL 2, Turtle, the whole), one Turtle per module below, shapes.ttl (SHACL), kg.json (the instance graph).

One sentence holds it together: an organization puts a decision to an engine; the engine opens a market per option, whose conditional token trades on a venue and settles on a chain; the market's result selects an option, execution carries it out, and what followed is measured. Eidos files findings from six reviews, claims with sources and forecasts about it, each under a receipt.

The decision

A decision is the record's subject on every engine. Its form is what it was for, what was known, what was done and what followed, with the parties that acted and the authority that could carry it out.

Decision Decision

One decision a market made or is making, on any engine, by engine, chain and decision id: the record's subject. Its form is what it was for, what was known, what was done and what followed — Purpose, InformationState, Execution and MeasuredOutcome — with the options it chose among and the measure it was judged on. A market's result selects an option; outcome is reserved for what followed.

Purpose Purpose

What a decision was for: the ask as its proposer published it, the options, and the measure the market would judge it on. The proposer's words, cited; never a summary that replaces them.

InformationState Information state

What was known about a decision at a stated time: the evidence the record held then, with what was withheld and why. Pinned to its time, so a later reading never rewrites an earlier one. Named KnowledgeState until 9.0.0.

Execution Execution

What was done: whether the selected option was carried out onchain, read against a stated rule with its evidence. Not ExecutionMode, which says whether an engine binds at all.

MeasuredOutcome Measured outcome

A sourced reading of the measure a decision was judged on: a close baseline, a later checkpoint or a resolved scalar branch. An available price lane with no checkpoint reading is only an OutcomeRecord. The only sense of outcome in this vocabulary — a market's pass or fail is its result, and what came of one of Eidos's own receipts is a ReceiptOutcome.

Impact Impact

A market's forecast for the option it selected, beside what the measure did afterwards at one horizon: two numbers, built from a MeasuredOutcome, never a grade and never a verdict on the decision.

CapitalMovement Capital movement

Capital a decision's execution moved, as read from the chain: the asset, the amount, the accounts it left and reached, and the transaction.

Also a www.w3.org/ns/prov#Activity.

Party Party

A party that acted on a decision — proposed it, signed its execution, deployed its market — named by its onchain account. A person or a model is named only where a source states it. Named Agent until 9.0.0, a word this product also uses for the models that read the record; a party is whoever acted.

Also a www.w3.org/ns/prov#Agent.

Authority Authority

What could carry a decision out: a treasury multisig, an engine's market contract, a funding market's sponsor, a DAO account. The power to act, as distinct from the party that acted.

Governance: who decides what, where

Module IRI https://eidos.software/ontology/governance; Turtle at governance.ttl.

Chain Chain

A distributed ledger an engine's markets settle on. A decision's identity names its chain; the same address on two chains is two decisions. Where the observation tape stored a chain under an older spelling (Solana as solana), the individual carries it as chainTapeKey; gold conforms the tape's key to the id.

DaoAccount DAO account — a kind of Authority

A futarchy DAO account on the program: the public key its proposals name, decoded from the program's own accounts, never from a page. An authority: the account under which the organization's proposals run and whose treasury their execution moves.

DecisionMarketEngine Decision market engine

An independent decision market mechanism: the markets and the rule that turns their prices into a decision. The engine decides; the venue its tokens trade on and the chain it settles on are its own classes. Launchpads and apps on an engine's rails are its deployments, never engines of their own. Coverage says whether the record decodes it; an engine the record cannot yet decode is counted from sources and never synthesized into records.

DecisionOption Decision option

One action a decision market chose among. Pass and fail are the two options of a pass/fail decision; a multi-option decision carries one per candidate. The decision's form holds every option, not only the one selected. The field's word for these is outcome; here an outcome is what followed.

EngineDeployment Engine deployment

A launchpad or app that runs its decisions on an engine's rails, such as Futardio on MetaDAO or Star on Combinator.

ExecutionMode Execution mode

Whether a market's result decides or selects the action (binding) or informs a vote that remains free to ignore it (advisory).

ExecutionState Execution state

What an execution reading can say: executed, not executed, pending, the no-op was selected so nothing was due, not applicable, or not checked. Not ExecutionMode, which says whether an engine binds at all. One list (src/decision-records.ts) for every engine and every page.

ExternalProposalDocument External proposal document — a kind of OffchainProposalSource

A linked full document whose content and availability are separate from the onchain pointer.

Futarchy Futarchy

The mechanism the engines' families specialise: a voted welfare measure, conditional markets per option, and a published rule that turns conditional prices into the decision. One individual; the component taxonomy hangs off it.

FutarchyProposalAccount Futarchy proposal account — a kind of OnchainProposalSource

Records state, DAO account, market and Squads reference, but no narrative text field. Program version is part of identity.

GovernanceProgramDeployment Governance program deployment

A published program ID and version, with separate app decoder coverage. A known deployment is not evidence that its proposals have been indexed.

GovernanceProposal Governance proposal — a kind of Decision

One MetaDAO proposal by exact chain, program and account identity: MetaDAO's form of a Decision. MetaDAO's own decision number may span program migrations and is not a chain key.

ImpactRecord Impact record

A conditional value comparison at a checkpoint. Retains a sourced market estimate independently of the availability of realized readings. Not an option-selection probability or a DecisionForecast.

Also a www.w3.org/ns/prov#Entity.

MechanismComponent Mechanism component

One component of the mechanism — the unit of attack-surface bookkeeping. Coverage counts detectors in this library; an uncovered component is undefended in the library's terms, never a claim the component is safe.

MechanismFamily Mechanism family

The family of decision rule an engine implements. Closed enumeration: a new family is a registry edit and a release.

MetaDaoDecisionPage MetaDAO decision page — a kind of OffchainProposalSource

MetaDAO's published title, summary or prose for a proposal, joined to a chain proposal only through a verified account identity.

NoOpOption No-op option — a kind of DecisionOption

The option that leaves things as they are: fail in a pass/fail decision, the explicit no-op in a multi-option one. A decision has at most one.

OffchainProposalSource Offchain proposal source — a kind of ProposalSource

A source published off the chain — a page, a document — joined to the proposal only through a verified account identity.

OnchainConstruct Onchain construct

A decoded onchain structure bridged to the abstract component it realizes.

OnchainMemoInstruction Onchain memo instruction — a kind of OnchainProposalSource

Exact UTF-8 Memo bytes, possibly just a title or URL; not necessarily the full proposal.

OnchainProposalSource Onchain proposal source — a kind of ProposalSource

A source read from the chain itself: an account, a transaction, an instruction's bytes.

Organization Organization

A tracked organization: the slug the app ranks under, its token, its kind and status. Hand-authored in the organization registry, sealed with every warehouse run as the organization dimension. MetaDAO's cohort, and the organizations a decision on another engine names through a decider claim (src/organization-deciders.ts).

Also a schema.org/Organization.

OutcomeMeasure Outcome measure

What a decision market is judged on: the organization's token value under each option, with the threshold the leader must clear over the no-op, or a measured outcome such as value locked that a funding market forecasts and that is observed after the decision.

OutcomeRecord Outcome record

A record of requested outcome measurements, at section, checkpoint or scalar branch scope. Its status and reason describe availability; only recordedOutcome asserts a measurement.

Also a www.w3.org/ns/prov#Entity.

ProposalSource Proposal source

Evidence about a governance proposal, with its own authority and acquisition status.

Also a www.w3.org/ns/prov#Entity.

ProposalState Proposal state

The record lifecycle of a MetaDAO proposal: draft, pending, passed, failed, removed as the program states them, finalized once the TWAPs are, unknown where the read failed. One list (src/types.ts), so the index, the app and the ontology spell a state one way.

PublishedRule Published rule

A decision rule a named party published and ran, at a version, with its own execution mode and the rule component it uses: the engine's rule where an engine ran it, a party's own otherwise (Kleros KIP-76). Named FutarchyImplementation, "a named venue", until 9.0.0; a venue is where tokens trade, not a rule.

SquadsProposalAccount Squads proposal account — a kind of OnchainProposalSource

The Squads multisig proposal a Futarchy account references, decoded from its own account.

SquadsVaultTransaction Squads vault transaction — a kind of OnchainProposalSource

Executable instructions; an address lookup table may supply compiled program IDs.

Trade Trade

One final swap the trade ledger recorded on a decision market, on any engine: finalized on chain and confirmed by two providers, named by engine, chain, market, transaction and the event's position in it. A swap of 0 for 0 is recorded too and is not a trade (tradeIsEconomic false; src/non-economic-swap.ts). Resolved publicly from its market's published trade document: a MetaDAO proposal's evidence, another engine's trade tape.

Venue Venue

Where a market's conditional tokens trade: the pools an engine runs as its own, or a general-purpose exchange another party operates — Uniswap on Unichain for Butter, Swapr on Gnosis for futarchy.fi. Distinct from the engine that decides and the chain that settles, which is why the word is never used for either; the tape keys a market by its kind (marketKind: spot, token-spot, dao-vaults, desk-kpi, metadao-futarchy or an engine's id), which is not one of these.

Observation: what the tape measures

Module IRI https://eidos.software/ontology/observation; Turtle at observation.ttl.

CalendarDate Calendar date

One UTC calendar day in the span the run observed: the conformed day facts are grouped by.

Also a www.w3.org/2006/time#DateTimeDescription.

CollectorSource Collector source

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.

Also a www.w3.org/ns/sosa/Sensor.

CoverageLane Coverage lane

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.

CrossCheckSeries Cross-check series — a kind of ObservationSeries

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.

DisprovenDerivation Disproven derivation

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.

Also a www.w3.org/ns/prov#Entity.

Market Market

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.

Also a www.w3.org/ns/sosa/FeatureOfInterest.

Observation Observation

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.

Also a www.w3.org/ns/sosa/Observation.

ObservationSeries Observation series

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.

Also a www.w3.org/ns/sosa/ObservableProperty.

ProvenanceMethod Provenance method

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.

PublishedSeries Published series — a kind of ObservationSeries

A series rendered on a public surface as our own measurement, against baselines the tape itself holds.

RecordingWindow Recording window

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.

Also a www.w3.org/2006/time#ProperInterval.

WindowStage Window stage

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.

Evidence: what Eidos files

Module IRI https://eidos.software/ontology/evidence; Turtle at evidence.ttl.

AnalyticalInstrument Analytical instrument

A registered versioned calculation or detector with its own input requirements. Methods answer distinct questions; a missing input withholds that result without suppressing other applicable instruments.

Also a www.w3.org/ns/prov#Plan.

AnalyticalResult Analytical result

An instrument-specific measurement or finding with evidence references, version, applicability, availability, completeness and freshness. Each result stands on its own evidence requirements.

Also a www.w3.org/ns/prov#Entity.

AnalyticalRun Analytical run

An immutable calculation over retained decision inputs, with versioned instruments, evidence coverage, results and interpretations. Corrections append and supersede; historical runs remain available.

Also a www.w3.org/ns/prov#Entity.

AttackVector Attack vector

A versioned economic attack mechanism. A vector describes a reusable mechanism, never an incident.

AttributedClaim Attributed claim

A source-linked observation or hypothesis in DossierSchema. A hypothesis is not established evidence.

Also a schema.org/Claim, www.w3.org/ns/prov#Entity.

Classification Classification

What the scorer may emit for one vector on one record. The whole state vocabulary, LOW included, is declared pairwise distinct here.

CompositeProposalRiskScore Composite proposal risk score — a kind of AnalyticalResult

An aggregate estimate with a defined target and a validated method. No such model is currently registered; its existence is permitted only with explicit inputs, assumptions, evaluation and limitations.

CovenantCheck Covenant check

A versioned check anchored to published launch-covenant terms. A covenant review is never a proposal classification.

CovenantTermState Covenant term state

Tri-state, fail closed: an unknown term stays unknown and never rounds to present; a known violation is absent even when a paired term is unknown.

Detector Detector

The shipped evaluation of one monitored vector's indicators over a qualified evidence packet.

DiligenceAnswer Diligence answer

One organization's answer to one fixed diligence question (src/diligence-questions.ts): its state (answered, not checked, not disclosed, not applicable), how many sourced facts it carries and when they were observed, and whether every fact is inside the question's re-check window at the run's cutoff. Never a grade: the facts are values, and an answer's state says what Eidos holds, not what the organization is worth.

DiligenceClaim Diligence claim

A source-linked relationship in the operational evidence graph: subject, predicate, object, source, and its review and publication state. Private until it carries both gates; the public projection, the app's Diligence page, holds only accepted-and-published claims. Named EvidenceGraphClaim until 9.0.0; the app's Diligence page is its public projection.

Also a schema.org/Claim, www.w3.org/ns/prov#Entity.

DiligenceQuestion Diligence question

One of the fixed questions Eidos answers for every organization (src/diligence-questions.ts): who controls its treasury, its mint and its decisions, what it promised at its raise, and what is held only in documents. Each asks for a value, never a verdict, and says where its answer lives. The set is versioned (diligenceQuestionSetVersion): a question added later reads as not asked then, never as a gap. A new question is a registry edit and a release.

DocumentedVector Documented vector — a kind of AttackVector

Detector pending: a documented vector is never assessed and never classifies.

Dossier Dossier

The public dossier on one decision, validated by DossierSchema in src/dossiers.ts, retaining exact identity and separately attributed reviews. Named DecisionDossier until 9.0.0; the decision record is the Decision.

Also a www.w3.org/ns/prov#Entity.

EvidenceContribution Evidence contribution

A source-linked proposed correction with author, review history and sharing scope. Acceptance recomputes affected results and preserves the original record.

Also a www.w3.org/ns/prov#Entity.

EvidenceRevision Evidence revision

A retained public publication or dossier revision with distinct observation and recording clocks; not a historical knowledge guarantee.

Also a www.w3.org/ns/prov#Entity.

EvidenceSource Evidence source

A retained source assertion with identity, URL, observation time and method, validated by SourceSchema; not independent verification.

Also a www.w3.org/ns/prov#Entity.

Finding Finding

One review's answer for one decision, filed by the review that made it. Findings stay in their review; the roster never folds them into a composite score.

Also a schema.org/Review.

IncidentStudy Incident study

A published incident kept as provenance beneath a vector. The check travels forward; the incident's conclusion does not. Named CaseStudy until 9.0.0; the app's cases are decisions.

Also a www.w3.org/ns/prov#Entity.

Indicator Indicator

One evidence signal inside one vector. Indicator counts are never added across vectors.

Instrument Instrument

A review's observation instrument. Its output is an observation under stated assumptions, never a classification.

Interpretation Interpretation

A sourced statement over identified analytical results, distinguishing observations, derivations and hypotheses and naming limitations and revision conditions.

Also a www.w3.org/ns/prov#Entity.

Investigation Investigation

An owner-scoped run: a question, the decision context it pinned, the instrument it executed, and the events that followed. Lives in the application database; resolves only for its owner's session.

Also a www.w3.org/ns/prov#Activity.

LaunchCovenant Launch covenant

A published launch covenant whose terms the checks evaluate.

MatchState Match state — a kind of Classification

Complete-evidence match states for one monitored vector. LOW is not a member of either partition: it is a named rejected token disjoint from Classification. NO-MATCH means this vector did not match; it is never a claim the proposal is safe.

MethodologySource Methodology source

Published research a definition cites.

Also a www.w3.org/ns/prov#Entity.

MonitoredVector Monitored vector — a kind of AttackVector

Detector shipped: the vector runs in the scorer.

OrganizationStatement Organization statement

One reviewed version of what an organization says about one OrganizationStatementField: its words, quoted and attributed to it, the day it stated them, the document it cites, and the day Eidos checked that the document says it. Published only after that check, from the reviewed fixture (/data/organization-statements.json). Versions are kept and each names the one it supersedes; a version older than its field's window is not current, and the field reads as unanswered rather than carrying the old words forward. A statement is the organization's, never Eidos's reading, and changes no finding.

Also a www.w3.org/ns/prov#Entity.

OrganizationStatementField Organization statement field

One of the four things the chain does not hold that an organization is asked to state in its own words (src/organization-statements.ts): its purpose, who is bound and to what, what it committed to deliver and by when, and the documents that state it. Each field says how long a statement stays current (statementFieldRefreshAfterDays). A new field is a registry edit and a release.

PreWindowReview Pre-window review

A review filed for one decision before its recording window opens: the ask as published, the covenant and market parameters as configured, which day-one checks can run on the evidence available and which are withheld, and the send that carried it to the organization. The first decision-lineage object: it names the decision by exact identity and is superseded, never edited, once the window opens. Never a classification, never a forecast (WindowForecast is declared disjoint from it).

Also a www.w3.org/ns/prov#Entity.

RejectedClassificationState Rejected classification state

A known token the product explicitly rejects as a classification. LOW cannot be asserted as a finding state without contradiction.

Report Report

A dated, permalinked note Eidos published on the state of the open recording windows, addressed by a permanent six-character id (/reports/<id>/) and keyed internally by its file stem. One per notable move, never one per day; prose carries no live figure. The Reports collection in the app.

Also a schema.org/Report.

Review Review

One of the historical reviews — Evidence, Attack, Market, Playbooks, Learning, Claims — that filed decision records, each with a versioned contract and the boundaries it refuses to cross. Closed and pairwise distinct: exactly the enumerated reviews, so a seventh asserted distinct from these six is a contradiction rather than merely an unlisted name. The individuals are named by role (review-evidence … review-claims) since 10.0.0; the colour ids the roster was first recorded under were migrated out of every stored finding on 4 October 2026.

ReviewRoster Review roster

One released set of review contracts, versioned as a whole and pinned by a digest. It exists because a per-review contract version cannot describe the roster: adding, retiring, or renaming a review moves no surviving review's version, so a finding stamped only with its own review's version cannot say which roster it belonged to. A stored finding names its roster through filedUnderRoster and stays re-readable after the contracts have moved on.

Also a www.w3.org/2004/02/skos/core#Collection.

RosterStatus Roster status

A review's roster answer for one decision at one time: filed, withheld or standing — the status every stored finding carries, spelled as every page prints it (filed was stored as complete until 10.0.0). Not a Classification: that is one monitored vector's state, and a finding may carry both.

SafetyRating Safety rating

Deliberately unsatisfiable. A vector no-match is never a safety rating, and nothing here ships green.

UnavailableMeasure Unavailable measure

A measure these markets cannot supply the inputs for, recorded rather than omitted. Most are book-dependent: these are constant-product conditional pools with no bid, ask, queue, or maker inventory, so an effective spread or a depth imbalance would be a number with no referent. One is timestamp-dependent: an information-leakage score needs the moment the public learned, and every timestamp a proposal account carries is a moment the market learned. Each member names the input it would need and the honest local substitute, so a consumer can tell a refusal from an oversight.

VectorFinding Vector finding — a kind of Finding

A review finding that classifies exactly one monitored vector. Other review findings need not classify.

WithheldState Withheld state — a kind of Classification

Withheld states for incomplete evidence. Missing inputs land here and never grade.

Forecast: what Eidos predicts, and its calibration

Module IRI https://eidos.software/ontology/forecast; Turtle at forecast.ttl.

Calibration Calibration

How markets' forecasts compared with what followed, across decisions, by engine and mechanism family. A comparison across many decisions, so a part of the record and not of any one decision; named Learning, and a part of Decision, until 9.0.0. Not the Learning review, which files one finding per decision.

CategoricalDecisionForecast Categorical decision forecast — a kind of DecisionForecast

An issued complete probability distribution over a decision's declared mutually exclusive options.

ControlRun Control run

One bounded, headless worker run under Eidos Control: its task, worktree, base commit, worker, exit code, attempts, and the verification gates it passed or failed, with prompt, transcript and logs archived beside the record. A worker result is a claim; the run record is what the controller verified.

Also a www.w3.org/ns/prov#Activity.

DecisionForecast Decision forecast

A dated issued claim about which option a decision selects, or an explicitly withheld attempt. Its method, issuance and input cutoff are distinct from observations, replay cases and conditional token-value Impact.

Also a www.w3.org/ns/prov#Entity.

ForecastGeneration Forecast generation

The activity that used a method artifact and observations to issue a dated decision forecast.

Also a www.w3.org/ns/prov#Activity.

ForecastMethod Forecast method

A content-addressed procedure used to generate a forecast; an artifact, not the responsible software agent.

Also a www.w3.org/ns/prov#Entity.

HarnessCandidate Harness candidate

One proposal the loop scored: a policy version, its parent candidate, the frozen suite it was scored on (digest, data cutoff, tick-corpus cutoff), the evaluator's own hash, paired held-in and held-out Brier scores, the verdict and its reason, the worker's cost, and the Control run that produced it. Kept or refused, every candidate is a row; a refused candidate keeps its patch. Private: the ledger seals in the private-ledgers run and reaches no public surface.

Also a www.w3.org/ns/prov#Entity.

PolicyVersion Policy version

One content-addressed version of a file the harness loop is allowed to edit: the window outlook policy and, when the task allows it, the improver's own instructions. Identified by the sha256 of the artifact files, never by the repository hash, so an unrelated commit does not make a new version. A kept version is a commit on main carrying a Worker trailer naming its Control run.

Also a www.w3.org/ns/prov#Entity.

RefusedPolicyVersion Refused policy version — a kind of PolicyVersion

A policy version the loop may never propose again, named with the measurement that closed it — the same shape as a disproven derivation, for the same reason: the refusal is the record. Empty until an operator closes one; a candidate the guard refused is only a ledger row, not a member.

WindowForecast Window forecast — a kind of DecisionForecast

A binary Pass probability or withheld attempt for a decision window, with separate issuance and input-cutoff times. Resolutions remain separate from the original claim. Baselines are recorded, verified-reconstructed or unavailable; late and void attempts remain auditable but do not enter prospective evaluation.

Also a www.w3.org/ns/prov#Entity.

Record: the application profile

Module IRI https://eidos.software/ontology/record; Turtle at record.ttl.

ActionLineage Action lineage

A receipt read together with the context it stood on, the code that executed it and the receipt outcomes that answered it: one row of the sealed action_lineage view. Derived; the receipt and outcome ledgers stay the record. Never a grade of the decider. Named DecisionRecord until 9.0.0; the decision record is the Decision.

Also a www.w3.org/ns/prov#Entity.

ActionReceipt Action receipt

The record of one attempt at an action: the actor and its class, the surface, the object and the revision it named, the context digest it stood on, the code version that executed it, the result and its reasons. Every attempt is a receipt; a refusal is a receipt. Instances are private ledger rows sealed nightly; none is published as an individual here.

Also a www.w3.org/ns/prov#Activity.

ActionType Action type

The kinetic half, opened in 2.0.0: a verb an external party may submit, with typed parameters, named preconditions rechecked at write time, an idempotency key, and a receipt for every attempt including refusals. The public verbs, pairwise distinct and in one SKOS scheme; a verb outside them is not an action this product accepts. Release 1.4.0 declared this class empty because every tool was read-only; the public MCP endpoint still is, and the private verbs an operator, an agent or an automation submit live in the workflow vocabulary, disjoint from this class.

AnalyticalRelation Analytical relation

An isolated SQL relation over validated public evidence. Physical columns and joins derive from the semantic catalog; this is not an operational or private database table.

BrowsingLabel Browsing label

A versioned category, action tag or sector for organizing decisions and organizations. Sourced assignments are interpretations, never risk findings or evidence of execution.

Job Job

What a reader comes to Eidos to get done, in the reader's words — when …, I want …, so I can … — with the outcomes that say whether it is done better: metrics, each with the direction that is better, or a frozen evaluator's score; a metric is held to the surfaces of the job that feed the columns it reads. Every App view, read surface, API route, MCP tool and action serves at least one job, or the route says why it serves none. The job registry's individuals (src/job-registry.ts), pairwise distinct and in one SKOS scheme; the improvement loop optimizes a job's outcomes and nothing else.

JobScore Job score

A score a frozen evaluator computes from labels the product cannot produce — a market's realized outcome, the operator's review — with the direction that is better. The evaluator, its labels and its split are outside every worker's write set.

MachineChange Machine change

A recorded change in the machine's own state: between two sealed daily samples of the machine's records, a public fact crossed — a job or feed failed or recovered, a schedule stopped or started, a source crossed its delivery floor or went stale, a tape series stopped or resumed, the published claim or decision counts moved. Cut through a typed allowlist from the private daily report, which never publishes; the instances are entries of the published /api/machine-changes document, each carrying the private bundle's sha256 as a commitment. A growing counter is never a change, and a failure that starts and recovers between two samples is not one either: it was not seen.

Also a www.w3.org/ns/prov#Entity.

MachineChangeKind Machine change kind

What a machine change can be: the closed list in src/machine-change-kinds.ts, each about a job, a feed, a source, a tape series or a ledger, and each a flag crossing or a count that moved. A new kind is a registry edit and a release.

McpResource MCP resource

One versioned registry document served as an MCP resource, identified by the URL it actually publishes at. Documents are resources; the queries over them are tools.

Also a www.w3.org/ns/dcat#Distribution.

McpServer MCP server

The read-only MCP endpoint over the registries and the shipped scorer. Its free tools serve only already-public objects; a metered tool serves the review packet, priced per pull over x402.

McpTool MCP tool

One read-only tool — a model-controlled query over the registries. Payloads carry the review, contract version, and withheld status; no field exists for a composite score.

Metric Metric

A number a surface shows, defined once over a bound object type: the aggregate it takes over the type's rows, the filter that selects them, the column its time grain buckets on, and the fields it may be grouped by. Every reader — the app, the API, the lab, an agent — cites a metric's id and never recomputes it. The metric registry's individuals, pairwise distinct and in one SKOS scheme. A ratio of two metrics is a share, never a score: Aggregates require a validated target and method; a no-match remains distinct from a safety rating.

NewsCategory News category

What kind of item a news story is: the closed list in src/news-categories.ts that Jev's category question offers and the App's Kind column shows. newsCategoryIsNews says whether the kind reports something that happened; commentary and conversation never rank. A new category is a registry edit and a release.

ObjectLinkType Object link type

A directed link between two object types, read correctly only with four attributes beside direction and cardinality: the store whose row asserts it, whether that row is immutable, appended and superseded, or re-derived on every seal, and whether it holds at read time or as of the time the row became known. The object registry's individuals, pairwise distinct and in one SKOS scheme.

ObjectType Object type

A noun a decision record points at: one primary key, one title key, one backing store and that store's authority, and its links. The object registry's individuals, pairwise distinct and in one SKOS scheme, so a receipt naming an object type outside it fails its shape. Authority is by data domain: a projection or a warehouse copy is never an authority.

PhysicalColumn Physical column

A physical SQL column and row selector mapped to an observation series.

PublishedCatalogRecord Published catalog record

A row validated by PublishedFixtureSchema in src/database-public-schemas.ts. Catalog-only and treasury-only rows are not proposals or incidents.

Also a www.w3.org/ns/dcat#CatalogRecord.

ReceiptOutcome Receipt outcome

What came of a receipt, as one cited sealed fact: a review, a publication, a superseding claim, a window resolution, an evaluated candidate or a closing decision, with the fact's digest, when it happened and when this ledger learned it. Never a grade. Named ReceiptOutcome until 9.0.0; a decision's outcome is its MeasuredOutcome.

Also a www.w3.org/ns/prov#Entity.

ReportKind Report kind

What an Eidos report is about: the closed list in src/report-kinds.ts that a report's kind front matter, the scheduled writer's entries and the App's Reports page read. A new kind is a registry edit and a release.

WindowParameterFiling Window-parameter filing

What an organization filed before a proposal's recording window opened: the covenant it published and the market parameters it configured. Existence is public at once as a fact of record; content is public only through the evidence review's two gates. The first public verb's object.

Also a www.w3.org/ns/prov#Entity.

Object properties

actedBy

Decision → Party. A party that acted on the decision — proposed it, signed its execution, deployed its market — named by its onchain account.

analysisOfDecision

AnalyticalRun → Decision. analyzes (one; asserted by tape, immutable, at-read). The decision whose retained inputs this run evaluates.

analysisSupersedes

AnalyticalRun → AnalyticalRun. supersedes (one-or-none; asserted by tape, append-and-supersede, as-of-known-time). An accepted correction retains and replaces an earlier analytical run.

analyticalVector

AnalyticalInstrument → AttackVector. The economic mechanism an analytical detector assesses; each result remains scoped to its qualified packet.

authorizedBy

Decision → Authority. The authority that could carry the decision out: a treasury multisig, an engine's market contract, a funding market's sponsor.

bindsAs

DecisionMarketEngine → ExecutionMode. Whether the engine's market result decides or selects the action (binding) or informs a vote (advisory). The census counts an advisory engine where a registered organization decides on it (futarchy.fi, 6 October 2026).

calibratedOn

Calibration → Decision. A decision a calibration draws on. A calibration spans many decisions — how an engine's markets forecast what followed — and one decision teaches nothing on its own.

candidateOfPolicy

HarnessCandidate → PolicyVersion. The policy version a candidate proposes (artifact and artifact_sha256 on the candidate row).

candidateParent

HarnessCandidate → HarnessCandidate. The candidate this one was scored against (parent_id); absent for the first. Specialises www.w3.org/ns/prov#wasDerivedFrom.

candidateProducedBy

HarnessCandidate → ControlRun. The Control run whose worker produced the candidate (run_id on the candidate row). Specialises www.w3.org/ns/prov#wasGeneratedBy.

catalogsOrganization

PublishedCatalogRecord → Organization. The tracked organization a catalog record belongs to (organizationSlug); absent for a row that names none.

changeKind

MachineChange → MachineChangeKind. What crossed in a machine change: one of the closed change kinds. Functional; a change is of one kind, and two crossings in one sample are two changes.

checksCovenant

CovenantCheck → LaunchCovenant. The published launch covenant a versioned check is anchored to.

claimCitesSource

AttributedClaim → EvidenceSource. A source an attributed claim is linked to; every claim cites at least one. Specialises www.w3.org/ns/prov#wasDerivedFrom.

claimHasReceipts

DiligenceClaim → ActionReceipt. has action receipts (many; asserted by private-ledger, immutable, as-of-known-time). The staging, review and publication attempts recorded against this claim, including refusals.

claimSupersedes

DiligenceClaim → DiligenceClaim. supersedes (one-or-none; asserted by private-ledger, append-and-supersede, as-of-known-time). A correction names the accepted claim it replaces; the earlier claim stays in the ledger as superseded. Specialises www.w3.org/ns/prov#wasRevisionOf.

codifiedBy

AttackVector or CovenantCheck → Review. The Playbooks review codifies playbooks and covenant checks from published research: its subjects are attack vectors and covenant checks, and nothing else.

containsMemoInstruction

SquadsVaultTransaction → OnchainMemoInstruction. One UTF-8 Memo instruction actually stored in the transaction; absence is known only after a successful read.

contributionTargetsRun

EvidenceContribution → AnalyticalRun. The immutable run a source-linked correction proposes to replace, within its sharing scope.

crossChecks

CrossCheckSeries → PublishedSeries. 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.

daoAccountHasOrganization

DaoAccount → Organization. identified as organization (one-or-none; asserted by warehouse, re-derived-per-seal, at-read). The inverse of the organization's governing DAO account; absent for the program's test mints and for DAO accounts no registry names.

daoAccountHasProposals

DaoAccount → GovernanceProposal. has proposals (many; asserted by published-database, immutable, at-read). Every proposal account whose dao field names this DAO account.

decisionForOrganization

Decision → Organization. decided for organization (one-or-none; asserted by warehouse, re-derived-per-seal, at-read). The tracked organization the decision was about: on MetaDAO through its DAO account's identity, on another engine through the registry's claim on its decider (src/organization-deciders.ts: a futarchy.fi market's organization token, an Umia venture, a Butter funder), sealed with the census. Absent for a decision no registry names: a decider no claim names (every Combinator moderator today) is named on the decision (organization) and is not a tracked organization.

decisionGovernedBy

Decision → DaoAccount. decided for DAO account (one-or-none; asserted by published-database, immutable, at-read). For a MetaDAO decision, the DAO account the proposal names. Other engines' DAO accounts are named in the row and are not yet DAO account objects.

decisionHasFindings

Decision → Finding. has findings (many; asserted by tape, append-and-supersede, as-of-known-time). Six-review findings recorded for the decision on any engine (6 Oct 2026), stamped with the roster release and each review's contract version, keyed by the decision's engine, chain and id.

decisionHasWindow

Decision → RecordingWindow. 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.

deploymentOf

EngineDeployment → DecisionMarketEngine. The engine whose rails a launchpad or app runs on. A deployment is never counted as an engine of its own.

diligenceAnswerForOrganization

DiligenceAnswer → Organization. answer about (one; asserted by warehouse, re-derived-per-seal, at-read). The organization the answer is about, by its slug.

dossierCitesSource

Dossier → EvidenceSource. A source the dossier as a whole retains (DossierSchema sources). Specialises www.w3.org/ns/prov#wasDerivedFrom.

dossierOfDecision

Dossier → Decision. The decision a dossier describes, by the exact identity DossierSchema requires.

editsObjectType

ActionType → ObjectType. The object type a public action appends to or changes. Functional; an action edits one type, and its receipt names the row.

evaluatedWith

AnalyticalResult → AnalyticalInstrument. The registered method whose version the retained result names.

executesAs

PublishedRule → ExecutionMode. Whether markets under the published rule execute onchain or advise.

executionState

Execution → ExecutionState. The one state an execution reading carries: executed, not executed, pending, the no-op selected so nothing was due, not applicable, or not checked. Functional over a closed enumeration.

exploitsComponent

AttackVector → MechanismComponent. Definitional: the one mechanism component a vector abuses. This edge describes mechanisms and never attaches to a finding, so mechanism-level judgments cannot leak into per-proposal results.

filedBy

Finding → Review. The review that filed the finding. Functional over the closed, pairwise-distinct roster, so a finding filed by two reviews is a contradiction — the composite the roster refuses. Until 9.0.0 this was six subclasses of Finding, one per review, none of which a stored finding was ever typed with.

filedUnderRoster

Finding → ReviewRoster. The roster release a finding was filed under. Functional: a finding is the answer of one roster at one moment, never a reading blended across releases. This is what makes a stored finding re-readable after the contracts it ran under have moved on.

filingByDaoAccount

WindowParameterFiling → DaoAccount. filed by (one; asserted by application-database, immutable, at-read). The DAO account the filing key was scoped to.

filingForWindow

WindowParameterFiling → RecordingWindow. filed for (one; asserted by application-database, immutable, at-read). The proposal whose window the filing precedes; the same account address keys both.

filingHasReceipts

WindowParameterFiling → ActionReceipt. has action receipts (many; asserted by private-ledger, immutable, as-of-known-time). The attempts recorded against this filing, including refusals, synced from the application database.

filingSupersedes

WindowParameterFiling → WindowParameterFiling. supersedes (one-or-none; asserted by application-database, append-and-supersede, as-of-known-time). A replacement names the filing it replaces; the earlier row stays on record. Specialises www.w3.org/ns/prov#wasRevisionOf.

findingOfDecision

Finding → Decision. finding of (one; asserted by tape, immutable, at-read). The decision the finding was recorded for, on any engine, joined by its engine, chain and id.

forecastByPolicy

WindowForecast → PolicyVersion. The policy version that answered the forecast.

forecastGeneratedBy

DecisionForecast → ForecastGeneration. The activity that issued the claim. Specialises www.w3.org/ns/prov#wasGeneratedBy.

forecastOfDecision

DecisionForecast → Decision. forecasts decision (one; asserted by private-ledger, immutable, as-of-known-time). The engine, chain and decision the issuance predicts.

forecastsWindow

WindowForecast → RecordingWindow. The open recording window a forecast was recorded against. One per forecast, a ledger rule rather than a functional axiom: windows are an open population no release can declare pairwise distinct.

forecastUsesMethod

ForecastGeneration → ForecastMethod. The method artifact used by a forecast generation activity. Specialises www.w3.org/ns/prov#used.

hasAnalyticalResult

AnalyticalRun → AnalyticalResult. Independent instrument outputs retained by this exact run.

hasAttributedClaim

Dossier → AttributedClaim. An observation or hypothesis the dossier states (DossierSchema claims).

hasClassification

Finding → Classification. The one state a finding carries. Range Classification, which is the disjoint union of the match and withheld partitions — so LOW, a RejectedClassificationState disjoint from Classification, cannot be a finding's state without contradiction. Functional: a finding has one state, never a spread.

hasComponent

Futarchy → MechanismComponent. A root component in the registry-derived mechanism taxonomy. Rule variants attach to their root with variantOf.

hasDetector

MonitoredVector → Detector. Only monitored vectors carry a shipped detector; DocumentedVector is restricted to zero.

hasExecution

Decision → Execution. What was done: an execution check of the selected option against the chain, with its rule and evidence. A decision that cannot be read yet has none, never a guessed one.

hasImpact

Decision → Impact. The market's forecast for the selected option beside what the measure did afterwards, at one horizon.

hasImpactRecord

Decision → ImpactRecord. A comparison checkpoint, retaining the conditional value estimate even when the realized comparison is withheld.

hasIncidentStudy

AttackVector → IncidentStudy. Published incidents are provenance beneath a vector; the incident never becomes the detector's name.

hasIndicator

AttackVector → Indicator. A vector's indicators. Their explicit position preserves registry order; counts stay scoped to one vector.

hasInformationState

Decision → InformationState. What was known: the evidence the record held at a stated time, pinned to that time so a later reading never rewrites an earlier one.

hasInterpretation

AnalyticalRun → Interpretation. Sourced interpretations retained by this run, not later model prose.

hasLink

ObjectType → ObjectLinkType. A link type declared on this object type; the link's own linksTo names the target.

hasMechanismFamily

DecisionMarketEngine → MechanismFamily. The family of decision rule the engine implements: pass or fail on token value, several options on token value, funding judged on a measured outcome, or advisory prices beside a vote. Functional; an engine implements one family.

hasMethodologySource

AttackVector → MethodologySource. The published research a definition is codified from. Specialises www.w3.org/ns/prov#wasDerivedFrom.

hasOption

Decision → DecisionOption. An option the decision's market chose among. A pass/fail proposal has two; a multi-option decision has one per candidate, at most one of them the no-op.

hasOutcome

Decision → MeasuredOutcome. Sourced readings of the decision's outcome measure, including the close baseline, later checkpoints and resolved scalar branches. Requested but unavailable readings belong to hasOutcomeRecord.

hasOutcomeRecord

Decision → OutcomeRecord. A requested outcome reading, including a withheld checkpoint and its reason. Availability is not a measured result.

hasPurpose

Decision → Purpose. What the decision was for: the ask as its proposer published it, the options and the measure it would be judged on. One per decision is a shape rule (shapes.ttl), not a functional axiom: purposes are an open population no release can declare pairwise distinct.

hasRosterStatus

Finding → RosterStatus. The roster answer a stored finding carries: filed, withheld or standing (the status column of every lane_findings row). A different axis from hasClassification, which is one vector's state; a finding has one roster status. Functional over a closed, pairwise-distinct enumeration, so a second status is a contradiction.

hasStandardOption

MechanismFamily → DecisionOption. An option every decision of this family carries: pass, and fail as the no-op, for a pass/fail family.

impactBaseline

Impact → MeasuredOutcome. The measured close reading used as the baseline for the realized change.

impactOfOutcome

Impact → MeasuredOutcome. The realized reading the comparison was made against. Together with impactBaseline it supplies the measured endpoints of the realized percentage change.

impactOfRecord

Impact → ImpactRecord. The comparison record retaining the market estimate and its source.

implements

PublishedRule → Futarchy. The mechanism a published rule is a rule of.

inCoverageLane

ObservationSeries → CoverageLane. 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.

instrumentOf

Instrument → Review. The review an observation instrument belongs to; its output is never a classification.

interpretationSupportedBy

Interpretation → AnalyticalResult. The specific results supporting an interpretation within its retained run.

investigationHasReceipts

Investigation → ActionReceipt. has action receipts (many; asserted by private-ledger, immutable, as-of-known-time). The investigation verbs synced from the application database into the receipts ledger.

investigationOfDecision

Investigation → Decision. investigates (one; asserted by application-database, immutable, at-read). The exact identity the run's context manifest names.

jobImprovesScore

Job → JobScore. A frozen evaluator's score the job is judged by; the score states which way is better.

jobLowersMetric

Job → Metric. A metric whose fall means the job is better done.

jobRaisesMetric

Job → Metric. A metric whose rise means the job is better done. A metric is better one way in every job that cites it.

judgedOn

Decision → OutcomeMeasure. What the market was judged on: the organization's token value under each option, or a measured outcome such as value locked for a funding market.

lineageRecordedBy

ActionLineage → ActionReceipt. recorded by (one; asserted by warehouse, re-derived-per-seal, as-of-known-time). The receipt at hop zero.

lineageResolvedBy

ActionLineage → ReceiptOutcome. resolved by (many; asserted by warehouse, re-derived-per-seal, as-of-known-time). The outcomes joined at derivation time.

linksExternalDocument

OnchainMemoInstruction → ExternalProposalDocument. A URL carried in onchain Memo bytes points to an offchain document; the document content is not onchain.

linksFrom

ObjectLinkType → ObjectType. The object type a link is declared on: its source. Functional; a link has one source.

linksTo

ObjectLinkType → ObjectType. The object type a link points at. Functional; a link has one target, and cardinality on the link says how many rows.

mapsObservationSeries

PhysicalColumn → ObservationSeries. Physical SQL column and row selector implementing an existing observation-series meaning.

marketHasObservations

Market → Observation. has observations (many; asserted by tape, append-and-supersede, as-of-known-time). Every approved observation of the market. Specialises www.w3.org/ns/sosa/isFeatureOfInterestOf.

marketOfDecision

Market → Decision. 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.

marketOfOrganization

Market → Organization. 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.

measuresObjectType

Metric → ObjectType. The object type whose rows a metric aggregates. Functional; a metric measures one type, and a ratio's two parts measure the same one.

metricCoveredBy

Metric → Metric. The count that says whether a metric measured anything: where it is zero in a slice, the metric has no value there, never a zero. A plain count of the same type, time column and dimensions (12.5.0).

movedCapital

Decision → CapitalMovement. Capital the decision's execution moved, as read from the chain.

observationOfMarket

Observation → Market. observes market (one; asserted by tape, immutable, at-read). The market the value was read from. Specialises www.w3.org/ns/sosa/hasFeatureOfInterest.

offersTool

McpServer → McpTool. The read-only tool registry the endpoint serves.

onChain

Decision → Chain. The chain the decision's market settled on. Functional; part of the decision's identity — the same id on two chains is two decisions.

onEngine

Decision → DecisionMarketEngine. The engine whose market made the decision. Functional; part of the decision's identity.

onVenue

Decision → Venue. A venue the decision's conditional tokens traded on. Stated from the decision record where it names one; an engine with one venue implies it.

organizationHasDaoAccount

Organization → DaoAccount. governed by DAO account (many; asserted by warehouse, re-derived-per-seal, at-read). The futarchy DAO accounts the organization's proposals run under (an organization that moved DAO accounts holds more than one), from the identity registry's claims or a recorded live snapshot; a contested mapping fails the seal rather than picking.

outcomeOfReceipt

ReceiptOutcome → ActionReceipt. outcome of (one; asserted by private-ledger, immutable, as-of-known-time). The receipt this fact answers. Specialises www.w3.org/ns/prov#wasGeneratedBy.

ownVenueOf

Venue → DecisionMarketEngine. The engine that runs this venue as its own pools. Absent for an exchange another party operates.

pointsToSquadsProposal

FutarchyProposalAccount → SquadsProposalAccount. The Squads proposal public key decoded from the Futarchy account, verified against the derived PDA.

pointsToVaultTransaction

SquadsProposalAccount → SquadsVaultTransaction. The vault transaction derived from the Squads multisig and transaction index.

policyHasReceipts

PolicyVersion → ActionReceipt. has action receipts (many; asserted by private-ledger, immutable, as-of-known-time). The candidates the loop proposed against this policy, kept or not. Not joined in the warehouse: propose-policy-candidate receipts key the artifact path every version shares, decide-policy-candidate receipts the version's sha256, so no one column selects one version's receipts.

presupposesExecution

AttackVector → ExecutionMode. The execution binding a vector's payoff presupposes; absent when the mechanism works under either.

programOfEngine

GovernanceProgramDeployment → DecisionMarketEngine. The engine a published program deployment belongs to.

proposalGovernedBy

GovernanceProposal → DaoAccount. governed by (one; asserted by published-database, immutable, at-read). The dao field of the proposal account. MetaDAO's form of decision-governed-by, where it is always present.

proposalHasFindings

GovernanceProposal → Finding. has findings (many; asserted by tape, append-and-supersede, as-of-known-time). Six-review findings recorded for this proposal, stamped with the roster release and each review's contract version. MetaDAO's form of decision-has-findings: a MetaDAO finding's decision is the proposal account.

proposalHasWindow

GovernanceProposal → RecordingWindow. 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.

proposalState

GovernanceProposal → ProposalState. The record lifecycle state a MetaDAO proposal is in: the program's own states, finalized once the TWAPs are, unknown where the read failed.

ratioDenominator

Metric → Metric. The metric a ratio divides by; the ratio is null where it is zero, never infinite or zero.

ratioNumerator

Metric → Metric. The metric a ratio divides: a plain metric of the same type and time column.

realizesComponent

OnchainConstruct → MechanismComponent. Bridges a decoded onchain construct to the abstract mechanism component it realizes.

receiptAboutObject

ActionReceipt → DiligenceClaim or Investigation or RecordingWindow or PolicyVersion or WindowParameterFiling or ActionReceipt or AnalyticalRun. about (one; asserted by private-ledger, immutable, at-read). The object the action named; the receipt's objectType selects the actual type (a claim, an investigation, a window, a policy, a filing or another receipt) and objectKey the row. Declared against claim here because a link has one target; the other targets are the same relation under their own types, and the property's range is their union.

receiptHasOutcomes

ActionReceipt → ReceiptOutcome. resolved by (many; asserted by private-ledger, immutable, as-of-known-time). The facts derived later that answer this receipt.

recordedImpact

ImpactRecord → Impact. The completed comparison this record holds; absent without a realized change.

recordedOutcome

OutcomeRecord → MeasuredOutcome. The sourced reading this record holds; absent for a withheld measurement.

recordsProposal

ProposalSource → GovernanceProposal. The exact proposal account a source describes; a page title or MetaDAO's own decision number alone is not an identity join.

refusesSeries

DisprovenDerivation → ObservationSeries. 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.

reportAbout

Report → Organization. An organization a report names: the related-organizations rail on its page. Specialises schema.org/about.

reviewsDecision

PreWindowReview → Decision. The decision a pre-window review was filed for — a MetaDAO proposal by exact chain, program and account identity today, any engine's decision by its identity. A review is written about one decision and superseded, never re-pointed; that stays a registry rule, not a functional axiom, because decisions are an open population no release can declare pairwise distinct — a second value would be identified with the first instead of contradicting it.

revisesDossier

EvidenceRevision → Dossier. The dossier a retained revision is a version of (RevisionSchema). Specialises www.w3.org/ns/prov#specializationOf.

rosterMember

ReviewRoster → Review. The reviews a roster release contains. Membership is what a per-review contract version cannot express: adding or retiring a review moves no existing review's version, so without this edge two different rosters are indistinguishable from their reviews alone. Specialises www.w3.org/2004/02/skos/core#member.

ruleOfEngine

PublishedRule → DecisionMarketEngine. The engine that ran a published rule, where the registry records one. A rule keeps its own execution mode: Optimism's advisory Futarchy v1 was Butter's before its binding funding markets.

runBy

MonitoredVector → Review. The Attack review runs monitored playbooks; documented vectors are never run.

runsOnChain

DecisionMarketEngine → Chain. A chain the engine's markets settle on. An engine may run on several.

scopedToVector

Finding → MonitoredVector. Functional with monitored range: every classification is scoped to exactly one monitored vector. This is the axiom form of the no-composite rule. The vector individuals are declared pairwise distinct, so scoping one finding to two vectors is a contradiction rather than a silent identification of the two.

selectedOption

Decision → DecisionOption. The option the engine selected, as the source states it — the market's result. Never inferred from prices; absent while undecided or unstated. A funding market may select several.

servesResource

McpServer → McpResource. A versioned registry document the endpoint serves as an MCP resource. Documents are resources; the queries over them are tools.

servesReview

McpTool → Review. The review a review tool reads out; inventory tools carry no review.

statementAnswersField

OrganizationStatement → OrganizationStatementField. Which of the four fields the statement answers.

statementByOrganization

OrganizationStatement → Organization. The organization whose words the statement is: attributed to it, never Eidos's reading.

statementSupersedes

OrganizationStatement → OrganizationStatement. The version this one replaces; the replaced version stays in the history.

tradeOnDecision

Trade → Decision. trade on decision (one-or-none; asserted by warehouse, re-derived-per-seal, at-read). The decision whose market the trade was on, joined by engine, chain and the market id the decision carries. None where the record decodes no decision for the market.

tradesOn

DecisionMarketEngine → Venue. A venue the engine's conditional tokens trade on: its own pools for most engines, a general-purpose exchange for Butter (Uniswap on Unichain) and futarchy.fi (Swapr on Gnosis). The engine decides; the venue trades; the chain settles.

unavailableTo

UnavailableMeasure → Review. A measure the review refuses because constant-product conditional pools cannot supply what it presupposes — a quoted book, a maker's inventory, a public-announcement time. Recorded rather than omitted, so a consumer can tell a refusal from an oversight, and each entry names both the missing input and the honest local substitute.

usesRule

PublishedRule → MechanismComponent. The decision-rule variant the published rule uses, when published.

variantOf

MechanismComponent → MechanismComponent. A rule variant specializes its parent component.

venueOnChain

Venue → Chain. The chain the venue's pools live on. Functional; a venue is one deployment on one chain.

windowHasReceipts

RecordingWindow → ActionReceipt. has action receipts (many; asserted by private-ledger, immutable, as-of-known-time). Forecasts recorded, watches proposed and, after 2.0.0, filings made against this window.

windowOfDecision

RecordingWindow → Decision. 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.

windowStage

RecordingWindow → WindowStage. 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.

Releases

Each release's version IRI (https://eidos.software/ontology/<version>) resolves here. Only the current release is served as Turtle.

19.5.0 (current)

Backward compatible. Adds trade-grain recorded USD trading volume and dollar-sized trade coverage. Their 30-day baselines use trade block time, preserving the existing decision-grain volume metric and its opening-date semantics.

19.4.0

Backward compatible. Sourced browsing labels (14 October 2026): a registry-derived closed vocabulary of decision categories, action tags and organization sectors. Labels describe proposed actions and businesses, never risk, census eligibility or execution. Assignment provenance is published by the classifications read surface.

19.3.0

Backward compatible. The organization's own column (operator direction, 14 October 2026). OrganizationStatement is one reviewed version of what an organization says about one OrganizationStatementField, the closed list of four things the chain does not hold (purpose, obligations, commitments, documents; src/organization-statements.ts): its words attributed to it, dated, citing a document, checked by Eidos against that document before publication, and superseding the version before it. A version past its field's refresh window is not current; the field reads as unanswered. Published at /data/organization-statements.json, which the job diligence-an-organization now reads. Additive: two new classes and the field individuals.

19.2.0

Backward compatible. Adds the ore-implausible-pool-volume DisprovenDerivation (operator request, 14 October 2026): ORE's 24h volume from 5 Oct to the volume plausibility fix of 14 Oct summed two thin pools whose stated volume their trades could not have moved, and a replay of every reading's archived receipts found 566 of the stretch's 833 readings inflated, interleaved with the rest, so the stretch is refused for that market and series. Vocabulary only: one more individual in the closed enumeration.

19.1.0

Backward compatible. Diligence answers are a sealed object type (13 October 2026). DiligenceAnswer is one organization's answer to one diligence question, bound to main.diligence_answers (one row per organization and question, from the diligence-answers input bundle the lake cycle seals from the Diligence route document) with its state, whether it is answered and current at the run's cutoff (diligenceAnswerIsCurrent implies diligenceAnswerIsAnswered), its fact count and its newest observation, and linked to its organization. Three public metrics count it over the launched cohort: diligence-cell-count, answered-diligence-answer-count and current-diligence-answer-count, which measure the job diligence-an-organization. Additive: a new class, its properties, link and metrics.

19.0.0

Not backward compatible. Decision intelligence (operator direction, 13 October 2026). AnalyticalRun records immutable instrument outputs over retained inputs, linked to a Decision and to any superseded run. AnalyticalResult separates applicability, availability, completeness and freshness. Interpretation cites its results; EvidenceContribution is a reviewed proposal to correct evidence. Historical Review and Finding records retain their original meaning. CompositeProposalRiskScore is no longer equivalent to owl:Nothing: an aggregate requires a declared target, inputs, assumptions and validation against a baseline. No aggregate risk model is introduced by this release. Breaking for consumers that relied on the class being empty and for the expanded object contract.

18.0.0

Not backward compatible. Diligence is a fixed question set (operator decision, 13 October 2026). DiligenceQuestion is the closed, versioned list of questions Eidos answers for every organization (src/diligence-questions.ts, set 1.0.0): engine, mint and DAO account, treasury vault, spending without a market, holdings, revenue destination, mint authority, team package, concentration, decision rules, admin override, market depth, legal entity and IP, off-chain liabilities, claims at the raise, programs and audits, exit path. Each asks for a value, never a verdict. The job trust-operational-claims is re-scoped as diligence-an-organization, and claim-acceptance now judges keep-the-record-honest. Not backward compatible: a Job individual a consumer could cite is gone.

17.2.0

Backward compatible. Report kinds (operator request, 13 October 2026). ReportKind is the closed list of what an Eidos report is about (window opened, closing stretch, window closed, outcome, tape, notice), from src/report-kinds.ts, the list a report's kind front matter and the App's Reports page read. Additive: a new closed class and its individuals only.

17.1.0

Backward compatible. News categories (operator request, 12 October 2026). NewsCategory is the closed list of kinds a collected news item is read as (governance, capital, product, metrics, risk, commentary, conversation), from src/news-categories.ts, the same list Jev's category question offers and /news/ shows; newsCategoryIsNews says whether a kind reports something that happened. Additive: a new closed class and its individuals only.

17.0.0

Not backward compatible. A window's times say what they are (full-stack audit, 11 October 2026, decision 5; operator decision, 12 October 2026). The gold window relation's opened_at and closes_at held the TWAP start the tape saw and its last tick, while the decision's opened_at and closes_at (decisionOpenedAt, decisionClosesAt) and get_object hold the scheduled open and close under the same names, and they differed on every window the relation held. The columns are now main.window_outlook_windows.twap_started_at and last_tick_at (closes_at was a copy of last_tick_at and is gone), bound as RecordingWindow's windowTwapStartedAt and windowLastTickAt; window_outlook_cases, the ledger's outlook_windows and forecast_outcomes.window_twap_started_at follow. proposal-has-window is one-or-none, as decision-has-window already was: the warehouse relation holds a row only for a window the tape read, so a proposal it never read, an open one included, has none there. The public window object (/api/live-proposals) still resolves for every proposal the published snapshot holds, and its openedAt and closesAt are the proposal's schedule, not the tape's times. Not backward compatible: renamed columns, and a link a consumer could rely on to resolve may now be absent.

16.1.0

Backward compatible. A metric's 30-day change (operator request, 11 October 2026). Every Metric with a time column states metricChangeDays, 30: the seal also values it over the rows its time column placed on or before the run's cutoff day less that many days, a row with no time counting as already there, and the published value is that change's base (metrics.metric_values.through, /api/metrics). A ratio's earlier value is its parts' earlier values divided. Backward compatible: one datatype property was added and nothing was removed or narrowed.

16.0.0

Not backward compatible. Ontology hygiene (full-stack audit, 11 October 2026, decisions 11 and 9(f); operator decision: fix). Every object property states a domain and a range: hasMethodologySource takes the AttackVector domain, codifiedBy the union of AttackVector and CovenantCheck, and receiptAboutObject ranges over the union of the six classes an action may name (DiligenceClaim, Investigation, RecordingWindow, PolicyVersion, WindowParameterFiling, ActionReceipt), listed on the registry link. The record's core classes — the class of every object type that is not another's subtype: Organization, DaoAccount, Decision, DecisionForecast, RecordingWindow, Finding, DiligenceClaim, Investigation, ActionReceipt, ReceiptOutcome, ActionLineage, PolicyVersion, WindowParameterFiling, Market, CollectorSource, CalendarDate, Observation and Trade — are declared pairwise disjoint. An incident study's organization and proposal are incidentOrganizationSlug and incidentProposalAccount: the generic eidos:organization and eidos:proposal had the IncidentStudy domain, so any other subject using them was inferred an incident study. The token-spot supply and holder series notes no longer say they are recorded: the collector never asks for them. Breaking: the new domains, ranges and disjointness can make data consistent under 15.1.0 contradictory here, and two datatype properties were renamed.

15.1.0

Backward compatible. Executed and unexecuted passes are covered by the passes they can count (full-stack audit, 11 October 2026; operator decision: fix). Their coverage was execution-read-decision-count, which also counts a not-checked or no-op-selected reading neither metric admits, so futarchy.fi, whose passes the record reads only as not-checked, published zeros. Both now name execution-read-passed-decision-count, a new public count of passed decisions read as executed, not executed or pending, and have no value where it is zero. The threshold a decision was judged against reaches gold: a Decision binds decisionFinalThresholdPct (main.dim_decision.final_threshold_pct), the pass threshold a MetaDAO proposal's finalization applied, read from the trade ledger's finalization with its append-only amendments merged (silver ledger_finalizations), so a threshold decoded after its event was first recorded (93 amendments on the ledger by 11 October) is no longer invisible to gold; null where no pass or fail states one. Backward compatible: one metric and one property were added and nothing was removed or narrowed.

15.0.0

Not backward compatible. One vocabulary (full-stack audit, 10 October 2026; operator decision: fix). An organization's display name is organizationName on every surface and organization is its slug: the live read, the exposure map and the replay list rename the field, and the gold columns main.dim_decision.organization and main.dim_proposal.organization are organization_name (the semantic dimension organization_value becomes organization_name). A finding names its decision decisionId, as every key does. The MCP review envelope is review, not lane. Breaking: two bound warehouse columns and three output fields were renamed; the published documents keep the old field beside the new one until the deployed reader is replaced.

14.1.0

Backward compatible. Organization linkage off MetaDAO (9 October 2026). The organization registry gains GnosisDAO and Kleros (futarchy.fi), Umia (Umia) and the Uniswap Foundation (Butter), each linked to its decisions by a cited decider claim (src/organization-deciders.ts), so decisionForOrganization holds on those engines and organizations-with-decisions and organization-linkable-decision-count read every engine a registered organization decides on, derived from the registry: Combinator, which no registered organization decides on, keeps no value. Backward compatible: organizations and links were added, a filter widened to engines that now measure something, and nothing was removed.

14.0.0

Not backward compatible. Decision identities are checked across record and form. OutcomeRecord and ImpactRecord preserve partial and withheld evidence; MeasuredOutcome denotes a sourced reading and Impact an actual paired comparison, enforced by shapes. Decision RDF uses canonical IRIs. Market-to-decision bindings use engine, canonical chain and decision id across all engines. Datatype shapes reject ill-typed literals. Stricter validation and changed record projection require consumers to update.

13.0.0

Not backward compatible. Binds issued decision forecasts across engines to the ledger warehouse. WindowForecast remains binary; categorical forecasts share DecisionForecast. Forecast generation uses a method artifact. Removes forecastByPolicy's unintended PROV agent attribution inference. The new closed object-type enumeration and removed inference require consumers to update.

12.6.0

Backward compatible. organizations-with-decisions is covered (operator decision, 8 October 2026: null where unmeasured). MetricFlow applies a metric's filter inside its measure, so the MetaDAO-only filter of 12.4.0 still answered 0 for every other engine; the metric now names organization-linkable-decision-count, a new public count of the decisions an engine links to tracked organizations, and has no value where that is zero. Backward compatible: one metric added, and four zeros that measured nothing became nulls.

12.5.0

Backward compatible. Unmeasured is no value (operator decision, 8 October 2026: null where unmeasured). A Metric may name the count that covers it (metricCoveredBy): where that count is zero in a slice, the metric has no value there rather than a zero. Executed and unexecuted passes read execution-read-decision-count, capital moved reads capital-read-decision-count and trading volume reads usd-sized-decision-count, three new public counts; futarchy.fi's executions, every one withheld, and its capital no longer publish zeros. A futarchy.fi proposal with no pool, like one that repeats an earlier condition, has no trade, trader or volume reading (decisionTradeCount and its siblings are null). Backward compatible: three metrics and one property were added, and a zero that measured nothing became the null its type already allowed.

12.4.0

Backward compatible. Modules that stand alone, and ActionType closed (product audit, 7 October 2026). Each attribute property is now declared, with its range, in the earliest module whose individuals use it, and its union domain is stated in the module where all of that union's classes are declared; until now governance used note, sourceUrl and version, and observation note and unit, before the evidence and record modules declared them, so a module loaded with only its imports was incomplete. The union graph is the same triples. ActionType states its members as owl:oneOf, the closed enumeration the 2.0.0 decision named: a verb outside them is not an action this product accepts, and a new verb is a release. organizations-with-decisions counts MetaDAO's decisions only, the one engine whose decisions link to tracked organizations, so another engine has no value rather than a published zero. Backward compatible: nothing was removed, and each change only made a statement more specific.

12.3.0

Backward compatible. futarchy.fi decisions (operator decision, 6 October 2026). The futarchy.fi engine's coverage is decoded: every proposal its factory created on Gnosis is a Decision, duplicates included, with its question, the organization whose token it trades, its close and its Conditional Tokens resolution, and trade-on-decision now joins futarchy.fi's trades to their decisions. The census counts an advisory engine's decisions under the one rule every engine shares. Additive: no class, property or metric was removed or narrowed.

12.2.0

Backward compatible. Trades and medians (operator request, 6 October 2026). A Trade is one final swap the trade ledger recorded on a decision market, on any engine, bound to main.fct_trades by engine, chain, market, transaction and position, with tradeTrader, tradeIsEconomic, tradeSizeUsd and tradeBlockTime among its properties, and trade-on-decision to the decision whose market it was on (none for futarchy.fi, whose decisions the record does not decode). The public object service resolves a trade from its market's published trade document. trader-count counts distinct wallets over every engine's trades, each wallet once. A metric's aggregate may be median, the continuous median (the mean of the two middle values over an even number), and median-trades-per-decision and median-traders-per-decision use it. Additive: no class, property or metric was removed or narrowed.

12.1.0

Backward compatible. Trading and organization-link metrics (operator request, 6 October 2026). A Decision binds decisionTradeCount, decisionTraderCount and decisionVolumeUsd: the trade ledger's final trades on its market (swaps of 0 for 0 excluded), the distinct wallets among them and their dollar size where the market is quoted in a USD stablecoin, each null where the ledger holds no row for the market. An Organization binds organizationDocs, organizationXProfile and organizationDaoAccountCount. Nine public metrics read them: trade-count, trading-volume, trades-per-decision, traders-per-decision, options-per-decision, organizations-with-website, organizations-with-x, organizations-with-docs and dao-accounts-per-organization. A metric's unit may now be usd, a sum of US dollars, beside count and ratio. Additive: no class, property or metric was removed or narrowed.

12.0.0

Not backward compatible. Six reviews on every engine (operator request, 6 October 2026). A Finding is one review's readout for a decision on any engine the record decodes, not only a MetaDAO proposal: its warehouse binding is keyed by the decision's engine, chain and id (main.lane_findings: engine, chain, decision, team, roster_version, ts; it was keyed by proposal), finding-of-decision and decision-has-findings join on the decision's identity, and proposal-has-findings selects the MetaDAO rows. Review roster 3.0.0 carries every review at 2.0.0, and the wash-volume playbook (4.0.0) reads any number of options. No class, property or axiom changes, but a reader that joined findings on their proposal column must join on the decision's identity, so this is not backward compatible.

11.3.0

Backward compatible. Holder concentration (operator decision, 6 October 2026). Two published observation series, largest-holder-pct and top-10-holders-pct: the share of a quoted mint's on-chain total supply its largest holder and its ten largest hold, read from the mint's twenty largest token accounts attributed to their owners, with balances a registered lock program or a known pool vault holds reported apart and never counted as a holder. Each maps to a history_observations physical column, and the disproven-derivation shape's series list admits them. Additive: new individuals and two more permitted values only, so nothing 11.0.0 accepted is contradictory here.

11.2.0

Backward compatible. A swap of 0 for 0 is not a trade (operator decision, 6 October 2026: the ETL audit found MetaDAO ConditionalSwap events whose input and output were both zero, confirmed on chain, counted as trades in markets' and wallets' trade counts). The trade ledger keeps every such event as the chain recorded it, and no count of trades counts it (src/non-economic-swap.ts: a swap is non-economic when both raw legs are zero; one leg zero is a dust trade, still a trade, unpriced). A Decision binds decisionSwapCount (every final swap the ledger recorded on its market) and decisionNonEconomicSwapCount (the swaps of 0 for 0 among them), and new metrics state them: swap-count, non-economic-swap-count and non-economic-swap-share. An observation of the record, never an attack indicator, a classification or a score. Additive: new properties, bindings and individuals only, so nothing 11.0.0 accepted is contradictory here.

11.1.0

Backward compatible. Adds disprovenFrom and disprovenSignature (operator decision, 6 October 2026). A DisprovenDerivation may now refuse a stretch of a lane, rows observed from one instant and before another, and may refuse only rows whose value meets a stated test. The one-off last-swap-hour price backfill forced both: where the hour's last swap was dust it recorded an exact ratio of a few units (101/18 for MetaDAO) instead of a price, 3-7% outside the market's range, while its other rows hold, so the refusal is the dust signature wherever it falls, plus the two-day MetaDAO stretch the dust dominated, refused whole so the chart breaks there. Vocabulary only: annotation properties on existing individuals, so nothing 11.0.0 accepted becomes contradictory.

11.0.0

Not backward compatible. One type per thing (operator request, 6 October 2026: the Metrics page counted MetaDAO's 161 proposals twice, as Proposals and as the MetaDAO decisions they are). The class model said GovernanceProposal is a subclass of Decision since 7.0.0; the registries now follow it. An object type may declare subtypeOf (the proposal type is the decision type's rows where engine is metadao), joined to the row it is by an identity link (proposal-is-decision, and decision-is-proposal back), which no object property realizes: the two rows are one individual, which rdfs:subClassOf states. A test holds subtypeOf to the class hierarchy both ways, and a generated dbt test holds dim_proposal and dim_decision's MetaDAO rows one-to-one at every seal. The links that ranged over Decision while resolving through the proposal type (finding-of-decision, window-of-decision, market-of-decision, investigation-of-decision) now target the decision type. Links state their inverses (owl:inverseOf: decision-has-window and window-of-decision, decision-has-findings and finding-of-decision, the organization and DAO account pair, dao-account-has-proposals and proposal-governed-by, market and observation, receipt and outcome) and MetaDAO's links specialise the decision's (rdfs:subPropertyOf: proposal-governed-by, proposal-has-window, proposal-has-findings). decidedFor is deleted: it was decisionForOrganization published twice, and the decision shape now checks decisionForOrganization. Metrics: proposal-count, decided-proposal-count and passed-proposal-count are retired, the same rows as decision-count, decided-decision-count and passed-decision-count on MetaDAO; proposal-pass-share becomes pass-share over decided decisions whose options are pass and fail (decided-pass-fail-decision-count; a Decision binds decisionNamesPassOption), null on every engine without a pass option; pending-proposal-count becomes pending-decision-count and funded-draft-count measures decisions (a Decision binds decisionState and decisionIsFundedDraft). The census's organization is its decider (census-decider-count, decisionDeciderKey; was census-organization-count and decisionOrganizationKey), since most deciders are not tracked organizations. The review counts are on the census's base on every engine, and the six reviews' flags come from roster findings only. The metric registry refuses two metrics over one row set and a slice of another that does not say so (sliceOf), lifting a subtype's metric onto its supertype's rows; a seal refuses two boolean properties equal on every row unless one implies the other (decisionAttackReviewFiled implies decisionEvidenceReviewFiled, which the seal now checks row by row).

10.6.1

Backward compatible. The market-cap-usd series says what the tape records (ETL audit, 5 October 2026). Its note claimed a cap the quote flags marketCapIsFdv is withheld from the series; the collector records it as stated and the flag rides on the quote, as it has since the 25 August 2026 quote-feed fix. The series carries no observation only when the quote has no cap, a quote gate's withhold included. A note only: nothing 10.6.0 accepted changes.

10.6.0

Backward compatible. A decision is one its market decided (data audit, 5 October 2026). A GovernanceProposal binds proposalIsDecided: the account reads passed or failed and the DAO's admin did not cancel it. An admin cancellation (MetaDAO's AdminCancelProposalEvent, which the trade ledger now records) leaves the account failed without a market result, so decided-proposal-count counts decided proposals rather than the two account states, and proposal-pass-share's denominator follows. The census counts a MetaDAO decision only once its market decided it, never a draft, a pending window, a removed or a cancelled proposal.

10.5.0

Backward compatible. Machine changes: the public record of what changed in the machine's own state (operator decision, 5 October 2026). A MachineChange is one public fact that crossed between two sealed daily samples of the machine's records — a job or feed failing or recovering, a schedule stopping or starting, a source crossing its delivery floor or going stale, a tape series stopping or resuming, the published claim or decision counts moving — cut from the private daily report through a typed allowlist and served at /api/machine-changes; changeKind names its MachineChangeKind, a closed enumeration. Additive: new classes, a property and individuals only, so nothing 10.4.0 accepted is contradictory here.

10.4.0

Backward compatible. Jobs: what each reader comes to Eidos to get done, and how anyone can tell whether it is done better (notes/typed-model-research-2026-10-05.md, phase 0). A Job states its actor and the job in the reader's words, and is judged by metrics it raises or lowers (jobRaisesMetric, jobLowersMetric) or by a JobScore a frozen evaluator computes from labels the product cannot produce (jobImprovesScore): the window outlook's Brier score and the share of staged claims the operator accepts. Every App view, read surface, MCP tool and action serves at least one job, which the job registry's check holds. A new metric, execution-checked-decision-count, counts the counted decisions whose execution the record read. Additive: new classes, properties and individuals only, so nothing 10.3.1 accepted is contradictory here.

10.3.1

Backward compatible. dao-account-count states what it counts: every DAO account the run knows — each that has brought a proposal to the program index, and each a tracked organization claims — not every DAO account the program holds. The first seal under 10.3.0 counted 39 where the live snapshot's daoCount counted 91 program accounts, 52 of which have never brought a proposal and are not DaoAccount individuals in gold; the live snapshot's daoCount is that count of program accounts, and is no longer said to be this metric. A comment and a release note only: nothing 10.3.0 accepted changes.

10.3.0

Backward compatible. The public counts outside the decision summary are metrics too. A GovernanceProposal binds proposalStateCode, proposalDaoAccount and proposalIsFundedDraft and a DaoAccount binds daoAccountKey, so the program's counts the live snapshot, the App's Pending markets, Funded drafts and proposals-recorded cards and the Organizations table's pass rate show are metrics: proposal-count, pending-proposal-count, funded-draft-count, passed-proposal-count, decided-proposal-count, proposal-pass-share and dao-account-count. counted-engine-count states how many engines the census counts a decision on, which the homepage and the Decisions index print. Additive: new properties, bindings and individuals only, so nothing 10.2.0 accepted is contradictory here.

10.2.0

Backward compatible. Every number in the decision summary is a metric. A Decision binds decisionExecutionState, decisionCapitalState, decisionIsReviewed and the three proposal-specific review readings (decisionEvidenceReviewFiled, decisionAttackReviewFiled, decisionMarketReviewFiled), sealed from the published record with the census (decision-census bundle, version 2), and new metrics count them: executed-passed-decision-count, unexecuted-passed-decision-count, no-onchain-action-count, capital-moved-decision-count, reviewed-decision-count and evidence-, attack- and market-reviewed-decision-count. Additive: new properties, bindings and individuals only, so nothing 10.1.0 accepted is contradictory here.

10.1.0

Backward compatible. The census as metrics (notes/metric-layer.md, phase 2). A Decision binds decisionIsCounted and decisionOrganizationKey: the census's own verdicts, sealed from the served decision records as the decision-census input bundle, so the rule stays in one place and is never restated in the warehouse. New metrics count them — counted-decision-count, census-organization-count — beside passed-decision-count, and the organization metrics the Overview's cards record (live-organization-count, launched-organization-count). The decision summary the API serves and the Overview's counts are computed from these definitions, by the same rules the warehouse compiles them by. Additive: new properties, bindings and individuals only, so nothing 10.0.0 accepted is contradictory here.

10.0.0

Not backward compatible. The stored identifiers say what the things are (operator decision, 4 October 2026: migrate, do not keep). The six reviews are individuals named by role — review-evidence, review-attack, review-market, review-playbooks, review-learning, review-claims (were team-pink … team-white, the colour ids the roster was first recorded under) — and the roster status a finding carries is filed, withheld or standing (filed was stored as complete): roster release 2.0.0, every lane_findings row and ledger record re-stamped by the identifier migration. The tape's market key is marketKind (was marketLaneKey, bound to a column named venue): the kind of market a market id names on its chain — spot, token-spot, dao-vaults, desk-kpi, metadao-futarchy or an engine's id — so venue means one thing, the Venue class. A ReceiptOutcome's ledger and lineage views carry the class's names (receipt_outcomes, action_lineage). The ontology states its licence, CC BY 4.0, on the union and every module; the gold dimensions carry a stamp naming each collection's class and gain the Decision rows. Not backward compatible: the review and roster-status individuals and marketKind changed spelling, and the retired names are not declared (no customers, no aliases — operator decision).

9.1.0

Backward compatible. Adds Metric: every number a surface shows, defined once over a bound object type (notes/metric-layer.md). A metric names the type it measures (measuresObjectType), its aggregate (a count of rows, or count-distinct, sum, average, minimum or maximum over one bound column), the filter that selects the rows it counts, the date or instant column its time grain buckets on, the fields it may be grouped by (bound columns of the type, or of a type one at-most-one link away, so grouping never multiplies rows), its unit and its method. A ratio names two metrics of the same type (ratioNumerator, ratioDenominator) and is a share, never a score. Individuals from src/metric-registry.ts; the warehouse seals them as ontology.metrics and compiles every one at each seal, and the semantic query accepts metric ids. Additive: a new class, its properties and individuals only, so nothing 9.0.0 accepted is contradictory here.

9.0.0

Not backward compatible. One model, five modules (operator decision, 4 October 2026). The record's subject is a Decision on every engine, so what hung off GovernanceProposal — pre-window reviews, dossiers, findings, windows, markets, investigations — now ranges over Decision, and MetaDAO's proposal is only its identity subclass. One word for one thing, across the whole vocabulary: a decision's parties are Party (was Agent, which collided with prov:Agent and with the agents this product runs), what was known is InformationState (was KnowledgeState), and Learning leaves the decision — a comparison across decisions is Calibration, in the forecast module. A receipt's result is ReceiptOutcome and a lineage row ActionLineage (both were called decision outcomes and decision records, which the /decisions/ pages are not); the six reviews are Review and ReviewRoster (were ColorTeam and ColorTeamRoster), and a finding names its review through filedBy instead of six never-instantiated finding classes; a dossier is Dossier, an attack incident IncidentStudy (was CaseStudy, while the app's cases are decisions), a diligence claim DiligenceClaim (was EvidenceGraphClaim), a published futarchy rule PublishedRule (was FutarchyImplementation, 'a named venue'). Venue is a class: where a market's conditional tokens trade — an engine's own pools, or Uniswap on Unichain and Swapr on Gnosis for the engines that do not run their own — distinct from the engine that decides and the chain that settles; the tape's venue column is marketLaneKey, a collection lane, never a Venue. The 1.1.0 governance taxonomy (GovernanceMechanism, MarketBasedGovernance, VotingGovernance) is gone: MechanismFamily already said it. The document is partitioned into governance, observation, evidence, forecast and record modules, each served as its own ontology that imports the ones before it, and aligned to PROV-O, SOSA, SKOS, DCAT, OWL-Time and schema.org by subclass and subproperty axioms; every class carries a label, every datatype property a domain, every enumeration a SKOS scheme, and the prefix is eidos. Not backward compatible: renamed terms changed spelling and the retired ones are not declared (no customers, no aliases — operator decision).

8.0.0

Not backward compatible. One word for one thing (operator decision, 2 October 2026). The tracked entity — the registry slug the app ranks under, with its token, kind and status — is an Organization: the class formerly named Protocol, and the word the code and the app had spelled protocol, project and organization by turns. The futarchy account a MetaDAO proposal names is a DaoAccount: the class formerly named Organization. Object types organization and dao-account replace protocol and organization, with links organizationHasDaoAccount, daoAccountHasOrganization, daoAccountHasProposals, filingByDaoAccount and marketOfOrganization; a proposal's exact identity names its dao, not its organization; the bound properties are organizationSlug, organizationName, organizationKind, organizationStatus, organizationIsActive, organizationTokenSymbol and organizationWebsite; the gold dimensions are main.dim_organization and main.dim_dao_account. The kinds are launched and established. The roster series are tracked-organization-count, live-organization-count and launched-organization-count, -market-cap-usd and -fdv-usd. No deprecated aliases: every stored row that carried a former id was re-chained or re-sealed under the current one in the same migration. Not backward compatible: every renamed term changed spelling, and Organization now names a different class.

7.2.0

Backward compatible. Completes the semantic layer over the gold star. Market, CollectorSource, CalendarDate and Observation are object types bound to main.dim_market (by chain, venue and market id), main.dim_source, main.dim_date and the fact main.approved_history (by observation id), with marketOfProtocol, marketOfProposal, marketHasObservations and observationOfMarket joined in the warehouse. Each bound type may now bind its class's datatype properties to columns: the property is declared with the class as its domain and an XSD range, the binding is stated on the object type as warehouseProperty (property=column, with warehouseLexical naming a column that holds the value's lexical form as text), and every seal holds each column to exist with a type of that range. Protocol binds seven, including the website the sealed profile collection found. Additive: new classes, properties and bindings only, so nothing 7.1.0 accepted is contradictory here.

7.1.0

Backward compatible. Registers Decision as an object type the read service resolves, keyed by engine, chain and decision id from the published decision records (/data/decisions.json), with two links: decisionIsProposal (a MetaDAO decision is its proposal) and decisionGovernedBy (the DAO a MetaDAO proposal names). The closed list of public action types gains read-resource: a keyed read, receipted. Additive: nothing 7.0.0 accepted is contradictory here.

7.0.0

Not backward compatible. Makes the decision the record's subject. Decision is one decision a market made or is making, on any engine, by engine, chain and decision id; GovernanceProposal, MetaDAO's form, becomes its subclass, so every proposal IRI and key stands. The decision's form hangs off it: Purpose (what it was for), KnowledgeState (what was known), Execution (what was done), MeasuredOutcome (what followed), and beside them Impact (the market's forecast next to what the measure did, two numbers, never a grade), CapitalMovement, Agent, Authority and Learning (what the record learns across decisions; not the Learning review, which files per proposal). hasOption and judgedOn widen from GovernanceProposal to Decision; selectedOption moves from DecisionOutcome to Decision, because the option a market selected belongs to the decision and DecisionOutcome is what came of one of Eidos's own receipts. Not backward compatible: a consumer that typed selectedOption's subject as a DecisionOutcome now reads it as a Decision.

6.2.0

Backward compatible. Binds Protocol, Organization and Proposal to the warehouse's conformed gold dimensions: main.dim_protocol (one row per slug), main.dim_organization (one row per DAO account the run knows, indexed or registry-claimed, with its participation classification; titled by name) and main.dim_proposal (one row per proposal in the program index, typed). protocol-has-organization widens from one-or-none to many: metadao and sanctum each moved DAO accounts, so a protocol may be governed by more than one organization over its life. Binding literals and one cardinality widening only: nothing 6.1.0 accepted is contradictory here.

6.1.0

Backward compatible. Adds the decision's form across engines. DecisionMarketEngine (MetaDAO, Combinator, Butter, Umia, Futarchy.fi), EngineDeployment (Futardio, Star and the other launchpads and apps on an engine's rails), Chain and MechanismFamily (pass or fail on token value, several options on token value, funding judged on a measured outcome, advisory) are generated from the engine registry; DecisionOption, its NoOpOption subclass and OutcomeMeasure state what a market chose among and what it was judged on, so a pass/fail proposal is the two-option case — pass, and fail as the no-op — rather than the only shape. Each program deployment and futarchy implementation names its engine. Vocabulary only: no key, class or axiom that 6.0.0 declared changes, so nothing it accepted is contradictory here.

6.0.0

Not backward compatible. Retires formerSeriesIds. The stored rows that carried the cohort series' earlier ids were re-chained and re-sealed under the current ids on 28–29 Sep 2026, so no reader, store or export names an earlier id any more, and the three series no longer list one. The property is no longer declared. No class or axiom changes. Not backward compatible: a consumer reading formerSeriesIds no longer finds it.

5.0.0

Not backward compatible. Moves the namespace to the site's domain. Every IRI, the ontology IRI, every version IRI (the prior releases' included) and the validation-shape namespace now spell https://eidos.software/ontology…; the former domain is retired with no DNS and no redirects (operator decision, 28 Sep 2026), so nothing the old IRIs named could be dereferenced any more. The private workflow vocabulary moves with it (https://eidos.software/workflow#). Stored IRIs were rewritten in the same migration and every sealed record that carried one was re-sealed, so a seal proves integrity from the re-seal onward. No class, property or axiom changes. Not backward compatible: every term changed spelling, so a consumer matching an old IRI no longer matches.

4.1.0

Backward compatible. Binds the evidence-graph claim and the policy version to the private-ledgers run: EvidenceGraphClaim to main.claims (one row per claimId, typed out of the sealed payload, with its current review and publication state) and PolicyVersion to main.policy_versions (one row per artifact and artifact_sha256). claim-supersedes and claim-has-receipts gain their warehouse joins; policy-has-receipts states why it has none (the two policy verbs key their receipts differently). Binding literals only: no class, property or axiom changes.

4.0.0

Not backward compatible. Renames the app root's cohort from ownership coins to launched projects. The three cohort series take new ids and IRIs (launched-project-count, launched-project-market-cap-usd and launched-project-fdv-usd); each lists its former id under formerSeriesIds. Rows recorded before the rename keep the old id in storage and read as the new series; nothing recorded was rewritten. The registry's project kind is now launched-project. Not backward compatible: a consumer matching the old series IRIs or ids no longer matches.

3.1.0

Backward compatible. Gives every object type a class and a place in the warehouse. Adds Protocol, Organization, RecordingWindow, EvidenceGraphClaim, Investigation, DecisionOutcome and WindowParameterFiling; each ObjectType names its class (describesClass) and, where a sealed warehouse holds one keyed row per object, its binding: database, relation, key columns and title column (warehouseRelation and siblings), or the reason it has none (warehouseUnbound). Each link type is realized as an object property between the two classes (realizedAs) with its warehouse join. Adds RosterStatus, the complete / withheld / standing axis stored findings carry, disjoint in meaning from a vector Classification; refusesSeries, the IRI form of a disproven derivation's series scope; and the edges the evidence and harness classes were missing (a dossier's proposal, claims and sources; a forecast's window and policy; a candidate's policy, run and parent; a catalog record's protocol). The document has been served at /ontology/eidos.ttl since the rename of 27 Sep 2026 (3.0.0 was served under the product's former name; the IRIs did not change). No disjointness axiom is added, and the one new functional property (hasRosterStatus, on Finding) is used by no earlier triple, so nothing 3.0.0 accepted is contradictory here.

3.0.0

Not backward compatible. Types the literals. Every datatype property declares its range, read from the values it carries: instants are xsd:dateTime, calendar days xsd:date, counts xsd:integer, flags xsd:boolean, and a property whose values mix kinds stays xsd:string. disprovenBefore and publishedAt were plain strings and teamCount was the string "6"; a SPARQL filter or a reasoner could not compare them. Adds validation shapes for DisprovenDerivation (a refusal states its measurement, names a registered series, dates an instant) and ActionType (a public verb edits one object type and is submitted by an external party only). Not backward compatible: the literal terms changed, so a consumer matching the old plain strings no longer matches, and a document asserting a plain string for a now date-ranged property is inconsistent under the declared range.

2.2.0

Not backward compatible. Gives PreWindowReview its proposal: reviewsProposal links a review to the GovernanceProposal it was filed for, and the class is declared disjoint from Finding, Classification and WindowForecast, so "never a classification, never a forecast" is an axiom rather than a comment. Relabels the roster releases "Review roster" (1.14.0 relabelled the teams and missed them) and the aggregate vault series "Cohort treasury cash", which shared the per-project series' label. Not backward compatible in the 1.2.0 sense: an individual typed both a pre-window review and a finding, state or forecast was consistent under 2.1.0 and is contradictory here.

2.1.0

Backward compatible. Adds the proposal-source chain: a Futarchy account references a Squads proposal and vault transaction, whose optional Memo bytes may point to an external document. MetaDAO venue prose is a separate offchain source. Onchain and offchain source classes are disjoint. Known MetaDAO governance deployments carry explicit decoder coverage, so prior programs are not mistaken for empty history. Additive vocabulary.

2.0.0

Not backward compatible. Makes ActionType satisfiable: the kinetic half opens. Release 1.4.0 declared the class equivalent to owl:Nothing because every tool was read-only; from this release its individuals are the verbs an external party may submit, the first being file-window-parameters — an organization files, before a proposal's window opens, the covenant it published and the market parameters it configured, under a key scoped to that organization. Adds ActionReceipt and DecisionRecord as classes (their instances stay private ledger rows) and the policy and filing object types. Not backward compatible: a consumer that relied on ActionType having no instances must be told. The private verbs stay in the workflow vocabulary, disjoint from this class; the public MCP endpoint stays read-only.

1.16.0

Backward compatible. Adds ObjectType and ObjectLinkType: the nouns a decision record points at (protocol, organization, proposal, window, finding, claim, investigation, action receipt, decision outcome, decision record), each with its primary and title keys, the store that backs it and that store's authority, and its links with direction, cardinality, the asserting store, correction behaviour and temporal scope. Individuals from src/object-registry.ts; the object read service resolves the public-backed types. Additive; ActionType stays unsatisfiable until 2.0.0.

1.15.0

Backward compatible. Adds PreWindowReview: a review filed for one proposal before its recording window opens — the ask, the covenant and market parameters, the day-one checks that can and cannot run, and the send that carried it. The first decision-lineage object. Additive; nothing 1.14.0 accepted changes meaning.

1.14.0

Backward compatible. Relabels the six reviews by discipline — Evidence, Attack, Market, Playbooks, Learning, Claims — in every rdfs:label and comment. The team individuals, the finding classes (still PinkTeamFinding … WhiteTeamFinding, now derived from the ids rather than the labels), the roster class, and every property IRI are unchanged. Labels only: nothing 1.13.0 accepted becomes contradictory.

1.13.0

Backward compatible. Adds VectorFinding as a Finding subtype. SHACL distinguishes generic lane provenance from scoped classifications, admits roster references, explicitly ignores rdf:type, and compares RDF terms without coercing IRIs to literals. Vocabulary is additive; previously accepted malformed RDF may fail corrected validation.

1.12.0

Backward compatible. Adds the ranger-quote-source-flips DisprovenDerivation: Ranger's whole quote lane from 25 Aug to the extractor fix of 14 Sep 2026 is refused for price, cap and FDV, scoped to that market and to rows before the fix reached the collector. Vocabulary only: one more individual in the closed enumeration.

1.11.0

Backward compatible. Adds disprovenBefore: a DisprovenDerivation may be scoped in time as well as to a series or a market, refusing only rows observed before a stated cutoff. The quote feed's cap/FDV flip of 23–25 Aug 2026 forced it — the same provenance is honest from the first read of the fixed feed onward, so a scope with no time axis could only refuse the whole lane or none of it. Vocabulary only: an annotation property on existing individuals, so nothing 1.10.0 accepted becomes contradictory.

1.10.0

Backward compatible. Adds bounded approved warehouse history SQL column mappings to existing published observation series; preserves event time and known time as separate claims.

1.9.0

Backward compatible. Adds analytical SQL relation metadata derived from the semantic catalog, with physical columns, grain, joins and existing concept identities. No change to findings or forbidden concepts.

1.8.0

Backward compatible. Adds UnavailableMeasure and unavailableTo: the market measures this venue cannot supply the inputs for, each naming the missing input and the honest local substitute. The Market review's microstructure stack made the gap visible — a reader seeing order-flow imbalance and price impact but no effective spread cannot tell whether the spread was omitted or refused, and here it is refused, because constant-product conditional pools have no bid, ask, queue, or maker inventory for one to be measured against. The information-leakage score joins them for a different missing input: every timestamp a proposal account carries is a moment the market learned, not a moment the public did. Naming a refusal is the same move the unsatisfiable classes make, one step weaker: those concepts may not exist, these may not be measured here. Vocabulary only: 1.7.0 had no such class to assert.

1.7.0

Backward compatible. Adds DisprovenDerivation: the derivations a measurement closed, each carrying the measurement that closed it. 1.6.0 stated the rule in a comment — the tape records every reading, the rollup decides which ones publish — but named none of the closed methods, so a consumer reading a stored row's provenance could not tell a refusal from an absence. An entry may be scoped to a series or a market, because a source that resolved the wrong asset for one member is not thereby wrong for the members it resolved correctly. Vocabulary only: 1.6.0 had no such class to assert, so nothing it accepted becomes contradictory.

1.6.0

Backward compatible. Adds the observation layer: ObservationSeries (partitioned into PublishedSeries and CrossCheckSeries), CoverageLane, and ProvenanceMethod, generated from the series registry. The data Eidos measures had no representation here — series names, lane groupings, and provenance semantics lived as scattered string literals, which is how the depth readout, the rollup, and the drawn charts came to disagree about the same lane. The published/cross-check partition encodes the 24h-column rule as logic: a provider's own figure is recorded to verify against and is never rendered as ours. Vocabulary only: nothing 1.5.0 accepted becomes contradictory.

1.5.0

Backward compatible. Adds ColorTeamRoster and filedUnderRoster, so a finding can name the roster release it ran under and not merely the team that filed it. The roster is versioned as a whole because a team added, retired, or renamed moves no existing team's contract version, and a finding stamped only with its own team's version cannot tell those roster shapes apart. Vocabulary only: nothing 1.4.0 accepted becomes contradictory.

1.4.0

Backward compatible. Declares ActionType unsatisfiable. An ontology of this shape usually carries a kinetic half — the schema of changes a user can make to the objects — and Eidos deliberately has none: every tool is read-only. Stating that as an empty class makes the boundary logic rather than an absence a reader has to notice. Additive: 1.3.0 had no such class to assert.

1.3.0

Backward compatible. Adds hasClassification, so a finding's state is expressible in RDF and the SHACL shapes can gate a finding payload. Vocabulary only: nothing that 1.2.0 accepted is contradictory here.

1.2.0

Not backward compatible. The attack-vector individuals are declared pairwise distinct, so the functional scopedToVector rejects a two-vector finding instead of identifying the two vectors. Added axioms only — but a finding that 1.1.0 accepted can be contradictory here, so this release is not backward compatible.

1.1.0

Backward compatible. The futarchy mechanism taxonomy, the MCP resource surface, and the expanded component coverage.

1.0.0

Backward compatible. The closed roster, the classification partitions, the vector taxonomy, and the forbidden concepts.

Back to Eidos

Eidos

Analyze decision markets. Follow competing choices, inspect the evidence and review what happened.

ChannelsXTelegram
ProductAppLive decisionsMCPDocs
Who it is forFor OrganizationsFor FundsFor AgentsStart a pilotRegister your organization
ReferenceMethodologyOrganizationsDecision casesResearchFAQ
FoundingRationaleThesisApproachCapital
ResourcesStatusPrivacyTerms of Servicellms.txt

Independent analysis. Eidos analyzes decision markets across five engines on Solana, Unichain, Base and Gnosis Chain. Explore market conditions, trading activity and recorded outcomes through the App, decision cases and published analysis. Eidos is independent of the engines, issuers and services it records.

Evidence and interpretation. Sources and methodology accompany the data. Market-implied expectations, execution checks and observed outcomes answer different questions. Each analytical finding names its method, supporting evidence and limitations. Missing or incomplete evidence is identified, and a no-match finding is not a statement that a decision is safe. Read the methodology.

Financial disclaimer. This material is for informational and educational purposes only. It is not an offer, solicitation, or recommendation to buy, sell, or hold any financial instrument, or investment, legal, tax, or accounting advice. Digital assets are volatile and may lose all value. Past outcomes are not indicative of future results. Data may be incomplete or delayed; no warranty of accuracy, completeness, or fitness for a particular purpose is made. Terms of Service.

© 2026 Eidos. All rights reserved.