Documentation Index
Fetch the complete documentation index at: https://docs.kalshi.com/llms.txt
Use this file to discover all available pages before exploring further.
Overview
User balances have a target precision before and after every fill:- Direct member balances are rounded to the nearest
$0.0001(0.01c) - Non-direct member balances are rounded to the nearest
$0.01(1c)
| Component | Description |
|---|---|
| Trade fee | Fee from the fee model, rounded up to the nearest $0.0001 (centicent) |
| Rounding fee | Adjustment that restores the user’s target balance precision |
| Rebate | Refund from accumulated rounding overpayment (always a multiple of $0.01) |
Rounding Mechanics
Given a fill’srevenue (signed; negative for buyers) and trade_fee:
- Round trade fee up to the nearest $0.0001
- Compute
balance_change = revenue - trade_fee - Floor
balance_changetoward negative infinity to the user’s target balance precision rounding_fee = balance_change - floor(balance_change)
floor(balance_change), which is always aligned to the user’s target balance precision.
Fee Accumulator
The fee accumulator tracks cumulative rounding overpayment across all fills of an order. Once the accumulated rounding exceeds $0.01, a whole-cent rebate is issued and the accumulator is reduced by $0.01. This ensures the total fee across many small fills converges to what a single equivalent fill would cost.The fee accumulator is maintained per order across all fills regardless of whether the fills are taker or maker. If an order initially takes (matching resting orders) and then becomes a resting maker order, the accumulated rounding carries over to subsequent maker fills.
Worked Examples
The examples below assume a target balance precision of$0.01 (1c). For direct members of the exchange, apply the same mechanics with $0.0001 (0.01c) as the target precision.
Subpenny prices: buy 3 contracts at $0.055 (three 1-lot matches)
Subpenny prices: buy 3 contracts at $0.055 (three 1-lot matches)
Buy 3 contracts at $0.055, filled as three 1-lot matches. Contracts are whole; rounding arises from the sub-cent price.Fill 1 walkthrough:All fills:
On Fill 2, the accumulator reaches $0.0130 (> $0.01), triggering a $0.01 rebate. The net fee drops to $0.0050 for that fill.
| Fill | Trade Fee | Rounding | Accumulator | Rebate | Net Fee | Balance Change |
|---|---|---|---|---|---|---|
| 1 | $0.0085 | $0.0065 | $0.0065 | — | $0.0150 | -$0.07 |
| 2 | $0.0085 | $0.0065 | $0.0130 | $0.0100 | $0.0050 | -$0.07 |
| 3 | $0.0085 | $0.0065 | $0.0095 | — | $0.0150 | -$0.07 |
Fractional contracts: buy 0.90 contracts at $0.50 (three 0.30-lot matches)
Fractional contracts: buy 0.90 contracts at $0.50 (three 0.30-lot matches)
Buy 0.90 contracts at $0.50, filled as three 0.30-lot matches. The price is a whole cent; rounding arises from the fractional quantity.Fill 1 walkthrough:All fills:
On Fill 2, the accumulator reaches $0.0118 (> $0.01), triggering a $0.01 rebate. The entire fee is offset, resulting in a $0.00 net fee for that fill.
| Fill | Trade Fee | Rounding | Accumulator | Rebate | Net Fee | Balance Change |
|---|---|---|---|---|---|---|
| 1 | $0.0041 | $0.0059 | $0.0059 | — | $0.0100 | -$0.16 |
| 2 | $0.0041 | $0.0059 | $0.0118 | $0.0100 | $0.0000 | -$0.16 |
| 3 | $0.0041 | $0.0059 | $0.0077 | — | $0.0100 | -$0.16 |
Combined: fractional contracts + subpenny prices (three 0.03-lot matches)
Combined: fractional contracts + subpenny prices (three 0.03-lot matches)
Buy 0.09 contracts at $0.3301, filled as three 0.03-lot matches. Both features contribute sub-cent components, pushing intermediates to 6 decimal places.Fill 1 walkthrough:All fills:
The accumulator triggers a rebate on both Fill 2 and Fill 3, keeping the total net fee close to the single-fill equivalent.
| Fill | Trade Fee | Rounding | Accumulator | Rebate | Net Fee | Balance Change |
|---|---|---|---|---|---|---|
| 1 | $0.0005 | $0.009597 | $0.009597 | — | $0.010097 | -$0.02 |
| 2 | $0.0005 | $0.009597 | $0.019194 | $0.0100 | $0.000097 | -$0.02 |
| 3 | $0.0005 | $0.009597 | $0.018791 | $0.0100 | $0.000097 | -$0.02 |
Subpenny prices alone produce 4-decimal-place intermediates. Fractional contracts alone also produce 4-decimal-place intermediates. When combined, intermediates can reach 6 decimal places (e.g., $0.3301 x 0.03 = $0.009903). Final balances are rounded to the user’s target balance precision.