The tax rules behind prediction markets, worked out
Plain-English writeups of the rules that actually apply to Kalshi and Polymarket trading: the four federal treatments, the Section 1256 argument, the 2026 gambling-loss cap, and how state taxes stack on top. Every figure is checked against the same engine and citations the report uses.
June 15, 2026 · 9 min read
How Are Kalshi and Polymarket Trades Taxed? The 4 Methods Traders Actually Use
The IRS has never ruled on prediction-market contracts specifically. Here are the four tax treatments real filers use today, what each one costs, and how to tell them apart.
Read the postJune 22, 2026 · 8 min read
Does Section 1256 Apply to Kalshi and Polymarket? The 60/40 Rule Explained
Section 1256 can be the cheapest way to file event-contract trades, taxing every gain 60% long-term regardless of holding period. Whether it legally applies is genuinely contested, and here's the actual argument on both sides.
Read the postGambling & OBBBAJune 29, 2026 · 7 min read
The 2026 Gambling Loss Cap: How OBBBA Can Tax You on Money You Never Made
Starting in 2026, a new law caps deductible gambling losses at 90% of winnings. Win $100k and lose $100k in the same year and you can still owe tax on $10k that never existed. Here's the exact math.
Read the postState taxJuly 8, 2026 · 8 min read
State Taxes on Prediction Markets in 2026: Platform Levies and the Trap States
North Carolina, Kentucky, and Illinois all passed platform-level taxes on prediction markets in 2026, and the CFTC is suing over every one of them. Here's what actually reaches you as a trader, and which states tax gambling winnings with no loss deduction at all.
Read the postGambling & OBBBAJuly 9, 2026 · 8 min read
OBBBA's 90% Gambling-Loss Cap: The Statute, the Confirmed Formula, and the Repeal Risk
Public Law 119-21 §70114 caps deductible gambling losses at 90% starting tax year 2026. The IRS's own proposed regulations settle exactly how the math stacks, and Congress may repeal the whole provision before anyone files a return under it.
Read the post