Skip to main content

Overview

Two anonymized CSVs for every trading day, published at data.novig.com. Trades records every executed trade; Markets snapshots every market. Static files behind a CDN — no API, no authentication. Each day publishes shortly after midnight Eastern. A day that fails validation is withheld rather than published incomplete. The manifest lists each file’s dates separately, because the two publish independently — a day whose trades are withheld still gets its market snapshot:
index.json
dates is Trades. marketDates is Markets, and is absent on manifests published before that file existed — read it as an empty list.

Trades

Rows are sides, not trades

Every trade appears once per side: one TAKER row — the order or quote request that executed the trade — plus a MAKER row for each counterparty.
trades.csv
Working with the data:
  • Count trades — count TAKER rows
  • Price one side paidcost / qty, a probability between 0 and 1
  • Total amount staked — sum cost over all rows
  • Notional volume in dollars — sum qty over TAKER rows

Columns

timestamp
Execution time, ISO-8601 (UTC).
string
Outcome that traded. For a COMBO, the contract the combination cleared against — unique to that trade, so it cannot group two trades of the same legs.
string
Market of the trade. For a COMBO, the same value as outcomeId.
string
Product group: a sport and a family, e.g. Basketball Moneyline. Multi-leg trades read Parlay; an unrecognized sport or family reads Other. Group by this column to total volume per product.
string
League the contract is listed under, e.g. NBA. Empty for a COMBO.
string
Market type the contract is listed under, e.g. MONEY. Empty for a COMBO.
STRAIGHT | COMBO
STRAIGHT is a single-outcome trade matched on the order book. COMBO is a trade on a combination of outcomes, filled against a requested quote.
integer
Outcomes the contract combines. Every STRAIGHT trade has 1.
string
Dollars this side staked. The two sides of a trade together stake its notional value.
string
Quantity in contracts, where one contract pays $1. May carry a fraction.
TAKER | MAKER
Which side of the trade this row reports.
cost and qty are strings carrying full numeric precision, with no trailing zeros. Fees are not included in cost on either side.

Markets

markets.csv carries one row per market per day, whether or not it traded. Most markets on any given day have no activity and report zeros — the file is a census of what was listed, not of what moved.
A combination appears on the day it executes, and only that day. A combination trades once and never changes afterwards, so republishing it each day would repeat one trade indefinitely. Its reportTicker is COMBO, and because it has a single trade its open, high, low and close are all that one price, and its openInterest equals its dailyVolume.Order-book markets appear every day they are listed, traded or not, up to and including the day they settle. After that they do not appear again — a settled market can no longer change, so there is nothing further to report.
markets.csv

Columns

string
Trading day the row describes, YYYY-MM-DD, midnight–midnight Eastern.
string
Market the row describes. The same identifier as marketId in trades.csv, so the two files join on it.
string
Product family the market belongs to — a sport and a bet type, e.g. MLB-SPREAD. Every combination reads COMBO. Group by this column to total open interest or volume per product.
string
Contracts outstanding at the close of the day, cumulative across every day the market has traded — not just this one. A holder with offsetting positions on both sides is counted only for the difference, and each contract is counted once rather than once per side. A market reports 0.00 on the day it settles, which is its last appearance.
string
Contracts traded during this day alone. A market can carry open interest with no volume, meaning it traded on an earlier day and those positions are still open.
string
First price traded during the day, in cents to one decimal, 0.0100.0. Empty if the market did not trade that day, which is not the same as having traded at zero. Never carried forward from an earlier session.
string
Highest price traded during the day, in cents. Empty on a day with no trades.
string
Lowest price traded during the day, in cents. Empty on a day with no trades.
string
Last price traded during the day, in cents. Empty on a day with no trades.
active | closed | determined | finalized
active accepts orders. closed has stopped trading and awaits a result. determined has a known result not yet paid out. finalized has settled.
openInterest and dailyVolume are in contracts, where one contract pays $1, with two decimal places. Prices are in cents with one, because fills do not land on whole-cent ticks — a close of 47.5 is a probability of 0.475.

Anonymity & Stability

Rows identify no trader, wallet, or order, and COMBO contract identifiers are unique per trade by construction, so positions cannot be linked across trades. Columns may be added over time — read the header row rather than assuming positions. Files for past dates are immutable once published, except for announced corrections, which republish the affected date in place.