Primary entities
3 tables
Events define the parent object, markets represent tradable contracts, and prices capture time-stamped observations for each market.
Documentation
This dataset links market structure to time-series pricing so you can analyze events, individual contracts, and historical price movement in one joined model.
Primary entities
Events define the parent object, markets represent tradable contracts, and prices capture time-stamped observations for each market.
Relationships
One event can have many markets, and one market can have many price records over time.
Use cases
Support historical analysis, event-level aggregation, contract monitoring, and downstream warehouse joins.
Join logic
The relational structure follows the model definitions in the codebase. Each market belongs to exactly one event, and each price belongs to exactly one market.
events.id = markets.event_id
markets.id = prices.market_id
When joined together, each output row is typically at the price observation grain: one event, one market, one timestamped price record.
Table
Top-level grouping for related markets.
| Column | Description |
|---|---|
id |
Primary key for the standardized event record. |
title |
Human-readable event title. |
ticker |
Exchange-provided event ticker when available; nullable. |
exchange |
Source exchange associated with the event. |
Table
Tradable market or contract associated with an event.
| Column | Description |
|---|---|
id |
Primary key for the standardized market record. |
title |
Market title or contract label. |
description |
Longer description of the market. |
start_date |
Optional market start timestamp. |
end_date |
Optional market end or resolution timestamp. |
ticker |
Optional exchange market ticker. |
active |
Optional boolean showing whether the market is active. |
closed |
Optional boolean showing whether the market is closed. |
event_id |
Foreign key to events.id. |
prices_last_updated |
Optional timestamp for the most recent synchronized price data. |
Table
Historical price observations for each market.
| Column | Description |
|---|---|
id |
Primary key for the price record. |
time |
Timestamp for the observed price. |
price |
Observed market price value. |
market_id |
Foreign key to markets.id. |
Joined output
Use a row-per-price-observation model when you need the full joined dataset. Event and market attributes repeat across price rows by design.
Analytical note
Aggregate at the market or event level when measuring counts, averages, or outcomes to avoid overcounting repeated attributes.
Warehouse note
Several market and event fields are optional in the ORM, so consumers should expect null values in selected columns.
Example query
SELECT
e.id AS event_id,
e.title AS event_title,
e.ticker AS event_ticker,
e.exchange,
m.id AS market_id,
m.title AS market_title,
m.description,
m.start_date,
m.end_date,
m.ticker AS market_ticker,
m.active,
m.closed,
m.prices_last_updated,
p.id AS price_id,
p.time AS price_time,
p.price
FROM events e
JOIN markets m
ON e.id = m.event_id
JOIN prices p
ON m.id = p.market_id
ORDER BY p.time DESC;