How to calculate your Kalshi cost basis
Cost basis is what you paid to get into a position, the number you subtract from your proceeds to find your taxable gain. Because Kalshi does not issue a broker-style 1099-B with basis filled in, reconstructing it from your trade history is on you.
This guide explains how to compute Kalshi cost basis using FIFO, the standard matching method, and how to handle the two things that complicate it: partial fills and fees. It is educational, not tax advice.
- For a Kalshi contract, your basis is the price you paid per contract times the number of contracts, plus the fees to acquire them.
- When you buy contracts at different prices and then sell some, you have to decide which lots you sold.
- A single order often fills in several pieces at slightly different prices, each a separate row in your export.
- Fees are part of the economics, so fold them in: add acquisition fees to your basis and subtract exit fees from your proceeds.
- ContractTax does the FIFO matching for you across every fill, converts cents to dollars, folds in fees, and produces a per-trade gain and an annual net you can hand to a preparer.
What cost basis means for a contract
For a Kalshi contract, your basis is the price you paid per contract times the number of contracts, plus the fees to acquire them. When you close, your proceeds are the price received times quantity, minus exit fees. Gain is proceeds minus basis.
The arithmetic is easy on a single clean round trip. It gets fiddly when you build a position in pieces or trade the same market repeatedly, which is where a matching rule becomes necessary.
Why you need FIFO
When you buy contracts at different prices and then sell some, you have to decide which lots you sold. FIFO, first in first out, says the earliest contracts you bought are the first ones you sold. It is the common default and keeps your matching consistent and defensible.
Without a consistent rule, the same set of trades can produce different gains depending on which buys you pair with which sells. FIFO removes that ambiguity by always matching the oldest open lot first.
Handling partial fills
A single order often fills in several pieces at slightly different prices, each a separate row in your export. To get basis right, treat each fill as its own lot at its own price, then apply FIFO across all of them when you close.
Remember the cents convention here too. Each fill price is in cents, so convert before multiplying by quantity, or your basis will be one hundred times too high.
Including fees
Fees are part of the economics, so fold them in: add acquisition fees to your basis and subtract exit fees from your proceeds. Leaving fees out overstates your gain and your tax. Like everything else in the export, fees are in cents.
Across hundreds of small flips, fees add up, and accounting for them correctly can meaningfully lower your reported net.
Where ContractTax fits
ContractTax does the FIFO matching for you across every fill, converts cents to dollars, folds in fees, and produces a per-trade gain and an annual net you can hand to a preparer. It is the tedious part of a Kalshi return, automated.
It is educational software, not tax advice, but it replaces the error-prone spreadsheet most traders dread building by hand.