A zero-commission sale of $50,000 of stock still carries a regulatory bill: $1.03 to the SEC under Section 31 and 17 cents to FINRA under the trading activity fee, before any spread or tax. The gross result is the difference between two fill prices. The net result is that difference minus every charge attached to the two trades, and the charges do not appear on the chart.
The four places a gross number leaks
Commissions are the visible layer and the smallest one at a large broker. Schwab's published schedule shows $0 online commission on listed stocks and ETFs, $0.65 per options contract, and $6.95 on US over-the-counter equities, with a $25 service charge added to any of those when the trade is placed through a person rather than online.
Regulatory fees are the second layer. The SEC's fee rate advisory for fiscal 2026 sets the Section 31 rate at $20.60 per million dollars of covered sales, effective 4 April 2026, charged on the sell side only, along with an assessment of $0.0042 for each round turn transaction in security futures. FINRA's Schedule A adds the trading activity fee at $0.000166 per share on each sale of a covered equity security, capped at $8.30 per trade, and $0.00279 per contract on each sale of an option, rates effective 1 January 2024.
The third layer is execution. A market order has no guaranteed price: the SEC's bulletin on order types gives the case of an order for 1,000 shares where 500 execute at $3.00 and the other 500 execute higher because the liquidity at the first price ran out. The fourth layer is tax, which lands after the year ends.
Worked example: 1,000 shares, bought and sold
Buy 1,000 shares at $46.00 for $46,000 and sell them at $50.00 for $50,000 — example prices, since no single public round trip fits the point. The gross result is $4,000.
Commission on both online trades at Schwab's listed-stock rate is $0. The Section 31 fee applies to the $50,000 sale: $50,000 is 0.05 of a million, and 0.05 times $20.60 is $1.03. The trading activity fee on the sale is 1,000 shares times $0.000166, which is $0.17 after rounding and far below the $8.30 cap. Total charges $1.20, and the net result before tax is $3,998.80.
Place the same round trip by telephone and two $25 service charges apply, leaving $3,948.80. Run it in an over-the-counter stock instead and two $6.95 commissions apply, leaving $3,984.90. The fills never changed.
Scroll sideways to see the full table →
| Cost line | Who charges it | Amount |
|---|---|---|
| Online listed stock commission | the broker | $0 |
| Broker-assisted service charge | the broker | $25 per trade |
| US OTC equity commission | the broker | $6.95 per trade |
| Section 31 fee | the SEC, on sales | $20.60 per million dollars |
| Trading activity fee | FINRA, on sales | $0.000166 per share, $8.30 maximum |
The spread is a cost with no line item
No schedule lists the spread, because it is the difference between the price paid and the price a simultaneous seller would receive. It shows up as a worse fill, which is why the SEC's order-type bulletin warns that the last-traded price is not necessarily the price at which a market order will execute. On the 1,000-share example, one cent of slippage on each leg is $20, which is more than sixteen times the entire regulatory bill. The guide on why a quote and a fill differ works through where that cent goes.
Tax turns a calendar into a cost
The IRS treats holding period as the dividing line. Under Topic 409, a gain on an asset held one year or less is short-term and is taxed as ordinary income at graduated rates, while net long-term capital gain is taxed at 0, 15 or 20 percent depending on taxable income. The same page caps the deduction for a net capital loss at $3,000 a year, or $1,500 for married filing separately, with the remainder carried forward.
That cap is the asymmetry worth noting: a $9,000 net realized loss with no gains to offset takes three years to deduct at $3,000 a year, while the gain was taxable in full in its own year.
Where the net number actually lives
The confirmation and the annual statement carry the figure; the position screen usually does not. Reading a full schedule rather than a headline rate is the subject of the guide on how to read a brokerage fee schedule, and the arithmetic of digging out of a drawdown after costs is in the guide on why a 20 percent loss needs a 25 percent recovery.
The subtraction to run before the next trade
Take the two fill prices, subtract commissions on both legs, subtract the Section 31 fee and the trading activity fee on the sale, subtract the spread on both legs, then apply the holding period. What survives is the number that reaches the account.
Source references
Primary sources used for this guide. Follow the links for the original scope, definitions and conditions.
- Pricing | Account Fees | Charles SchwabAccessed 2026-09-17
- Section 31 Transaction Fee Rate Advisory for Fiscal Year 2026Accessed 2026-09-17
- Section 1 - Member Regulatory Fees | FINRA.orgAccessed 2026-09-17
- Understanding Order Types - Investor Bulletin | Investor.govAccessed 2026-09-17
- Topic no. 409, Capital gains and losses | Internal Revenue ServiceAccessed 2026-09-17