Minimum Edge After Trading Costs: How Much Margin You Actually Have
Calculate the observed gross-expectancy breakeven threshold a sample needs to clear its measured execution costs, using a paired trade-level formula, a cost-adjusted breakeven win rate, and a worked example.
The observed gross-expectancy breakeven threshold for a measured sample equals its average round-trip execution cost per completed trade. The relevant breakeven hurdle is that measured round-trip cost figure, not zero: observed gross expectancy must exceed it for observed net expectancy to be positive. Equality is breakeven, not profit. The gap between the two is the observed margin, and it can be a small, fragile number even when the gross figure looks comfortably positive.
observed_gross_expectancy_per_trade > average_round_trip_execution_cost_per_trade → positive observed net expectancy
observed_gross_expectancy_per_trade = average_round_trip_execution_cost_per_trade → breakeven
observed_gross_expectancy_per_trade < average_round_trip_execution_cost_per_trade → negative observed net expectancy
A historical average round-trip execution cost describes what this sample’s completed-trade execution friction actually was. It is an estimate of what future execution friction may look like under comparable conditions, not a guaranteed forward threshold.
This is a different question from either of the two frameworks it draws on. Measuring trading slippage and execution costs converts fills into an all_in_execution_cost figure but stops at “what did execution cost,” not “is the observed margin big enough to absorb it.” Trading data and statistical reliability owns whether an observed pattern is trustworthy at all. This article owns the narrower question in between: given an observed gross-expectancy estimate and a measured execution-cost figure on a comparable trade sample, how much observed margin remains after that measured execution friction.
The paired trade-level identity
This article works at the completed-trade expectancy denominator, not the per-execution denominator the linked slippage article uses for its own metrics. Measuring trading slippage and execution costs defines all_in_execution_cost at the execution level — an entry fill and its closing fill are separate executed units — and builds a round-trip figure only from paired entry/exit records, not by relabeling that per-execution denominator. Carrying that convention over here, each completed trade’s round-trip cost is an explicit aggregation:
round_trip_execution_cost_i
= Σ all_in_execution_cost for all executions assigned to completed trade i
where the sum includes every execution-shortfall and explicit-fee component belonging to that completed trade under the linked article’s accounting convention. If one derived completed trade contains several fills or scale-in/scale-out executions, aggregate all of its assigned execution costs into round_trip_execution_cost_i using the same trade-grouping rule used to construct that trade’s benchmark-basis P&L.
The safest way to state this comparison is trade by trade, over the same eligible sample, then averaged:
observed_gross_expectancy_per_trade = Σ benchmark_basis_pnl_i / N
average_round_trip_execution_cost_per_trade = Σ round_trip_execution_cost_i / N
observed_net_expectancy_per_trade = Σ (benchmark_basis_pnl_i − round_trip_execution_cost_i) / N
therefore:
observed_net_expectancy_per_trade = observed_gross_expectancy_per_trade − average_round_trip_execution_cost_per_trade
N must be the same set of eligible completed trades in all three quantities — not merely approximately the same date range or instrument mix. If execution-cost data are missing for some trades, do not silently compare different denominators: either restrict both calculations to the trades that have both a benchmark-basis P&L figure and a round-trip execution-cost figure, or disclose the mismatch when reporting the result. Restricting to complete cases makes the arithmetic denominator consistent but does not guarantee an unbiased estimate if missing execution-cost observations are systematically different from observed ones.
This paired-mean formulation is the article’s primary method because it stays valid when execution cost varies trade by trade, and it does not require cost to be independent of outcome.
The same sample mean can also be decomposed into win and loss components:
observed_gross_expectancy = (P(win) × avg_gross_win) − (P(loss) × avg_gross_loss)
This is still an exact decomposition of the sample mean, not an approximation: if every trade is classified as a win, a loss, or a zero-P&L breakeven, breakeven trades contribute zero to the sum, and P(win) + P(loss) need not equal 1 once a breakeven bucket exists. Even so, the direct trade-level sample mean above is operationally safer — it avoids re-deriving denominators from win/loss counts and sidesteps additional outcome bookkeeping — so treat it as the primary calculation and this decomposition as a cross-check.
avg_gross_win and avg_gross_loss must be calculated from the benchmark-basis P&L path described in the slippage-and-cost article — the hypothetical result if every trade had filled exactly at its pre-specified benchmark price — not from actual-fill P&L that already has execution cost baked into it. If gross win/loss were instead computed from actual fills, that trade’s round_trip_execution_cost_i is already inside that figure, and subtracting it again double-counts the same friction the cost article warns against:
benchmark_basis_pnl − execution shortfall − explicit transaction fees = actual-fill result after those measured execution costs
Do not subtract a trade’s round-trip execution cost from a P&L figure that already contains the same execution shortfall and fees. Pick the benchmark-basis path for this comparison, say so next to the figure, and use the same review window and instrument mix for both the expectancy figure and the cost figure.
Scope note. This calculation covers the transaction and execution costs included in the defined all_in_execution_cost — benchmark-price shortfall plus commissions, exchange, and applicable regulatory fees. Financing, borrow, carry, taxes not captured in that field, or other economic costs must be handled separately before making a broader claim about total profitability. Clearing this hurdle means the sample is positive after the measured execution costs, not after every cost a strategy incurs.
Express the same threshold as a win rate
The dollar-based identity above and a win-rate threshold describe the same breakeven point from two angles, under a simplified model that expresses the comparison as a two-outcome win/loss model without a separate breakeven-outcome bucket. Define:
W = average gross win
L = average gross loss
C = same modeled round-trip execution cost applied to winners and losers
Under those assumptions, solving observed_net_expectancy_per_trade = 0 for win rate gives a cost-adjusted breakeven win rate:
p* = cost_adjusted_breakeven_win_rate = (L + C) / (W + L)
This simplified form holds only under C_win = C_loss = C — the same modeled round-trip cost applied to both winning and losing trades. Actual execution costs can differ between winning and losing trades — exit type, liquidity, order type, volatility, size, and execution conditions can all differ by outcome. The more general, outcome-conditioned form is:
p* = (L + C_loss) / ((W − C_win) + (L + C_loss))
where:
C_win = average round-trip execution cost on gross-winning trades
C_loss = average round-trip execution cost on gross-losing trades
If C_win = C_loss = C, this reduces exactly to p* = (L + C) / (W + L). When costs vary materially by trade or by outcome, or when breakeven outcomes exist in the sample, the paired-mean calculation above is preferable to forcing everything into a single win-rate threshold. Interpret p* as an ordinary breakeven win-rate threshold only when it falls between 0% and 100%; a value outside that range means the assumed payoff-and-cost structure has no breakeven point inside the feasible win-rate range.
This has the same structure as the planned-ratio breakeven formula in risk/reward ratio for scalping — net breakeven win rate = (risk + c) / (risk + reward) — but the inputs are not interchangeable. That article’s version uses the two planned amounts of a single risk/reward ratio, evaluated before any trades exist, to show how a modeled cost distorts one ratio’s breakeven. This version uses realized average gross win and loss from actual trade history, evaluated once those sample averages can be computed, to check whether a sample’s observed expectancy — not a single planned ratio — clears its measured cost. Use the planned-ratio version when sizing a target and stop before trading; use this version, as a simplified cross-check to the paired-mean calculation, when reviewing whether a sample’s measured numbers still clear its measured costs.
| Term | What it answers | When it applies |
|---|---|---|
| Paired-mean net expectancy (dollar) | How much observed margin per trade remains after measured cost | Primary method — valid when cost varies by trade |
| Cost-adjusted breakeven win rate (simplified) | What win rate is needed at the current average win/loss sizes, under constant-cost assumptions | Cross-check, once the assumptions above hold well enough |
| Observed net expectancy / margin | How far the measured gross expectancy sits above or below the cost threshold | The sufficiency answer this article owns |
| Planned-ratio breakeven (risk/reward ratio for scalping) | What win rate one specific planned ratio requires before costs | Before the trade, from the ratio alone, not from a track record |
Worked example: a positive observed gross expectancy that still fails
A 50-trade sample, gross (benchmark-basis) P&L throughout: win rate 42% (21 wins, 29 losses), average gross win $210, average gross loss $140.
observed_gross_expectancy = (0.42 × $210) − (0.58 × $140)
= $88.20 − $81.20
= $7.00
The trader’s own execution-cost scorecard, built the way trading slippage and execution costs describes, aggregates each completed trade’s entry and exit execution costs into that trade’s round-trip figure, then averages across the sample: $9.50 average round-trip execution cost per completed trade over the same window, instrument mix, and eligible trade set. That $9.50 is the completed-trade round-trip figure, not the linked article’s cost-per-executed-unit metric.
average_round_trip_execution_cost_per_trade = $9.50
observed_net_expectancy = $7.00 − $9.50 = −$2.50
The sample has positive observed gross expectancy of $7.00 per trade, but after the measured $9.50 average round-trip execution cost its observed net expectancy is −$2.50 per trade. That −$2.50 is the paired-mean result, using each trade’s own measured round-trip cost; it does not require execution cost to be equal across winners and losers.
For a simplified win-rate cross-check, now assume the same $9.50 modeled round-trip cost applies to winning and losing trades (C_win = C_loss = $9.50). Under that constant-cost assumption:
cost_adjusted_breakeven_win_rate = ($140 + $9.50) / ($210 + $140)
= $149.50 / $350
= 42.71%
The realized win rate, 42%, sits just below the model-implied 42.71% breakeven — consistent with, but not an independent proof of, the paired-mean shortfall above. The paired-mean arithmetic requires only the sample’s average round-trip cost; the 42.71% figure additionally assumes that average round-trip cost applies equally to winners and losers. Calculating both is a consistency check, not two separate findings.
Reliability boundary. This is a point estimate from one 50-trade window, not proof of a durable underlying result. Both the gross-expectancy figure and the execution-cost figure are themselves estimated from data and can move with additional observations or changing conditions. Whether an observed pattern of this size is statistically trustworthy is a separate question, owned by trading data and statistical reliability.
The same outcome distribution with a lower cost
Holding the same benchmark-basis outcome distribution fixed for illustration, suppose average round-trip execution cost falls from $9.50 to $6.00. The paired-mean arithmetic only requires the sample’s average round-trip cost to be $6.00:
observed_net_expectancy = $7.00 − $6.00 = $1.00
For the simplified win-rate calculation, again assume that $6.00 modeled cost applies equally to winning and losing trades (C_win = C_loss = $6.00):
cost_adjusted_breakeven_win_rate = ($140 + $6.00) / $350 = 41.71%
A 42% realized win rate now clears the 41.71% threshold. This is a controlled arithmetic counterfactual, not a claim about what happens in live trading if instrument or order-type mix actually changes — a real change like that can also move fill probability, trade selection, and the gross outcome distribution itself, not just the cost figure. The illustration only shows how the margin responds when cost moves and the outcome distribution is held fixed by assumption.
Turn cost data into margin evidence, not durability evidence
The worked example shows why a single positive gross-expectancy number is not, by itself, evidence of profitability. Report the margin, not just the sign, and be precise about what it does and does not show:
| Finding | What it supports | What it does not establish |
|---|---|---|
| Gross expectancy exceeds cost by a wide margin | A larger arithmetic cushion in this point estimate before the sample turns net-negative | That the margin is stable at a larger sample or a different cost regime |
| Gross expectancy exceeds cost by a small margin | Modest changes in either estimated gross expectancy or measured cost can flip the sign | That the current positive net expectancy is a durable, repeatable result |
| Gross expectancy is below the cost threshold | The eligible sample is net-negative as currently costed | That the underlying strategy has no edge — the gross-expectancy estimate may still reflect a real, if currently insufficient, pattern |
| Margin is shrinking across successive review windows | Gross expectancy declined, execution cost rose, or both — inspect the two components separately | That either figure alone caused the change without checking both |
Common minimum-edge measurement failures
Comparing gross expectancy to zero instead of to the cost threshold
The relevant hurdle is the measured execution-cost figure, not zero. When average round-trip execution cost is positive, positive gross expectancy alone is not sufficient — it must exceed that positive cost hurdle, not just clear zero. Under the signed convention used here, favorable benchmark-relative execution can make average round-trip execution cost zero or negative, so gross expectancy does not universally have to be above zero for observed net expectancy to be positive; the relevant comparison is always observed_gross_expectancy_per_trade against average_round_trip_execution_cost_per_trade, and equality is breakeven, not profit.
Double-counting cost by starting from actual-fill P&L
If avg_gross_win and avg_gross_loss were already calculated from actual fills — which already contain the fill-versus-benchmark shortfall — subtracting average_round_trip_execution_cost_per_trade again double-counts that shortfall, the same failure mode the slippage and execution cost article documents for its own P&L reconciliation. Confirm which P&L basis produced the gross-expectancy figure before subtracting anything from it.
Pairing an expectancy figure with a stale or mismatched cost figure
Execution cost is not constant — it moves with order type, session, and volatility regime. A gross-expectancy figure from one window compared against an average cost figure from a different window, instrument mix, or eligible-trade set understates or overstates the real margin. Recompute both from the same eligible trade set before comparing them.
Treating a currently sufficient margin as durable
A sample clearing its cost threshold today does not prove the underlying strategy will keep clearing it. Cost can rise (wider spreads, a worse fill-rate mix, added fees) or gross expectancy can drift (sample composition, market regime) independent of each other, and a 50-trade estimate is not proof of a stable underlying expectancy either way. Recheck the margin on the same schedule used for the underlying expectancy and cost reviews, and treat sample-size questions as the domain of trading data and statistical reliability, not this article.
Assuming execution cost is always positive
Under the signed measurement convention in the slippage-and-cost article, an individual completed trade’s round_trip_execution_cost_i can be small or negative if favorable execution (price improvement) exceeds explicit fees. If a sample’s average round-trip execution cost comes out negative, report it as favorable measured execution relative to the chosen benchmark over that sample — not as a permanent source of edge.
Ignoring position-size variation
Dollar-based sample expectancy and dollar-based execution cost are valid account-level quantities. But if trade size varies materially and the question is strategy efficiency rather than total account P&L, compare normalized quantities on the same basis instead — for example per contract or per predefined R, the same caution mistake-adjusted expectancy applies to comparing expectancy subsets. Never subtract a dollar cost from an R expectancy, or vice versa, without converting both to the same unit first.
Where Costante fits
Costante can support the logging and structured-review layer around the trade sample and behavioral context: low-friction trade and behavioral logging, and structured review that keeps a cost-versus-expectancy check on a repeatable schedule instead of only after a losing stretch. Costante can preserve the trade and behavioral records used as part of the review sample, while benchmark prices, execution shortfall, explicit fees, benchmark-basis P&L, and the resulting gross and net expectancy calculations must still be obtained or calculated separately where those are not native product fields. The post-trade review process is where the individual planned-versus-actual records this calculation draws on are first captured and classified.
Costante does not calculate a strategy’s edge, does not ingest live broker execution-cost or fee data as an execution-cost engine, does not validate a strategy, and does not decide whether a strategy should be traded. The trader remains responsible for producing the gross-expectancy and cost figures and for deciding what to do once the margin is known.
Frequently asked questions
What is the minimum edge needed to be profitable after trading costs?
The observed gross-expectancy breakeven threshold equals the sample’s own average round-trip execution cost per completed trade, as defined by the execution-cost hurdle above. Equality is breakeven, not profit: gross expectancy has to exceed that threshold, not just meet it, for the sample to be positive after those measured execution costs.
How do I calculate my breakeven win rate after costs?
The simplified formula cost_adjusted_breakeven_win_rate = (avg_gross_loss + C) / (avg_gross_win + avg_gross_loss), where C is the same modeled round-trip execution cost applied to winners and losers, assumes a constant round-trip cost across winners and losers and a two-outcome win/loss model with no separate breakeven bucket. When costs vary materially by trade or outcome, or breakeven trades are present, the paired average-P&L method (observed_net_expectancy_per_trade = observed_gross_expectancy_per_trade − average_round_trip_execution_cost_per_trade) is the more reliable calculation.
Can a strategy have a positive gross edge and still lose money?
A sample can show positive observed gross expectancy and still be net-negative. Positive observed gross expectancy only means the sample was favorable before execution cost; if that figure is smaller than the average round-trip execution cost per completed trade, the observed net result is negative despite the positive gross figure — this is the central case the worked example above walks through. Calling this a validated strategy “edge” requires the separate reliability check owned by trading data and statistical reliability.
How often should I recheck my minimum-edge margin?
Recalculate gross expectancy and execution cost from the same comparable eligible trade set on the same review cadence already used for the underlying expectancy and execution-cost scorecards, and immediately after any material change in instrument, order-type mix, or volatility regime that could move the cost figure. There is no universal interval; the margin is only as current as its two underlying estimates.
Costante provides educational workflow tools, not financial advice. Trading involves risk.