Skip to main content
Fees come from a config file. Never from the venue. A venue’s published schedule is its public retail tier, routinely an order of magnitude away from a negotiated rate — 40/60 bps advertised against 0/4 bps actually paid. Since routing picks venues on all-in price, published fees make it route wrong on every order.
fees.toml

Rules

Negative is first-class

A maker rebate is a negative fee. The arithmetic handles the sign with no special case.

Validated at startup

Every configured venue and symbol must have an entry.

Missing is fatal

A missing entry raises. It is never a silent zero.

How they apply

The consolidated book is taker-adjusted, because taker is what you pay to cross it. Maker rates are there for your own quote pricing. Worked against a raw price of 100:
A sign error on a rebate is a silent, permanent routing bug: nothing crashes, nothing looks wrong, and every decision is subtly backwards. There is a dedicated test pinning these exact numbers.