Tax Center
How to Track Your Prediction Market Trades for Taxes
By Owen Monagan ·
Keeping clean records of your prediction-market trades is mostly about capturing five things for every position: the date, the market, the price and size, the fees, and how it resolved. Do that across Kalshi and Polymarket all year, and tax season becomes a quick export instead of an April scramble. This is a record-keeping guide, not tax advice — how those numbers are ultimately taxed is a question for a professional.
This is the boring part that saves you the most money and the most stress. Below is what to track, how to pull it from each platform, and the mistakes that turn a 20-minute export into a lost weekend.
What records actually matter?
You need to be able to reconstruct every position from scratch — what you paid, what you got back, and when. For each trade, capture:
| Record | Why it matters |
|---|---|
| Trade date | Sets the tax year and the holding period for each position |
| Market / contract | Identifies what you traded (and lets you group by sport, event, or venue) |
| Buy or sell + size | Direction and number of contracts — the basis for your position math |
| Price | Your entry and exit prices, which set cost basis and proceeds |
| Fees | Trading and settlement fees reduce your gain (or add to your loss) |
| Resolution | Whether the position settled, was sold, or expired — and for how much |
| Deposits/withdrawals | Cash in and out, to reconcile your balances against your trade log |
If you have those, you (or your accountant) can compute cost basis, proceeds, and net gain or loss for any year — regardless of which tax treatment ends up applying. Skip the fees or the settlement detail, and the numbers won't tie out.
How do I pull my Kalshi trade history?
Kalshi gives you two ways to get your data, and it's worth grabbing both:
- Export from the web app. Look for a trade history, statements, or transactions export (commonly CSV) in your account. Pull a full export for each tax year — current year plus the prior years you care about — and make sure it includes settlements and fees, not just your open positions.
- The Kalshi API. For heavier traders, the Kalshi API exposes your fills, settlements, and positions programmatically, which is the cleanest way to capture every fee and resolution without hand-copying.
Whichever you use, the goal is the same: a complete, per-year record of fills, settlements, and fees that reconciles against your account balance.
How do I get my Polymarket history?
Polymarket US (api.polymarket.us, the CFTC-regulated US exchange) exposes your full history
through its API. You create a read-only API key in the Polymarket US developer settings — a
Key ID plus a secret — which can read your positions, resolutions, and fees but can never
place trades or move funds.
This is how a tool like Realize connects to Polymarket: you paste the read-only Key ID and secret, we store the secret encrypted, and we sync your full history for each tax year — the same five fields (date, market, size/price, fees, resolution) you track everywhere else.
Stop rebuilding your trade history by hand.
Join the waitlist and we'll be in touch when Realize opens.
Why track all year instead of scrambling in April?
Because the scramble is where money leaks. A few reasons year-round records beat a tax-season catch-up:
- Exports get harder over time. Platforms change, old statements get buried, and reconstructing a busy year from memory is painful and error-prone.
- Fees and settlements get missed. When you rush, it's easy to log the trade and forget the fee or the resolution — and those are exactly the numbers that change your gain or loss.
- You can see your position before December. Knowing where you stand during the year is what lets you make decisions while you still can, rather than discovering the number after it's locked.
- Multiple venues add up. If you trade on both Kalshi and Polymarket, reconciling two messy histories at once in April is far worse than keeping one running ledger.
The point isn't to do tax math every week. It's to never be more than one export away from a clean, reconciled record.
What are the most common record-keeping mistakes?
These are the ones that cost people time and accuracy:
- Only saving open positions. Your settled and expired contracts are most of your tax picture — export the full history, including resolutions.
- Ignoring fees. Fees aren't rounding error; they directly change your net gain or loss. Capture them per trade.
- Relying on a tax form to be complete. A platform may or may not send a form, and a form can be incomplete or use a characterization you may disagree with. Your own full export is the source of truth.
- Mixing years. Keep each tax year cleanly separated so dates and holding periods stay correct.
- One spreadsheet, edited by hand. Manual ledgers drift from reality fast. The fix is pulling directly from the platform, not retyping.
- Letting a read-only key lapse. If you delete or regenerate your Kalshi or Polymarket US API key, syncing stops until you reconnect with a new one. Your history is safe on the exchange, but keep the connection live so your ledger stays current.
Where does a tool like Realize fit?
This is all doable by hand — it's just tedious and easy to get wrong. Realize connects to your Kalshi and Polymarket US accounts with read-only API keys, pulls your full trade and settlement history, and organizes it into a clean, reconciled, year-by-year ledger with fees and resolutions already accounted for. It does the bookkeeping so your numbers are ready for your return or your CPA, instead of a spreadsheet you rebuild every spring. The tax characterization of those gains and losses is still a decision you make with a professional.
For the bigger picture, see the Prediction Market Tax Center, and if you're wondering how this income is treated, read our guide on whether Kalshi winnings are taxable.
The bottom line
Good prediction-market tax records come down to one habit: capture the date, market, price, size, fees, and resolution for every trade, across every venue, all year long. Pull a full export from Kalshi (web or API) and Polymarket US (via its read-only API key) for each tax year, keep the years separate, and don't skip the fees or settlements. Do that, and tax season is a download — then talk to a tax professional about how it all gets reported.