PositionSizeTool
Forex · Stocks · Crypto — size every trade from your risk, not from hope

Stock Profit Calculator

The position

Your own numbers. Nothing is looked up — there is no ticker box, because there is no price feed behind it.

Buy commission

Brokers quote the same charge three different ways, and they stop being equal the moment position size moves.

Sell commission & tax

Charged on the gain after commission. Set it to zero and nothing changes but the tax line.

Net profit after all costs
—
—
Break-even sell price
—
—
Gross profit—
Buy commission—
Sell commission—
Tax on the gain—
Commission, both sides—
Costs as share of gross—
Capital used—
Return on that capital—
Price move—

How to read the two numbers

The first number is what the round trip leaves you with. Not (sell − buy) × shares, which is the gross figure every one of the first-page tools we read on 10 October 2026 prints as the headline, but that same figure with both tickets paid and the tax taken out. On this page's defaults — 100 shares from 48.00 to 55.00, 5.00 charged on each side — the price difference is worth 700.00 and what you keep is 690.00. Whether the two are close enough to ignore is the whole question, and it depends on how big the move is.

The second number answers the question nobody was asked. Below this sell price the trade has not paid for itself yet. Here it sits at 48.10, a tenth of a dollar and a 0.21% move above your entry: above it every extra cent of price is profit, below it you are paying two commissions to lose money. It moves whenever either charge does, and it is the number worth knowing before you enter rather than after.

Note what is deliberately absent: there is no ticker box, no live quote and no price history anywhere on this page. Every figure below is arithmetic from the six numbers in the boxes above, and you can reproduce each one by hand.

The arithmetic behind it

Six lines, no estimates. N is your share count, Pb what you paid, Ps what you sold for, and each side's commission is quoted either flat, per share, or as a percentage of that side's order value:

N shares Pb buy price Ps sell price gross G = ( Ps - Pb ) x N buy commission cb = c_f flat per order = N x c_s per share = Pb x N x c_% percent of value sell commission cs = same three forms, taken against Ps x N before tax B = G - cb - cs tax T = max(0, B) x t% net net = B - T capital used K = Pb x N + cb return ROI = net / K break-even solve ( Ps - Pb ) x N - cb - cs( Ps ) = 0

Two things about that last line. First, when commission is quoted as a percentage, the sell-side charge grows with the price you are solving for, so there is no one-line rearrangement — it is solved for numerically, and it still prints to the cent. Second, because the tax is a percentage of the gain rather than a charge per share, it scales the profit without moving the price at which the profit is zero. The table on tax further down shows that happening five times over.

Worked example you can check by hand

100 shares bought at 48.00, sold at 55.00, 5.00 charged on each ticket, no tax:

Every line below is one row of the formula above, with page defaults.
LineArithmeticResult
Gross profit(55.00 − 48.00) × 100700.00
Buy commission5.00 flat5.00
Sell commission5.00 flat5.00
Before tax700.00 − 5.00 − 5.00690.00
Tax at 0%690.00 × 00.00
Net profit690.00 − 0.00690.00
Capital used48.00 × 100 + 5.004,805.00
Return on capital690.00 ÷ 4,805.0014.36%
Break-even sell48.00 + 10.00 ÷ 10048.10

That break-even line is the one worth internalising: with a flat charge, the whole cost is spread over your share count, so doubling the position halves the extra price you need. Put 1,000 shares into the tool instead of 100 and the break-even falls from 48.10 to 48.01, while the net profit goes from 690.00 to 6,990.00.

Two brokers quote the same charge, the trade is not the same

None of this is exotic, but almost none of it is visible if the tool only accepts one way of writing the fee. Same 100 shares, same 48.00 to 55.00, four ways of quoting what looks like a cheap ticket:

Four commission quotes on one trade: 100 shares, 48.00 in, 55.00 out, no tax.
QuoteBuy costSell costNet profitBreak-even
5.00 flat, each side5.005.00690.0048.1000
0.05 per share, each side5.005.00690.0048.1000
0.02 per share, each side2.002.00696.0048.0400
0.10% of value, each side4.805.50689.7048.0961

The first two rows are the same trade wearing two hats — at 100 shares, 0.05 a share is a 5.00 ticket. The percentage row is the interesting one: it costs almost the same here, yet it breaks even lower, because a percentage charge shrinks as the price you are solving for falls. Two quotes that agree at your target price disagree everywhere below it, which is exactly the part of the range you care about when a trade goes against you.

Size decides which quote is cheaper

The crossover is not subtle. One trade — 48.00 in, 55.00 out, no tax — run at four share counts against a flat 5.00 a side and against 0.05 a share:

Flat 5.00 per ticket against 0.05 per share, at four position sizes on the same 48.00 to 55.00 trade.
SharesCost, flatNet, flatBreak-evenCost, per shareNet, per shareBreak-even
2010.00130.0048.50002.00138.0048.1000
10010.00690.0048.100010.00690.0048.1000
50010.003,490.0048.020050.003,450.0048.1000
1,00010.006,990.0048.0100100.006,900.0048.1000

