How P&L of a multi-leg option position is calculated
MindTrajour treats a multi-leg position as one trade with one signed premium per order. Gross P&L is the entry premium plus the exit premium, net P&L subtracts the order fees, and the result is realized once the position is closed. This guide explains each number and works through an iron condor from open to close.
One signed premium per order, not per leg
When you log a multi-leg trade by hand, each leg carries its option type, side (buy or sell), strike and expiration. The money sits on the orders, not on the legs: the opening order and the closing order each get one Total Gross Premium, the total for all legs and all contracts before fees, with Pay or Get for the direction.
So for an iron condor you don’t type four premiums. You add up the four fills, or take the net amount from your broker’s order confirmation, and enter it once. A credit you receive is positive, a debit you pay is negative. Closing the condor later is one more order with its own total, usually a payment.
Gross P&L and net P&L
- Gross P&L = entry premium + exit premium. With the signs above, a condor sold for a credit and bought back for less has a positive gross P&L.
- Net P&L = gross P&L − entry order fee − exit order fee.
- Net profit per contract = net P&L ÷ the number of contracts at entry.
The trade view shows these as Gross Profit, Total Fees, Net Profit and Net Profit per Contract, and All Trades has Gross P&L and Net P&L columns. The net figure on the dashboard is built the same way: the gross P&L of closed trades minus the fees recorded on their entry and exit orders.
Fees per leg and per contract
Brokers usually charge options commissions per contract, and a multi-leg order trades every leg. If you set a Default Fee per Contract in the trade form, MindTrajour fills in the order fee as contracts × fee per contract × number of legs. A four-leg condor with two contracts therefore pays the per-contract fee eight times on each order. You can always overwrite the fee with what your broker charged.
The exit fee follows one more rule. While a trade is open and its exit fee is empty, the trade view shows Exit Fee (estimated) with the entry fee as a stand-in, so the net figure isn’t too rosy. Once the trade is closed, an empty exit fee means no fee was charged, which is what you want for options that expired.
Max profit and max risk
MindTrajour computes max profit and max risk from the legs, the number of contracts, the contract multiplier and the signed entry premium. For an iron condor sold for a credit, max profit is the credit. Max risk is the width of the wider wing times contracts and multiplier, minus the credit.
Either number can be unlimited. A short call that no long call covers leaves the upside open, so max risk shows as unlimited. A position that gains without a cap, such as a long call, shows an unlimited max profit. Both numbers describe the position at entry; they don’t change your P&L.
Imported fills add up to the same numbers
When you import from Interactive Brokers, nobody types a total. Each fill’s signed gross is its quantity × price × multiplier, positive for a sell and negative for a buy. The opening fills add up to the entry premium, the closing fills to the exit premium and the commissions to the order fees.
The legs of one combo order are grouped by the broker’s order id. Without an order id, fills on the same underlying and expiration placed less than 15 seconds apart count as one position. The result is the same trade you would have entered by hand, so manual and imported trades compare cleanly in every statistic.
P&L is realized P&L
All Trades shows Net P&L for closed option trades. An open option trade has no P&L yet; its result appears once the exit order is in. Until then, max profit and max risk tell you what the position can still make or lose.
This keeps your statistics honest. A win rate or a net figure built from closed trades can’t be flattered by positions that look good today and close badly next week.
Example
Worked example: an iron condor from open to close
A hypothetical iron condor on the placeholder underlying XYZ, opened for a credit and bought back before expiration. The fills are the same whether you enter the totals by hand or import them.
Hypothetical numbers, not a recommendation.
| Contracts per leg | 2 |
|---|---|
| Contract multiplier | 100 |
| Default fee per contract | $0.65 |
| Sell 95 put × 2 at 1.20 | +$240.00 |
|---|---|
| Buy 90 put × 2 at 0.50 | -$100.00 |
| Sell 110 call × 2 at 1.10 | +$220.00 |
| Buy 115 call × 2 at 0.40 | -$80.00 |
| Total Gross Premium of the opening order (Get) | +$280.00 |
| Buy 95 put × 2 at 0.30 | -$60.00 |
|---|---|
| Sell 90 put × 2 at 0.05 | +$10.00 |
| Buy 110 call × 2 at 0.60 | -$120.00 |
| Sell 115 call × 2 at 0.15 | +$30.00 |
| Total Gross Premium of the closing order (Pay) | -$140.00 |
| Gross P&L | +$140.00 |
|---|---|
| Order fee per order (contracts × fee × legs) | $5.20 |
| Total fees | $10.40 |
| Net P&L | +$129.60 |
| Net profit per contract | +$64.80 |
| Max profit at entry | $280.00 |
| Max risk at entry | $720.00 |
See it in the app
Keep every roll, fill and fee in one journal
Log your options trades by hand or sync them from Interactive Brokers, and read gross and net P&L for every position.
Start your journal