The Formula
Each fill is priced independently, so a partially filled order accrues a fee per fill rather than one fee on the parent order.
Fees are charged exactly, including sub-cent amounts — there is no rounding up to the cent and no minimum fee. The only quantization is the ledger’s own precision, 5 decimal places ($0.00001), applied with standard half-up rounding. A fill small enough to owe a fraction of a cent is charged that fraction.
The formula is symmetric around $0.50:
P and 1 − P produce the same fee, so a fill at $0.30 costs exactly what a fill at $0.70 costs. The fee peaks at P = 0.50, where 0.03 × 0.25 works out to $0.0075 per contract — 0.75% of payout, or 1.5% of notional at even money — and falls toward zero at both tails.
Worked Examples
At the current 0.03 coefficient:
The last three rows are the sub-cent rule: $3.7125 is charged as $3.7125, not rounded to $3.72, and a one-
qty fill owes $0.000075, charged as $0.00008 after the ledger’s 5-decimal quantization. A cent floor on that fill would be a ~125× overcharge, which is why there isn’t one.
Who Pays
There is no maker fee, and no opt-in or contract is required to collect Maker Credits. The Maker Credit is currently 50% of the taker fee actually collected on the trade, which works out to:
RFQ Trades
RFQ executions are priced on their own coefficient and their own form of the same quadratic.
A combination contract has no single contract price, so the taker fee is expressed in stake form. With
wager the taker’s stake and collateral the pricer’s, the implied probability is wager / (wager + collateral), and Coefficient × P × (1 − P) × Pot reduces to:
When Fees Apply
Because the charge follows the event’s status at the moment of the match, knowing whether an event is live is a fee question, not a cosmetic one. There are two ways to know, and they are covered in detail on the Market Lifecycle Channel page:WebSocket: the transitions
The
lifecycle channel publishes EVENT_GOLIVE when an event enters live play and EVENT_UNLIVE when it leaves. Fees begin on EVENT_GOLIVE and stop on EVENT_UNLIVE.REST: the snapshot
GET /nbx/v2/emm/events/{eventId} returns the event’s status. OPEN_INGAME is exactly the fee-charged condition. Use it to bootstrap on connect and after any reconnect.The live window can open more than once. A game that is delayed or suspended mid-play goes
OPEN_INGAME → DELAYED → OPEN_INGAME, so fees switch on, off, and on again. Each EVENT_GOLIVE also cancels every order resting across that event’s markets. Track the edges rather than assuming one live window per event — see the repeatability warning.Scope and Notes
- Two schedules. The formula at the top of this page prices straight contracts. Combination contracts (multi-leg or “parlay” contracts, including everything traded via RFQ) are priced by the RFQ schedule and are not eligible for Maker Credits.
- Trading fees only. “Fees” here means Novig’s trading fees. Clearing, banking, and payment processing fees are not included.
- The coefficient can change. The coefficient above is the current live trading fee schedule, posted pursuant to Rule 3.6 of the Ludlow Rulebook. Read it from this page rather than hardcoding a rate you can’t update.
- No cent floor. Charges carry to 5 decimal places ($0.00001), so sub-cent fees are charged as sub-cent amounts.