Pricing
How source, market, and index-level prices are observed, aggregated, and published.
Draft v0.1 — design contract, not yet a live service
This documentation set defines a proposed Time Seventeen protocol for review and implementation planning. https://api.t17.capital is the approved and reserved REST origin, but neither that origin nor any documented endpoint is claimed to be live. The WebSocket origin remains unspecified. Credentials, chain IDs, contract addresses, rate limits, and SLAs remain unapproved; IDs, prices, and timestamps shown throughout are illustrative, not real production data.
Time Seventeen publishes prices at two layers that must never be confused: market prices (venue-normalized observations of a single Market’s Outcomes) and index prices (a calculated level derived from an Index Version’s Constituents). Both layers share the same wire conventions.
Shared price conventions
- All monetary values, probabilities, index levels, quantities, and weights are fixed-point decimal strings, never floating-point JSON numbers.
- Binary market probabilities/prices fall within
[0, 1]; Time Seventeen does not assume an integer-cent representation. - Every observation carries a source timestamp (when the venue produced it), a calculation/received timestamp (when Time Seventeen processed it), and a publication timestamp (when Time Seventeen made it available), plus a millisecond epoch field where latency ordering matters.
- Every observation carries a quality state:
valid,indicative,stale,degraded,suspended, orcorrected(the API reference calls this fieldquality_state; see API Reference → Prices).
Market-price fields
A normalized market price view exposes, per Outcome: best bid, best ask, midpoint, last trade, mark/reference value, implied probability, spread, a depth summary, source venue, source identifier, source timestamp, received timestamp, publication timestamp, and freshness/state.
Time Seventeen retains venue-native semantics rather than inventing a synthetic price: a binary YES bid may imply a NO ask, but a derived value is only ever exposed with an explicit derived flag and derivation rule. Multi-outcome markets are not forced to sum to exactly one, because independent books, spreads, and fees make that untrue in practice.
Index-price fields
An Index Price Observation includes: index ID, index version ID, methodology version, level (fixed-point string), unit, calculation timestamp, source timestamp, publication timestamp, methodology version, coverage ratio, optional confidence, quality state, any missing/excluded constituent inputs, and references to the constituent Market Price Observations used.
Stale, missing, and outlier handling
| Condition | Treatment |
|---|---|
| Stale observation | Included but flagged; contributes to a reduced coverage_ratio and may push the Index quality state to degraded |
| Missing observation | Excluded from calculation and listed under the missing-constituents field; never defaulted to zero |
| Outlier observation | Excluded and listed under excluded_inputs with a reason |
| Venue outage | Affected constituents treated as missing for the outage duration |
| Market halt/resolution | Governed by the Index Version’s rebalance/normalization rules, not by silently dropping the constituent |
Corrections and backfills
A correction never overwrites a previously published Price Observation in place. Instead, a new revision is published with supersedes_id pointing at the corrected record and a correction_reason. Both the original and the corrected record remain readable, preserving the audit timeline described in Index Lifecycle.
History, candles, and freshness
- Latest snapshot endpoints return the most recent valid (or best-available, explicitly flagged) observation.
- Raw observation history returns every published observation, including superseded ones, via cursor pagination.
- Candle/aggregation endpoints bucket observations into time-based OHLC-like summaries with deterministic ordering.
- Time ranges use an inclusive
start_timeand exclusiveend_time;as_ofrequests a point-in-time view and never silently falls back to the current version. - Public, immutable historical data is safe to cache long-lived with ETags; current price and state views expose explicit freshness (
max_age_ms) so a client knows how stale a “live” read may be.
Where to go next
- API Reference → Prices for the concrete endpoint contract, request/response examples, and correction payloads.
- API Reference → Indexes and Markets for the resources these prices attach to.