====== Kalshi Account Mode ====== Kalshi Account Mode (''AccountMode = Kalshi'') is a **fully collateralized event-contract risk mode** for trading Kalshi prediction markets through T4. Event contracts are binary: each contract settles at the **Resolved Value** (normally $1.00) or at $0. Instead of margining positions, the account reserves the worst-case settlement cost in cash at order time — cash is the only quantitative risk limit in this mode. Key differences from the futures risk modes: * **No margin, ever.** Margin, Day Margin, Full Margin and Margin Power are always 0 for Kalshi accounts. * **No Max Position and no Max Clip Size checks.** * **Premium reserves capital for both buys and sells** — a sell (short/NO) is collateralized at the settlement value minus the price. * **Working orders reserve immediately.** Cash is consumed as soon as an exposure-increasing order starts working, not at fill time — including estimated fees. * Trading is restricted to the Kalshi prediction-market exchanges (''KLSH_POp''; ''DVKLSH_POp'' for the demo listing). Orders for any other market are rejected pre-trade. ===== How capital is reserved ===== Order cost is computed from the contract's Resolved Value and the order price: ^ Order ^ Cash reserved per contract ^ | Buy (YES) at limit price P | P | | Sell (NO) at limit price P | Resolved Value − P | | Market order (either side) | Resolved Value (conservative) | * **Resolved Value** is read from the **parent firm contract's margin value** for the contract, and defaults to **1.00** (the standard binary payout) when nothing is configured. Normally it is left unset. * **Reducing orders reserve nothing.** A new order first offsets existing opposite exposure (net position not already consumed by other working orders); only the portion that increases exposure reserves premium. A position flip reserves only the increasing portion. * **Estimated fees and commissions are reserved alongside premium** for new fill volume, so available cash reflects the full expected cash impact of the order up front. Accounts with Fees set to //None// reserve no fees. * **Commission rates are per T4 lot, and Kalshi volume is fractional.** One full Kalshi contract is **100 T4 lots** (the market's volume scale), and the premium formulas above are stated per full Kalshi contract. Commission rates, however, are configured per T4 lot — so a fee of 2¢ per full Kalshi contract must be entered as ''0.0002'' (100 lots × 0.0002 = $0.02). Entering ''0.02'' would charge 100× the intended fee. * **Order revisions are re-gated.** A revision recomputes the reservation from the proposed price/volume and charges the difference — a price-only revise that increases the reservation consumes cash and can be rejected, while a volume decrease releases its reservation (reserved fees are not refunded). * **Fills re-price the reservation.** Once an order fills, the position's premium is recomputed from the actual average open price — a market order's conservative pre-fill reservation is replaced by the real cost of the fill. A **closing fill releases the position's premium entirely** and books realized P&L into available cash; fees on the closing volume are charged at fill time (reducing orders never reserve them up front). ===== Pre-trade risk gates ===== Evaluated in order; the first failure rejects the order. Orders that reduce or flatten exposure pass the blocked-state and active-time gates. - **Market gate** — the market must belong to a Kalshi prediction-market exchange; anything else is rejected with //"Market not supported in Kalshi risk mode"//. - **Blocked states** — an exposure-increasing order is rejected when the account status is Blocked or Loss Limit Exceeded (with pre-trade risk enabled), or when the firm or the parent account is blocked. - **Active time** — outside the account's active-time window, exposure-increasing orders are rejected. - **Cash gate (the sole quantitative limit)** — the order is accepted only when ''AvailableCash + NewOrderCost >= 0'', where NewOrderCost is the incremental premium plus estimated fees (both negative cash). The rejection message shows the values: //"Insufficient cash for Kalshi order cost. AvailableCash:[...] NewOrderCost:[...] = Premium:[...] + Fees:[...]"//. - **Firm and parent-account cash pools (where applicable)** — the same order cost must also be covered by the firm's available cash when **firm-level pre-trade risk is enabled**, and by the parent account's pool when the account belongs to a [[administration:administration_related_account_setup|Related Accounts]] group. Firms with pre-trade risk disabled and accounts without a parent group skip the respective check. Not applied in this mode: Max Position, Max Clip Size, and all margin checks. ===== Worked example ===== Account with a $500.00 balance, no positions, contracts settling at $1.00, and a fee of **2¢ per full Kalshi contract** (configured as ''0.0002'' per T4 lot; reserved on increasing volume only). Volumes below are full Kalshi contracts: ^ # ^ Action ^ Premium ^ Fees ^ Total reserved ^ Available cash after ^ | 1 | Buy 300 YES @ 40¢ (limit, **working**) | 0.40 × 300 = $120.00 | 300 × 0.02 = $6.00 | $126.00 | $374.00 | | 2 | Sell 200 NO @ 65¢ (limit, working, different market) | (1.00 − 0.65) × 200 = $70.00 | 200 × 0.02 = $4.00 | $74.00 | $300.00 | | 3 | Market buy 100 (third market) | 1.00 × 100 = $100.00 (conservative, pre-fill) | 100 × 0.02 = $2.00 | $102.00 | $198.00 | | 4 | Order #3 **fills** at an average price of 55¢ | recomputed from the fill: 0.55 × 100 = $55.00, replacing the $100.00 conservative reservation | $2.00 (as reserved) | $57.00 — releases $45.00 | $243.00 | | 5 | Buy 600 YES @ 40¢ (limit) | 0.40 × 600 = $240.00 | 600 × 0.02 = $12.00 | $252.00 > $243.00 | **rejected** — insufficient cash | | 6 | Order #1 **fills** at its 40¢ limit | recomputed from the fill: 0.40 × 300 = $120.00 — same as reserved | $6.00 (as reserved) | $126.00 — no change | $243.00 (unchanged) | | 7 | **Working** sell 300 @ 55¢ against the filled #1 position | pure reducing order: $0.00 | $0.00 (not reserved for reducing volume) | $0.00 | $243.00 (unchanged) | | 8 | Revise the working sell down to 53¢ | still a pure reducing order: $0.00 | $0.00 | $0.00 | $243.00 (unchanged) | | 9 | The sell **fills** at 53¢ — position #1 closes | filled premium released: **+$120.00**; realized P&L booked: (0.53 − 0.40) × 300 = **+$39.00** | closing fees charged at fill: 300 × 0.02 = **−$6.00** | net **+$153.00** released | **$396.00** | Two fills, two different outcomes: a market order's conservative reservation is re-priced down on fill (step 4 releases $45.00), while a limit order filling at its own limit price converts the reservation to actual cost with no cash change (step 6, estimate = actual). Step 9 is the working-vs-filled distinction in one row: while the reducing sell was merely //working// (steps 7–8) it cost nothing and released nothing; only the //fill// releases the closed position's premium, books the realized P&L into available cash, and charges the closing fees. If the position from order #3 (long 100 at an average of 55¢) is held to settlement and the market settles at $0, the realized loss on it is the $55.00 premium already paid plus its $2.00 fee — exactly the cash reserved after the fill. That is the fully collateralized design. ===== Cash and equity formulas ===== ^ Value ^ Formula ^ Notes ^ | Available Cash | ''Balance + RPL + Premium − FeesAndCommissions'' | Realized P&L always counts, unrealized P&L never does. Premium is the (negative) reservation aggregate. The margin term is always 0. | | Net Equity | ''Balance + RPL + UPL − FeesAndCommissions'' | Unrealized P&L counts (mark-to-market wealth); premium is a cash reservation, not an equity reduction. | Unlike the futures option modes, Kalshi mode does **not** clamp unrealized P&L by premium — binary contracts carry real economic value on both sides until settlement, so UPL flows through unclamped in both directions. ===== Setup checklist ===== ^ Item ^ Detail ^ | Account Mode | Set to **Kalshi** (Admin Portal or Admin API). | | Funding | The cash balance is the account's entire risk budget — fund it accordingly. | | Fees | Configure account fees as usual; estimates are reserved on working orders. **Commission rates are per T4 lot and one full Kalshi contract is 100 T4 lots** — a 2¢-per-contract fee is entered as ''0.0002''. With Fees = //None// nothing is reserved and imported fees still reduce cash. | | Markets | Only Kalshi prediction markets are tradeable in this mode; no per-market enablement is needed beyond the exchange being available to the firm. | | Resolved Value override | Optional: set the **parent firm contract** margin value for a contract to override the default $1.00 payout. Leave unset for standard binary contracts. | | Server | The account must be hosted on an Account Handler with access to the Kalshi exchange feed (arranged by CTS). | | Desktop client version | The T4 desktop client displays Kalshi available cash and equity with this mode's formulas from version **8.0.1.88** onward. Older desktop builds show futures-style values for Kalshi accounts — if a client-side balance looks wrong, check the frontend version first. | | Active time / blocked flags | Honored as in other modes: they block exposure increases while allowing reducing and flattening orders. |