Tax basics · Kalshi

How to Track Prediction Market Trades for Taxes

Keeping clean Kalshi and Polymarket records for tax season: what to track, how to pull your trade history, and the record-keeping mistakes to avoid.

By Owen Monagan5 min read
Published Updated
On this page

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; how those numbers are taxed is covered in the guides linked at the end.

This is the boring part, and every way of filing depends on it. 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:

RecordWhy it matters
Trade dateSets the tax year and the holding period for each position
Market / contractIdentifies what you traded (and lets you group by sport, event, or venue)
Buy or sell + sizeDirection and number of contracts, the basis for your position math
PriceYour entry and exit prices, which set cost basis and proceeds
FeesTrading and settlement fees reduce your gain (or add to your loss)
ResolutionWhether the position settled, was sold, or expired (and for how much)
Deposits/withdrawalsCash 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.

This is not a Realize house style, it is what the IRS asks for. Its recordkeeping guidance says to keep the records that support the income and deductions on your return until the period of limitations for that return runs out, and Publication 551 sets out how cost basis is determined and adjusted, which is what the price and fee columns above exist to support.

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. What each Kalshi file and endpoint covers, and what it leaves out, is on Kalshi trade history.

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.

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. Realize does not choose the tax characterization of those gains and losses; it prepares the documentation for whichever one applies. Plans and prices are on the pricing page.

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 can be a download.

Questions people ask

What records do I need to keep for prediction market taxes?

For each trade, keep the date, market, whether you bought or sold, the number of contracts, the price, any fees, and how the position resolved (settled, sold, or expired). Together those let you reconstruct your cost basis and your gain or loss. Also keep your year-end balances, deposits, withdrawals, and any tax forms the platform issues.

How do I download my Kalshi trade history?

Kalshi lets you export your activity from your account: look for a trade history, statements, or transactions export (often CSV) in the web app, and you can also pull fills and settlements through the Kalshi API. Save a full export for each tax year, including settlements and fees, not just open positions.

How do I get my Polymarket transaction history?

Polymarket US (api.polymarket.us, the CFTC-regulated US exchange) exposes your trade and settlement history through its API. You create a read-only API key in the Polymarket US developer settings (a Key ID plus a secret) and a tool like Realize uses it to pull every position, resolution, and fee. It is read-only: it can read your history but never place trades or move funds.

Do I really need to track trades all year, or can I wait until tax season?

You can technically pull history at tax time, but waiting is where mistakes happen: exports get harder to reconcile, fees and settlements get missed, and a single messy year can take hours to untangle. Tracking as you go keeps your numbers reconciled and your cost basis clean, so tax season can be a download instead of a scramble.

Price your year three common ways.

Your estimate is free. Forms for tax year 2026 open for filing in 2027.

Get started