If you searched for Kalshi profit and loss tracking because your account balance does not match what you think you have made, here is the direct answer: your balance is not your P&L. Trading fees are charged inside each fill rather than listed next to it on the trade card, deposits and withdrawals move the same balance number your trades do, and Kalshi's own profit and loss statements only refresh once a month. So the number you watch every day mixes three different stories, and none of them is "how much has my trading actually earned after fees." The fix is not an app. It is one published formula and a five-column spreadsheet, and by the end of this guide you will have both, including a copy-paste formula that computes your exact fee on every fill.
The Quick Answer
Kalshi computes your official P&L with FIFO accounting, includes fees and rebates in the figure, and updates it on the first of each month, which leaves you blind mid-month. To track your real, fees-included P&L yourself, log every fill with its price and contract count, compute the fee with Kalshi's published formula, fees = round up(0.07 x C x P x (1-P)), and reconcile against the statement when it lands. The exact fee math, the monthly-refresh gotcha, a worked month of trades, and the tracking template are below.
Why Your Kalshi Balance Is Not Your P&L
Start with the frustration that sent you here, because it is common and it is structural, not a mistake you made. In an August 2026 scan of prediction-market community complaints, one Kalshi trader put it in exactly the words you would expect: "I was struggling to see my true profit and loss... wondering how much fees were actually costing me."
Three mechanics create that fog. First, the trading fee is baked into your cash flow at the moment a taker order fills, so a win that looks like 15¢ of profit per contract on the price ladder is smaller in your account than in your head. Second, your balance is a bank statement, not a scorecard: a $200 deposit and a $200 winning week move it identically. Third, the official scorecard Kalshi does provide lives in a different part of the site than the trade screen, and it runs on a monthly clock. None of this is hidden, but all of it is scattered, and scattered is what "I can't see my true P&L" actually means. So the first job is to un-scatter it, starting with the piece that costs you real money: the fee.
The Fee Math, Straight From Kalshi's Schedule
Kalshi's help center describes its pricing plainly: "Kalshi makes money by charging a transaction fee on the expected earnings on the contract." The general formula appears in the fee schedule Kalshi filed publicly with the CFTC in its September 2022 iteration, and it reads, verbatim: "fees = round up(0.07 x C x P x (1-P))," where "P = the price of a contract in dollars (50 cents is 0.5)," "C = the number of contracts being traded," and "round up = rounds to the next cent" (schedule text fetched August 12, 2026). The same document is equally blunt about what is not charged: "There is no settlement fee."
Because the formula multiplies P by (1-P), the fee is not a flat percentage of your stake. It peaks where the market is a coin flip and shrinks toward the extremes. Here is the filed general-rate table for 100 contracts at five prices:
| Contract Price | Fee on 100 contracts |
|---|---|
| 10¢ | $0.63 |
| 25¢ | $1.32 |
| 50¢ | $1.75 |
| 75¢ | $1.32 |
| 90¢ | $0.63 |
The row that matters is the middle one. At 50¢, a 50% implied probability, 100 contracts cost you $1.75 in fees, the highest point on the curve, while the same 100 contracts at 90¢, a 90% probability, cost $0.63, and a 10% longshot at 10¢ costs the identical $0.63 from the other side. Traders who live in competitive sports markets, where prices cluster between 40% and 60%, pay the top of the curve almost every time they cross the spread. That is why two traders with identical win rates can have very different real returns, and why our full breakdown of Kalshi's fee structure treats the 50¢ zone as the expensive neighborhood.
Two caveats before you wire this into a spreadsheet. The 0.07 coefficient is the general rate, a 7% charge on the expected earnings the formula computes; the filed schedule sets a lower 0.035 rate, or 3.5%, for its S&P 500 and Nasdaq-100 index markets, and the help center notes that "some markets have fees that are different from those of other markets," often around special events. And some markets also carry maker fees on resting orders, which the help center says "are charged for orders placed that are not immediately matched and are instead left as resting orders on the orderbook," only when the trade ultimately executes. The current schedule always lives in Kalshi's fee schedule PDF, linked at the bottom of its site; when a specific market matters to you, check its rate there rather than assuming 0.07.
Where Kalshi Already Tracks This For You
Kalshi does publish an official answer, and knowing where it lives saves you from rebuilding everything. The Trading History page of the help center says that "traders can access a summary of their total profits and losses by navigating to the documents tab," noting that "PnL statements will be shown here once trades are made." The deeper detail sits in the tax documentation article, and two sentences there are the ones your spreadsheet has to agree with. On method: "We use the First-In-First-Out (FIFO) accounting method to compute profits and losses." On scope: "The Profit and Loss (PnL) figure includes fees and any rebates."
The same Documents area is where the raw material for your own tracker lives. Alongside the statements, Kalshi accounts on the web offer transaction history downloads, organized per calendar year, and third-party tax guides such as ContractTax's export walkthrough document the CSV flow step by step: log in on the web rather than the app, open the account menu, go to Documents, and download the year's file. Two things to know about what comes out. Prices are recorded in cents, so a fill at 63¢ appears as 63, not 0.63. And it is a raw ledger of individual fills, not a scorecard: nothing in it pairs your buys against your sells, so the FIFO matching below is still your job.
FIFO matters the moment you buy the same market twice. Say you bought 100 YES at 45¢, a 45% implied probability, on Monday and 50 more at 52¢, a 52% price, on Wednesday, then sell 120 on Friday, Kalshi's accounting sells your Monday contracts first, then 20 of Wednesday's. Your own tracker has to match lots the same way or your realized P&L will drift from the official statement and you will waste an evening hunting a discrepancy that is purely methodological. The payout side is simpler: a market that settles pays $1.00 or nothing per contract with no settlement fee, and the mechanics of that final step are covered in how Kalshi settlement works.
The Monthly-Refresh Gotcha
Here is the catch that makes a personal tracker worth the effort even though Kalshi computes all of this for you. The same tax documentation article states it twice, in two forms: "Your trading activity information, segmented by year, is updated monthly," and, more precisely, "Profit and Loss (PnL) data is updated on the first of each month." The page itself sits where the article says it does: "You can find this tax documentation in the Account tab under the Tax Info page."
Read that on a calendar. If today is the 12th, the official fees-included number ignores everything you have done since the 1st. A trader having a rough two weeks sees a P&L page from a better era; a trader on a heater sees stale pessimism. Every mid-month decision about sizing up, sizing down, or stopping entirely is being made against data that can be four weeks old. That lag, not any missing feature, is the real gap in Kalshi profit and loss tracking, and it is exactly the gap your own log closes. Which brings us to the promised spreadsheet.
A Worked Example: One Month, Tracked To The Cent
Take the FIFO trader from above and run their whole month in an NFL game market, fees included, at the filed general rate.
| Day | Action | Contracts | Price | Cash flow | Fee |
|---|---|---|---|---|---|
| Mon | Buy YES | 100 | 45¢ | -$45.00 | $1.74 |
| Wed | Buy YES | 50 | 52¢ | -$26.00 | $0.88 |
| Fri | Sell YES | 120 | 60¢ | +$72.00 | $2.02 |
| Settle | 30 held settle YES | 30 | $1.00 | +$30.00 | $0.00 |
Each fee row is the formula doing its work: round up(0.07 x 100 x 0.45 x 0.55) is $1.74, round up(0.07 x 50 x 0.52 x 0.48) is $0.88, round up(0.07 x 120 x 0.60 x 0.40) is $2.02, and settlement is free, per the schedule's "There is no settlement fee."
Now the ledger. Gross trading profit is $31.00: the Friday sale realizes $15.00 on the Monday lot (100 contracts, 45¢ to 60¢) and $1.60 on 20 Wednesday contracts (52¢ to 60¢), and the 30 contracts held to a YES settlement add $14.40 (52¢ to $1.00). Total fees are $4.64. Real, fees-included P&L: $26.36. The number worth staring at is the ratio: fees consumed 15% of this trader's gross profit in a winning month, on prices near the top of the fee curve you saw two sections ago. A month of coin-flip prices at 50¢ and thinner edges pushes that ratio higher still. Track only entries and exits and you would credit yourself $31.00 and never see the $4.64 leak.
The Fees-Included Tracking Template
Everything above compresses into five columns plus two formulas. In any spreadsheet, log one row per fill:
| Column | What goes in it |
|---|---|
| Market | The ticker, so FIFO lots group correctly |
| Side And Action | Buy YES, Sell NO, settle, and so on |
| Contracts | The fill count, from your confirmation |
| Price | The fill price in cents |
| Fee | The formula below, or the actual fee shown in the trade ticket |
With contracts in column C and price-in-cents in column D, the general-rate fee formula is:
=ROUNDUP(0.07 * C2 * (D2/100) * (1 - D2/100), 2)
That is Kalshi's published formula translated into spreadsheet syntax, rounding up to the next cent exactly as the schedule specifies. Net P&L per market is then sells plus settlements, minus buys, minus the fee column, matched FIFO when you have multiple lots. Before you enter a trade, Kalshi also shows the precise fee in the trade ticket via the information icon next to "You're buying," per the help center, so you can log the exact figure instead of computing it for markets that carry a non-general rate. On the first of each month, reconcile your total against the official Tax Info figure. If they disagree by more than rounding, check your lot matching first, then your rate assumptions, and if a settlement itself looks wrong, that is a different problem with its own process, covered in how Kalshi settlement disputes work.
Cutting The Fee Drag Without Changing Your Picks
Once the leak is visible, you can shrink it, and the lever is in the filed schedule's own language: "Trading fees are only charged for orders that are immediately matched with orders sitting on the orderbook. Trading fees are not charged for orders placed that are not immediately matched and are instead left as resting orders on the orderbook." In plain terms, crossing the spread costs the formula; resting a limit order and letting the market come to you can cost nothing at the general rate, though on the specific markets that carry maker fees, a resting fill pays that market's maker rate instead. Run that against the worked month above. The Friday exit lifted the 60¢ offer and paid $2.02; a sell order rested at 60¢ that got filled would have booked the same $72.00 with a $0.00 fee at the general rate, turning $26.36 of net P&L into $28.38 on identical contracts. The fee curve makes the habit worth the most in exactly the markets where sports traders spend their time: the closer a market sits to 50%, the more each taker fill costs, so the coin-flip zone is where resting orders pay their biggest rebate in patience. That difference between paying the spread and setting a price is one of the core reasons an exchange is not a sportsbook, and it shows up in your fee column within a week of switching habits. And for more structured selection to go with the cleaner execution, the free expert picks hub is where our analysts publish theirs each day.
FAQ: Kalshi Profit And Loss Tracking
Does Kalshi show your profit and loss? Yes. The documents tab holds your PnL statements, and the Account tab's Tax Info page holds your yearly trading activity, computed FIFO with fees and rebates included. The catch is timing: that data is updated on the first of each month, so it always trails your recent trades.
Are fees included in Kalshi's official P&L number? Yes. Kalshi's tax documentation article states, verbatim, "The Profit and Loss (PnL) figure includes fees and any rebates." If your own log excludes fees, it will read higher than the official figure every month.
How much are Kalshi trading fees? At the general rate, round up(0.07 x C x P x (1-P)) per fill, which peaks at coin-flip prices and shrinks toward 1¢ and 99¢. Our Kalshi fees guide walks the full schedule, including the markets priced off the general rate.
Do fees matter more if you trade short-term markets? Considerably. Every round trip pays the formula twice at taker rates, so high-frequency styles, like the ones built around Kalshi's 15-minute markets, compound fee drag far faster than buy-and-hold positions that settle for free.
In Summary
Kalshi publishes its fee formula, states that its P&L figure "includes fees and any rebates," names its accounting method, and posts a statement every month. What it does not do is put those four facts on one screen on the day you need them: the fee hides inside the fill, the method hides in a tax help article, and the official number hides behind a first-of-the-month refresh. So put them on one screen yourself. Open a spreadsheet, add the five columns, paste in the ROUNDUP formula, log every fill the day it happens, and reconcile against the Tax Info figure on the 1st. That is the entire system, it costs ten minutes a week, and it turns the question that sent you here, what fees are actually costing me, into a column you can sort. The fact that you can audit the exchange's math from a spreadsheet at all is, as we argue in our look at whether Kalshi is legit, one of the stronger points in its favor.


