{"specification":"PMI Event Contract Specification","version":"0.1.0","status":"draft","publishedOn":"2026-09-28","url":"https://www.predictionmarketadvisors.com/ecs","schema":"https://www.predictionmarketadvisors.com/ecs/schema.json","validate":"https://www.predictionmarketadvisors.com/api/ecs/validate","licence":"Free to implement, cite and build against, with attribution to the Prediction Markets Institute.","fields":[{"path":"ecs","type":"string","level":1,"pattern":"^0\\.1(\\.\\d+)?$","description":"The ECS version this document conforms to.","conditional":false},{"path":"contract.id","type":"string","level":1,"description":"The issuer’s own reference for the contract.","conditional":false},{"path":"contract.question","type":"string","level":1,"economic":true,"description":"The question, as displayed to a participant. Checked against the failure-pattern registry.","conditional":false},{"path":"contract.category","type":"enum","level":1,"values":["economics","elections","policy-regulation","sports","weather-climate","science-technology","corporate","digital-assets","culture","other"],"description":"Classification, for aggregation across venues. Not part of the identifier.","conditional":false},{"path":"outcomes.type","type":"enum","level":1,"economic":true,"values":["binary","categorical","scalar"],"description":"Binary (two outcomes), categorical (one of a stated set) or scalar (a measured value).","conditional":false},{"path":"outcomes.values","type":"array","level":1,"economic":true,"description":"The exhaustive, mutually exclusive set of outcomes. Binary contracts list exactly two.","conditional":true},{"path":"outcomes.partialTruthRule","type":"string","level":0,"economic":true,"description":"How the contract resolves when a compound condition is only partly met. Required in effect wherever the question joins two facts.","conditional":false},{"path":"observation.event","type":"string","level":1,"economic":true,"description":"The precise event or measurement observed, stated without evaluative terms.","conditional":false},{"path":"observation.closeTime","type":"datetime","level":1,"economic":true,"description":"The instant after which the event can no longer occur for this contract. ISO 8601 with an explicit offset.","conditional":false},{"path":"observation.measurement.precision","type":"string","level":2,"economic":true,"description":"The precision at which the measured value is read (e.g. “one decimal place, in percent”).","conditional":true},{"path":"observation.measurement.rounding","type":"enum","level":2,"economic":true,"values":["half-up","half-even","truncate","none"],"description":"The rounding rule applied at that precision.","conditional":true},{"path":"resolution.source.name","type":"string","level":1,"economic":true,"description":"Whose account of the world settles the contract.","conditional":false},{"path":"resolution.method","type":"enum","level":2,"economic":true,"values":["single-source","multi-source"],"description":"Whether one source determines the outcome, or several read together under a stated aggregation rule.","conditional":false},{"path":"resolution.additionalSources","type":"array","level":2,"economic":true,"description":"The other sources read alongside the primary one.","conditional":true},{"path":"resolution.aggregation","type":"string","level":2,"economic":true,"description":"How the sources are combined — e.g. median, unanimity, two of three — and what happens when they diverge.","conditional":true},{"path":"resolution.source.publication","type":"string","level":2,"economic":true,"description":"The specific publication, release or dataset — not the organisation in general.","conditional":false},{"path":"resolution.source.url","type":"url","level":2,"economic":true,"description":"Where that publication is found.","conditional":false},{"path":"resolution.determinationDeadline","type":"duration","level":2,"economic":true,"description":"Latest time after the close time by which the outcome is determined, as an ISO 8601 duration.","conditional":false},{"path":"resolution.fallbacks","type":"fallbacks","level":2,"economic":true,"description":"The ordered fallback waterfall (Part C), ending in a terminal step.","conditional":false},{"path":"resolution.alternateSource.name","type":"string","level":2,"economic":true,"description":"The named alternate source, if the waterfall uses one.","conditional":true},{"path":"resolution.maxPostponement","type":"duration","level":2,"economic":true,"description":"The longest the determination may be postponed before the next step applies.","conditional":true},{"path":"resolution.voidSettlement","type":"enum","level":2,"economic":true,"values":["return-of-premium","fixed-payout"],"description":"How a voided contract settles. Never at a last traded price, which the parties can move.","conditional":true},{"path":"disputes.window","type":"duration","level":2,"description":"How long after determination a dispute may be raised.","conditional":false},{"path":"disputes.decisionMaker","type":"enum","level":2,"values":["calculation-agent","determinations-committee","arbitration","counterparty-agreement"],"description":"Who decides a dispute.","conditional":false},{"path":"disputes.independentReview","type":"true","level":3,"description":"A decision can be reviewed by someone with no interest in the outcome and no position in the contract.","conditional":false},{"path":"disputes.publishedReasons","type":"true","level":3,"description":"Determinations and dispute outcomes are published with reasons.","conditional":false},{"path":"settlement.currency","type":"string","level":1,"economic":true,"description":"ISO 4217 code, or the identifier of the settlement asset.","conditional":false},{"path":"settlement.payoutPerContract","type":"number","level":1,"economic":true,"description":"Amount paid per contract on the winning outcome.","conditional":true},{"path":"settlement.payoutFormula","type":"string","level":1,"economic":true,"description":"For scalar contracts, the payout as a function of the observed value, with any floor and cap.","conditional":true},{"path":"settlement.period","type":"duration","level":2,"description":"Time from determination to settlement.","conditional":false},{"path":"integrity.restrictedPersons","type":"string","level":3,"description":"Who may not trade: at minimum anyone able to influence the outcome or holding material non-public information about it.","conditional":false},{"path":"integrity.manipulationSensitivity","type":"enum","level":3,"values":["low","elevated","high"],"description":"The issuer’s own assessment of how easily the outcome could be influenced by a participant.","conditional":false},{"path":"execution.eligibility","type":"enum","level":1,"values":["eligible-contract-participant","other"],"description":"Who may be a counterparty.","conditional":false},{"path":"execution.formation","type":"enum","level":2,"values":["request-for-quote","bilateral-negotiation","other"],"description":"How the trade is formed.","conditional":false},{"path":"execution.intermediaryRole","type":"enum","level":2,"values":["none","principal","agent","introducing-only"],"description":"The role of any platform or dealer between the counterparties. Disclosed because it changes who bears what risk.","conditional":false},{"path":"execution.calculationAgent","type":"string","level":2,"description":"Who makes the Determination in the first instance.","conditional":false},{"path":"execution.documentation.master","type":"string","level":2,"description":"The master agreement the confirmation sits under.","conditional":false},{"path":"execution.documentation.confirmation","type":"string","level":2,"description":"The confirmation form that carries these terms.","conditional":false},{"path":"execution.documentation.incorporatesDefinitions","type":"true","level":3,"description":"The confirmation incorporates the ECS Definitions by reference, so every term above carries its published meaning.","conditional":false},{"path":"execution.clearing","type":"enum","level":2,"values":["cleared","uncleared"],"description":"Whether the trade is cleared.","conditional":false},{"path":"execution.collateral","type":"string","level":2,"description":"The collateral or margin terms that apply.","conditional":false},{"path":"execution.reporting","type":"string","level":3,"description":"Who reports the trade, and to whom.","conditional":false}],"definitions":[{"term":"Event Contract","text":"An agreement whose payoff depends on whether, or the extent to which, a stated event occurs, as observed by a stated source."},{"term":"Question","text":"The plain-language statement of the Event Contract, as displayed to participants. Where the Question and the structured terms conflict, the structured terms govern."},{"term":"Outcome Set","text":"The exhaustive and mutually exclusive outcomes of the contract. Exactly one Outcome is determined."},{"term":"Close Time","text":"The instant after which the observed event can no longer occur for purposes of the contract."},{"term":"Resolution Source","text":"The named publisher and specific publication whose account determines the Outcome. The Resolution Source is not a party to the contract and assumes no obligation by being named."},{"term":"Determination","text":"The act of fixing the Outcome from the Resolution Source, made no later than the Determination Deadline."},{"term":"Disruption Event","text":"Any of: the Resolution Source does not publish by the Determination Deadline; it publishes a statement that does not answer the Question; it withdraws or materially revises a publication after Determination; or the event becomes impossible to observe."},{"term":"Fallback Waterfall","text":"The ordered steps applied on a Disruption Event, each tried only if the one before it fails, ending in a Terminal Step."},{"term":"Terminal Step","text":"A fallback step that always produces a result: a Determinations Committee decision, or Void."},{"term":"Void","text":"The contract is settled without any Outcome being treated as having occurred, on the basis stated in its void settlement term. Never at a traded price."},{"term":"Calculation Agent","text":"The party named in the confirmation to make the Determination in the first instance. Its Determination is subject to the contract’s dispute route."},{"term":"Determinations Committee","text":"A standing panel, independent of every party to the contract and of any intermediary in it, that decides Outcomes on referral and publishes each decision with reasons."},{"term":"Partial Truth","text":"The state in which a Question joining two or more conditions has some but not all conditions met. A contract whose Question can reach Partial Truth must state how it resolves."},{"term":"Restricted Person","text":"Anyone able to influence the Outcome, or holding material non-public information about it, and anyone trading on their behalf."},{"term":"Event Contract Identifier (ECI)","text":"A fingerprint of a contract’s economic terms, derived by the method in Part F. Two contracts with the same ECI define the same event and the same payoff, whoever the counterparties are and however the trade was formed."}],"fallbackWaterfall":[{"step":"alternate-source","title":"Alternate source","text":"Determine from a named alternate source, stated in the contract before trading opens."},{"step":"postpone","title":"Postpone","text":"Wait for the Resolution Source up to a stated maximum postponement, then move to the next step."},{"step":"determinations-committee","title":"Determinations Committee","text":"Refer to an independent committee, which decides and publishes reasons. Terminal."},{"step":"void","title":"Void","text":"Settle on the stated void basis — return of premium or a fixed payout — never at a traded price. Terminal."}],"conformanceLevels":[{"level":1,"id":"ECS-1","title":"Well-formed","text":"Every required term is present and typed correctly. A machine can read it; nobody has yet asked whether it resolves."},{"level":2,"id":"ECS-2","title":"Resolvable","text":"A named publication, a determination deadline, a complete fallback waterfall and a dispute route — and no structural failure pattern left in the Question."},{"level":3,"id":"ECS-3","title":"Governed","text":"Disputes can reach independent review and are published with reasons; the confirmation incorporates the ECS Definitions; restricted persons, a manipulation assessment and reporting are stated; no wording-level failure pattern remains."}],"patternCoverage":{"PMI-WP-002":"outcomes.partialTruthRule","PMI-WP-003":"resolution.source.publication","PMI-WP-004":"observation.closeTime","PMI-WP-005":"disputes.decisionMaker","PMI-WP-006":"resolution.fallbacks","PMI-WP-007":"observation.measurement.rounding"},"examples":[{"id":"otc-dealer","label":"Dealer trade (request for quote)","doc":{"ecs":"0.1","contract":{"id":"EXAMPLE-OTC-0001","category":"economics","question":"Will the Federal Open Market Committee lower the target range for the federal funds rate at its meeting ending 9 December 2026?"},"outcomes":{"type":"binary","values":["Yes","No"]},"observation":{"event":"The upper bound of the federal funds target range announced at the conclusion of the meeting is lower than the upper bound in effect immediately before it.","closeTime":"2026-12-09T19:00:00Z"},"resolution":{"method":"single-source","source":{"name":"Board of Governors of the Federal Reserve System","publication":"FOMC statement released at the conclusion of the meeting","url":"https://www.federalreserve.gov/monetarypolicy/fomccalendars.htm"},"determinationDeadline":"PT24H","fallbacks":["postpone","determinations-committee"],"maxPostponement":"P7D"},"disputes":{"window":"P5D","decisionMaker":"determinations-committee","independentReview":true,"publishedReasons":true},"settlement":{"currency":"USD","payoutPerContract":1,"period":"P2D"},"integrity":{"restrictedPersons":"Each party represents that it is not a Restricted Person: Federal Reserve staff and officials, and anyone with access to the statement before release.","manipulationSensitivity":"low"},"execution":{"eligibility":"eligible-contract-participant","formation":"request-for-quote","intermediaryRole":"agent","calculationAgent":"The dealer, subject to the dispute route","documentation":{"master":"Parties’ master agreement","confirmation":"ECS confirmation v0.1","incorporatesDefinitions":true},"clearing":"uncleared","collateral":"Full prepayment of maximum loss by each party","reporting":"Reporting counterparty to a swap data repository"}}},{"id":"otc-direct","label":"Direct trade (negotiated)","doc":{"ecs":"0.1","contract":{"id":"EXAMPLE-OTC-0002","category":"economics","question":"Will the Federal Open Market Committee lower the target range for the federal funds rate at its meeting ending 9 December 2026?"},"outcomes":{"type":"binary","values":["Yes","No"]},"observation":{"event":"The upper bound of the federal funds target range announced at the conclusion of the meeting is lower than the upper bound in effect immediately before it.","closeTime":"2026-12-09T19:00:00Z"},"resolution":{"method":"single-source","source":{"name":"Board of Governors of the Federal Reserve System","publication":"FOMC statement released at the conclusion of the meeting","url":"https://www.federalreserve.gov/monetarypolicy/fomccalendars.htm"},"determinationDeadline":"PT24H","fallbacks":["postpone","determinations-committee"],"maxPostponement":"P7D"},"disputes":{"window":"P10D","decisionMaker":"arbitration","independentReview":true,"publishedReasons":true},"settlement":{"currency":"USD","payoutPerContract":1,"period":"P3D"},"integrity":{"restrictedPersons":"Each party represents that it is not a Restricted Person: Federal Reserve staff and officials, and anyone with access to the statement before release.","manipulationSensitivity":"low"},"execution":{"eligibility":"eligible-contract-participant","formation":"bilateral-negotiation","intermediaryRole":"none","calculationAgent":"Party A, subject to the dispute route","documentation":{"master":"Parties’ master agreement","confirmation":"Bespoke confirmation incorporating the ECS Definitions v0.1","incorporatesDefinitions":true},"clearing":"uncleared","collateral":"Two-way variation margin under the parties’ credit support terms","reporting":"Party A to a swap data repository"}}},{"id":"failing","label":"A contract that fails","doc":{"ecs":"0.1","contract":{"id":"EXAMPLE-BAD-1","category":"policy-regulation","question":"Will Congress pass major crypto legislation and the President sign it soon?"},"outcomes":{"type":"binary","values":["Yes","No"]},"observation":{"event":"Crypto legislation becomes law.","closeTime":"2026-12-31T23:59:59Z"},"resolution":{"source":{"name":"News reports"},"fallbacks":["void"]},"settlement":{"currency":"USD","payoutPerContract":1},"execution":{"eligibility":"eligible-contract-participant"}}}],"history":[{"version":"0.1.0","publishedOn":"2026-09-28","summary":"First public draft for OTC event contracts: data model, definitions, fallback waterfall, conformance levels and the Event Contract Identifier. Exchange-listed contracts and perpetual (non-expiring) event contracts are out of scope for this version."}]}