How to Calculate Expectancy
How to calculate expectancy in trading, step by step: a 20-trade example worked by hand, the spreadsheet formulas, and how far to trust the number.

Learning how to calculate expectancy in trading takes about ten minutes and one list of trades. This guide works a real-looking 20-trade list by hand, then shows the exact spreadsheet formulas, so you can run the same numbers on your own history. If you want the concept first (what expectancy is and why it matters more than win rate), the glossary entry covers it. Here we only do the arithmetic, and then ask the question most guides skip: how much should you trust the answer?
Step 1: Pull a clean list of closed trades
Expectancy is only as honest as the list you feed it. Before you calculate anything, filter your journal down to:
- One setup. A blended number across different strategies hides which one is paying and which one is bleeding. Calculate each setup on its own.
- Closed trades only. Open positions have no result yet.
- Net P&L, after commissions and fees. An edge that only exists before costs is not an edge.
- Every trade. The scratches, the rule breaks and the ones you would rather forget all stay in. Dropping trades you don't like is the fastest way to invent an edge.
If your journal doesn't capture net P&L and the dollar amount you risked on each trade, fix that first. Our list of what to track in a trading journal covers both fields.
Here is the list we will work through. It is one setup, every result is net of fees, and the trader risked $100 per trade, so 1R is $100.
| Trade | Net P&L | R-multiple | Trade | Net P&L | R-multiple |
|---|---|---|---|---|---|
| 1 | +$210 | +2.10R | 11 | −$120 | −1.20R |
| 2 | −$100 | −1.00R | 12 | +$150 | +1.50R |
| 3 | −$100 | −1.00R | 13 | −$100 | −1.00R |
| 4 | +$180 | +1.80R | 14 | +$60 | +0.60R |
| 5 | −$85 | −0.85R | 15 | −$60 | −0.60R |
| 6 | −$100 | −1.00R | 16 | +$240 | +2.40R |
| 7 | +$95 | +0.95R | 17 | −$100 | −1.00R |
| 8 | −$40 | −0.40R | 18 | +$130 | +1.30R |
| 9 | +$320 | +3.20R | 19 | −$85 | −0.85R |
| 10 | −$100 | −1.00R | 20 | +$235 | +2.35R |
Trade 11 lost $120, more than the planned $100. That is what slippage through a stop looks like in real data, and it belongs in the list.
Step 2: Sort the trades into wins and losses
Count every trade with a net P&L above zero as a win and every trade below zero as a loss. The list above has 9 wins and 11 losses.
Decide up front what to do with a trade that closes at exactly $0. The cleanest rule is to count it in the total but as neither a win nor a loss. Whatever rule you pick, write it down and apply it the same way every time, or your numbers will drift between reviews.
Step 3: Calculate your win rate and loss rate
Win rate is wins divided by total trades. Loss rate is losses divided by total trades.
- Win rate = 9 ÷ 20 = 45%
- Loss rate = 11 ÷ 20 = 55%
With no breakeven trades, the two add up to 100%. A 45% win rate would put a lot of traders off, which is exactly why you don't stop here.
Step 4: Calculate your average win and average loss
Add up the winners and divide by the number of wins. Do the same for the losers, and keep the average loss as a positive number so the formula reads cleanly.
- Total of the 9 wins = $1,620, so the average win = $1,620 ÷ 9 = $180
- Total of the 11 losses = $990, so the average loss = $990 ÷ 11 = $90
Step 5: Plug the numbers into the expectancy formula
The expectancy formula weights each side by how often it happens:
Expectancy = (Win rate × Average win) − (Loss rate × Average loss)
For our list:
- (0.45 × $180) − (0.55 × $90)
- = $81.00 − $49.50
- = +$31.50 per trade
Now check it the short way. Total net P&L is $1,620 − $990 = $630, and $630 ÷ 20 trades = $31.50. The two methods always agree, because expectancy is the average result per trade. If your two answers don't match, you have a counting error (usually a breakeven trade that was dropped from the total, or a loss entered as a positive number).
The long form is still worth doing. It shows why the number is positive: this setup loses more often than it wins, and it still comes out ahead because the average winner is twice the average loser.
Step 6: Convert expectancy to R
Dollar expectancy changes every time you change size. To compare setups, or this setup now versus last year, express each result as an R-multiple: net P&L divided by the amount risked on that trade.
With $100 risked on every trade, the conversion is straightforward. The average win is +1.8R, the average loss is −0.9R, and:
- (0.45 × 1.8R) − (0.55 × 0.9R) = 0.81R − 0.495R = +0.315R per trade
If your risk per trade varies, convert each trade to R first and then average the R column. Don't divide the dollar expectancy by an "average risk", because big-size trades will dominate the result.
Step 7: Set it up in a spreadsheet
Doing it by hand once is how you learn it. After that, let a spreadsheet do it. Put net P&L in column B (rows 2 to 21) and dollars risked in column C. These formulas work in both Excel and Google Sheets:
| Cell | Formula | Result |
|---|---|---|
| R-multiple (column D) | =B2/C2, filled down | +2.10R … +2.35R |
| Win rate | =COUNTIF(B2:B21,">0")/COUNT(B2:B21) | 45% |
| Loss rate | =COUNTIF(B2:B21,"<0")/COUNT(B2:B21) | 55% |
| Average win | =AVERAGEIF(B2:B21,">0") | $180.00 |
| Average loss | =-AVERAGEIF(B2:B21,"<0") | $90.00 |
| Expectancy ($) | win rate × average win − loss rate × average loss | $31.50 |
| Check ($) | =AVERAGE(B2:B21) | $31.50 |
| Expectancy (R) | =AVERAGE(D2:D21) | +0.315R |
Microsoft documents COUNTIF and AVERAGEIF if you want the full syntax. Because the loss rate counts only trades below zero, a breakeven trade lands in the total but on neither side, which is exactly the rule from Step 2. The check row is your safety net: if it doesn't match the expectancy row, something in the sheet is off.
Step 8: Judge how much to trust the number
This is the step that turns a calculation into a decision. +$31.50 a trade looks like an edge. Over 20 trades, it isn't proof of one.
The chart below recalculates expectancy after every trade. Early on it swings wildly: +2.1R after the first trade, close to zero after the third. It settles as trades accumulate, but the shaded band (one standard error either side) still touches zero after trade 20.
You can put a number on this with two more spreadsheet cells:
- Standard deviation of the results:
=STDEV.S(B2:B21), which is about $148 for our list. - Standard error of the expectancy: the standard deviation divided by the square root of the trade count. Here that is $148 ÷ √20 ≈ $33.
An expectancy of $31.50 with a standard error of $33 is less than one standard error above zero. Put plainly, a setup with no edge at all could have produced this list. A rough rule for how many trades you need before the result stands about two standard errors clear of zero is (2 × standard deviation ÷ expectancy)². For this setup that is (2 × 148 ÷ 31.5)², or about 90 trades.
Two more checks before you rely on the number. Read it next to maximum drawdown, because a positive expectancy you can't sit through in practice does you no good. And recompute it as new trades come in, ideally as part of your weekly trade review, so you notice when an edge starts to fade.
Putting it together
Calculating expectancy comes down to a clean list, four numbers and one formula, with a check that the formula matches your average trade. The worked example shows the part that matters most: a setup that loses 55% of the time can carry a positive expectancy, the same reason a 70% win rate can still lose money, and 20 trades are not enough to know which kind of setup you have. Calculate it in R, calculate it per setup, and give it enough trades to mean something.
Get expectancy per setup without the spreadsheet
JournalX calculates expectancy in dollars and R from your synced trades and breaks it down by setup, symbol and session, so you can see where the numbers hold up and where the sample is still too thin.
Frequently asked questions
What is the formula for expectancy in trading?
Expectancy equals win rate times average win, minus loss rate times average loss. With a 45 percent win rate, a 180 dollar average win and a 90 dollar average loss, that is 0.45 times 180 minus 0.55 times 90, or 31.50 dollars per trade. The same number comes out of total net P&L divided by the number of trades.
How do I calculate expectancy in Excel or Google Sheets?
Put each trade's net P&L in one column. Win rate is COUNTIF of the range greater than zero divided by COUNT. Average win is AVERAGEIF greater than zero, and average loss is minus AVERAGEIF less than zero. Expectancy is win rate times average win minus loss rate times average loss, and AVERAGE of the whole column is a quick check that should match.
Should I calculate expectancy in dollars or in R?
Calculate both, but compare strategies in R. Dollar expectancy tells you what a trade is worth at your current size. Expectancy in R, where each result is divided by the amount risked, stays comparable when your position size, account size or market changes.
How many trades do I need to calculate expectancy?
You can calculate it from any number of trades, but a small sample cannot tell you much. A rough guide is to divide twice the standard deviation of your trade results by your expectancy and square the answer. For the example in this guide that comes to about 90 trades before a positive result stands apart from zero.
Do breakeven trades count when calculating expectancy?
Yes. Count a breakeven trade in the total number of trades but as neither a win nor a loss. That keeps win rate and loss rate honest, and the formula still matches total net P&L divided by the number of trades.