Per-share pricing is flat pricing's mirror image: at 20 shares it needs a 0.50 move before you profit, at 1,000 shares flat pricing needs a hundredth of that. Neither is better in the abstract, and the small position is the one that pays — which is the same pressure that shows up in sizing on a small account, where fixed charges quietly decide what trades are worth taking at all.

Tax trims the profit and leaves the break-even where it was

This is the counterintuitive one, and it falls straight out of the formula: the tax base is the gain after commission, so tax is a percentage of a quantity that is already zero at the break-even. Charging more of zero changes nothing. Same defaults — 100 shares, 48.00 to 55.00, 5.00 a side:

Same trade under five tax rates. The net column moves by nearly half; the break-even column does not move at all.
Tax on the gainTax paidNet profitReturn on capitalBreak-even
0%0.00690.0014.36%48.10
15%103.50586.5012.21%48.10
20%138.00552.0011.49%48.10
25%172.50517.5010.77%48.10
30%207.00483.0010.05%48.10

A higher rate takes a bigger bite out of every winner and none at all out of the one price that decides whether you lose money. The rate you enter should be your own — short-term and long-term rates differ, so do countries, and none of that is modelled here.

Small targets are what fixed charges punish

A flat round trip does not care whether the trade worked. Ten dollars comes out of a 1% move just as eagerly as out of a 20% one, and it takes a wildly different share of each. Same 100 shares bought at 48.00, same 10.00 of commission, no tax:

A 10.00 round-trip charge against five different outcomes on a 4,805.00 position.
Price moveSell priceGrossNetCosts as share of grossReturn
+1%48.4848.0038.0020.83%0.79%
+2%48.9696.0086.0010.42%1.79%
+5%50.40240.00230.004.17%4.79%
+10%52.80480.00470.002.08%9.78%
+20%57.60960.00950.001.04%19.77%

A scalp that pays a fifth of itself to costs has to be right far more often than the same trade held for 20%. That arithmetic is the same one that shows up in the profit factor across twenty trades, and it is why the break-even line is printed rather than assumed.

What this page does and does not do

The same arithmetic runs one instrument over in the forex profit calculator, where the charge comes in as spread and the size comes in lots — worth doing once, because it is the moment the difference between "pip" and "cent" stops being abstract.

What the page does not ask — how many shares you should have bought — is decided before the trade: see how many shares to buy and how much to risk per trade. If the shares were bought in several goes rather than one, the average-cost side of it belongs in adding to a position, and the calendar version in the DCA calculator.

Questions people ask

What does net profit after all costs mean?

The two tickets and the tax paid out of the price difference: gross profit minus buy commission minus sell commission minus the tax charged on what remained. On this page's defaults that is 700.00 of gross turned into 690.00 net. It is what the round trip leaves with you, not what the chart says the move was worth.

Why does the page print a break-even sell price?

Because the gross figure hides whether a small move is even worth taking. The break-even is the sale price at which the trade has covered both commissions and tax and no more: 48.10 here, a tenth above the 48.00 entry. Above it every extra cent is profit, below it you are paying two tickets to lose. It moves with whichever charge you change, so it is the fastest way to see what a fee increase costs you.

Is a share profit calculator the same thing?

Same arithmetic, different word for it: this is a stock profit calculator, a share profit calculator and a stock gain calculator by any of those names, sharing one row of boxes. Whichever name you arrived by, you get the net figure after both tickets and the break-even price, which is the part most of them leave out.

Should I enter commission as flat, per share or percent?

Whichever way your broker quotes it, because the three stop being equal as soon as the position size moves. At 100 shares a 0.05 per-share charge and a 5.00 flat ticket are identical; at 20 shares the flat ticket costs five times as much, and at 1,000 shares it costs a tenth. Percentage charges behave differently again, since they grow with the price you sell at.

Does adding tax change the break-even price?

No, not while the tax is a percentage of the profit rather than a charge per unit. The tax base here is the gain after commission, so at the break-even price that base is zero and any rate applied to it stays zero. Raising the rate from 0% to 30% cuts the net profit from 690.00 to 483.00 and leaves the break-even at 48.10 in every row.

Can I use this for crypto or forex?

Yes for any instrument priced per unit, since nothing in the arithmetic knows what you bought. Forex has its own page with spread, pip size and lot sizes built in, because those three decide the answer there; crypto adds exchange fees and funding on the futures side, so check whether your venue charges as a percentage of notional before entering it.

Why is the return on capital different from the price move?

They are measured against different bases. The price move compares your two prices; the return divides the net profit by everything the trade actually consumed, which is the purchase cost plus the buy-side commission — 4,805.00 here rather than 4,800.00. A 14.58% move in the share price becomes a 14.36% return once the ticket is counted.

Is any of this fetched from a data feed?

No. There is no ticker lookup, no quote and no historical series anywhere on this page. The six inputs are yours, the arithmetic runs in your browser, and nothing is uploaded or saved. That is also its limitation: the output cannot tell you whether the two prices were realistic.

Related guides

Last updated 21 October 2026