The 390 Rule in Options: Professional Status
The 390 rule: average over 390 options orders a day in a month and exchanges treat you as a Professional. What brokers count and what changes in practice.
The 390 rule is the options exchanges' line between a retail customer and a Professional. An account that is not a broker-dealer and averages more than 390 listed-option orders per trading day over a calendar month is designated a Professional: its orders carry a different origin code, and at the exchange they lose the priority and fee treatment reserved for public customers. The regular session is 390 minutes long, so the threshold is one order per minute.
What is the 390 rule in options trading?
Every options order reaches the exchange with an origin code, a one-letter tag the broker attaches to say whose order it is. Public customers are marked C; market makers and broker-dealers have their own codes. Since January 2010 Cboe has carried one more: W, for Professional, a customer who is not a broker-dealer but places orders like one.
The definition sits in Cboe Exchange Rule 1.1. As read on September 17, 2026, as amended by rule filing SR-CBOE-2026-060, it says:
The term "Professional" means any person or entity that (a) is not a broker or dealer in securities, and (b) places more than 390 orders in listed options per day on average during a calendar month for its own beneficial account(s). Orders for any customer that had an average of more than 390 orders per day during any calendar month must be represented as Professional orders for the next calendar month. TPH organizations will be required to conduct a monthly review and make any appropriate changes to the way in which they are representing orders within five days after the end of each calendar month. (Cboe Exchange Rule 1.1, "Professional", as amended by SR-CBOE-2026-060, Exhibit 5; read September 17, 2026.)
A TPH organization is a Trading Permit Holder, Cboe's term for a member firm; for a retail account, that is the broker. Other exchanges run the same test under other labels: Nasdaq ISE separates Priority Customers from Professional Customers on the identical 390-order line, and Cboe's 2026 change followed a Nasdaq ISE filing on the same review (SR-ISE-2026-16).
Why 390? The regular session is 390 minutes long
From 9:30 a.m. to 4:00 p.m. ET is six and a half hours, 390 minutes, and the threshold is one order for each of them. You can count those minutes off the tape. The panel below groups SPY's one-minute bars into half-hour buckets across one full session, premarket and after-hours edges included.
| et_time | bars_printed | volume_millions |
|---|---|---|
| 09:00 | 30 | 0.27 |
| 09:30 | 30 | 6.78 |
| 10:00 | 30 | 4.93 |
| 10:30 | 30 | 2.93 |
| 11:00 | 30 | 2.65 |
| 11:30 | 30 | 1.78 |
| 12:00 | 30 | 1.56 |
| 12:30 | 30 | 1.91 |
| 13:00 | 30 | 1.39 |
| 13:30 | 30 | 1.05 |
| 14:00 | 30 | 1.62 |
| 14:30 | 30 | 1.59 |
| 15:00 | 30 | 2.58 |
| 15:30 | 30 | 6.49 |
| 16:00 | 30 | 1.56 |
| 16:30 | 29 | 0.06 |
The exact SQL behind every number
SELECT
formatDateTime(toStartOfInterval(toTimeZone(window_start, 'America/New_York'), INTERVAL 30 MINUTE), '%H:%i', 'America/New_York') AS et_time,
uniqExact(window_start) AS bars_printed,
round(toFloat64(sum(volume)) / 1e6, 2) AS volume_millions
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND window_start >= toDateTime('2026-09-10 13:00:00', 'UTC')
AND window_start < toDateTime('2026-09-10 21:00:00', 'UTC')
GROUP BY et_time
ORDER BY et_timeFrom the 09:30 bucket through the 15:30 bucket, every half hour prints 30 one-minute bars; thirteen buckets of thirty make the 390. The edges show where the session sits: the 09:00 premarket bucket carried 0.27 million SPY shares against 6.78 million in the 09:30 bucket that followed.
What does 390 orders a day look like against the market?
For a person clicking a mouse, 390 orders is an enormous day. Against the market it is a rounding error. The next panel counts every SPY option trade in each half hour of the same session, per active minute.
| et_time | trade_count | trades_per_minute |
|---|---|---|
| 09:30 | 207226 | 6907.5 |
| 10:00 | 197478 | 6582.6 |
| 10:30 | 115788 | 3859.6 |
| 11:00 | 85307 | 2843.6 |
| 11:30 | 100321 | 3344 |
| 12:00 | 82188 | 2739.6 |
| 12:30 | 98717 | 3290.6 |
| 13:00 | 64522 | 2150.7 |
| 13:30 | 58135 | 1937.8 |
| 14:00 | 78437 | 2614.6 |
| 14:30 | 76965 | 2565.5 |
| 15:00 | 69972 | 2332.4 |
| 15:30 | 85502 | 2850.1 |
| 16:00 | 22620 | 1508 |
The exact SQL behind every number
SELECT
formatDateTime(toStartOfInterval(toTimeZone(sip_timestamp, 'America/New_York'), INTERVAL 30 MINUTE), '%H:%i', 'America/New_York') AS et_time,
count() AS trade_count,
round(count() / uniqExact(toStartOfMinute(sip_timestamp)), 1) AS trades_per_minute
FROM global_markets.options_trades
WHERE underlying_symbol = 'SPY'
AND sip_timestamp >= toDateTime('2026-09-10 13:30:00', 'UTC')
AND sip_timestamp < toDateTime('2026-09-10 20:30:00', 'UTC')
GROUP BY et_time
ORDER BY et_timeThe opening half hour printed 6907.5 SPY option trades per minute; the 15:30 bucket ran at 2850.1. An account at the threshold adds one order a minute to that stream. What the tag changes is who is served first at a price, the question underneath how market makers make money.
How do brokers count orders under the 390 rule?
The counting rules are Interpretation and Policy .01 to Rule 1.1, spelled out in Cboe Regulatory Circular RG16-064 (March 30, 2016), which updated Regulatory Circular RG09-148 (December 24, 2009). As read on September 17, 2026:
- Every order counts once, filled or not, on any options exchange. Size is irrelevant: a one-lot and a 500-lot each add one.
- A cancel/replace, which is what most platforms send when you edit a resting order, counts as a new order. A plain cancel adds nothing.
- A spread of eight legs or fewer is one order, even if the broker legs it out. Nine legs or more and each option leg counts separately. A stock leg never counts.
- A parent order sliced by a broker's algorithm into child orders on the same side of the same series counts once. Children across both sides or several series each count.
- An order pegged to the NBBO counts again every time it re-prices to follow the quote.
- All accounts under one beneficial owner are aggregated. Sub-accounts and related accounts with separate tax IDs do not reset the count.
The average is per trading day over the calendar month: counted orders divided by that month's sessions. A quiet week does not offset a busy one.
When does the designation change?
Until mid-2026 the review was quarterly: a customer who averaged more than 390 orders a day in any month of a quarter was marked W for the whole next quarter. SR-CBOE-2026-060, filed June 30, 2026 as immediately effective (SEC Release No. 34-105891, July 13, 2026), shortened both halves. The broker now reviews each calendar month and re-tags within five days after month end; the designation applies to the next calendar month. The path back is the mirror image: a month at or under 390 a day and the account returns to C for the month after.
What changes once you are tagged W?
Priority. Exchanges give public-customer orders execution priority over market-maker quotes and broker-dealer orders at the same price. A W order is allocated the way a broker-dealer's is: behind the customer orders at that price, in the same pool as the market makers. On a crowded strike that is the difference between the front of the queue and the middle of it, a mechanism that runs through why options orders don't get filled.
Fees. Circular RG09-148 states that Professional orders are treated the same as broker-dealers for execution priority and incur a per-contract transaction fee on executed business. Customer orders in most classes trade free or nearly free of exchange transaction fees; W orders pay the broker-dealer schedule. The marketing fee, a per-contract charge market makers fund to attract customer flow, is not collected on Professional executions either: your orders stop being the kind a market maker pays to trade against. Whether any of this reaches your statement depends on your broker's pricing.
Routing. Payment-for-order-flow arrangements, in which a wholesaler pays the broker to execute retail orders, are written around C-coded flow. How a broker routes or prices W-coded orders is set firm by firm.
Does the 390 rule count small orders the same as big ones?
Yes, and that is the part most retail traders miss. A bot working one-lot orders across twenty tickers, re-entering each time the quote moves, can pass 390 before lunch. A discretionary trader placing ten 50-lot spreads a day never gets close. The tape shows how ordinary the one-lot is.
| bucket | trade_count | share_of_trades_pct |
|---|---|---|
| 1 contract | 642437 | 47.8 |
| 2 to 5 contracts | 410232 | 30.5 |
| 6 to 10 contracts | 129068 | 9.6 |
| 11 to 50 contracts | 132413 | 9.9 |
| 51 or more contracts | 29028 | 2.2 |
The exact SQL behind every number
SELECT
bucket,
trade_count,
round(100 * trade_count / sum(trade_count) OVER (), 1) AS share_of_trades_pct
FROM
(
SELECT
multiIf(size = 1, 1, size <= 5, 2, size <= 10, 3, size <= 50, 4, 5) AS bucket_rank,
multiIf(bucket_rank = 1, '1 contract',
bucket_rank = 2, '2 to 5 contracts',
bucket_rank = 3, '6 to 10 contracts',
bucket_rank = 4, '11 to 50 contracts',
'51 or more contracts') AS bucket,
count() AS trade_count
FROM global_markets.options_trades
WHERE underlying_symbol = 'SPY'
AND sip_timestamp >= toDateTime('2026-09-10 13:30:00', 'UTC')
AND sip_timestamp < toDateTime('2026-09-10 20:30:00', 'UTC')
GROUP BY bucket_rank, bucket
)
ORDER BY bucket_rankOn that session 47.8% of SPY option trades were for exactly one contract, and trades of 51 or more contracts made up 2.2%. The pattern holds across the names retail trades most.
TSLA had the highest single-contract share that day at 60.5% of trades; QQQ the lowest at 46.6%. For a non-broker-dealer account, each order behind those trades counts the same toward 390, whatever its size.
For a bot placing many small orders, the count is the number to watch, and two habits move it most. A cancel/replace is a fresh order every time, and a spread entered as one ticket is one order where the same legs entered separately are several. A same-side child-order slicer does not multiply the count; a pegged order does, on every re-price.
The 390 rule vs the professional market data test
Two different rules use the word "professional", and traders mix them up constantly. The 390 rule is an exchange order-handling rule: it counts orders, month by month, and it sets exchange priority and fees.
The market data test is a subscriber classification set by the data feeds (OPRA, for options). It looks at who you are: whether you are registered with a securities regulator, work for a broker-dealer or bank in a registered capacity, act as an investment adviser, or use the data for anything beyond personal investing. Fail any of those and you pay the professional data rate; your order count never enters into it. An account can hold either status without the other. Our guide to professional vs non-professional market data covers the subscriber test and what it does to a data bill.
Neither test is your broker's options approval level, which decides which strategies you may trade at all; that ladder is covered in options approval levels explained.
FAQ
What is the 390 rule in options?
An options exchange rule that designates any non-broker-dealer account averaging more than 390 listed-option orders per trading day over a calendar month as a Professional. The number is the count of minutes in a 9:30 to 4:00 session: one order per minute.
Do cancelled or unfilled orders count toward the 390?
Unfilled orders count; the rule counts orders placed, executed or not, on any exchange. A cancel/replace (a modify) counts as a new order. A plain cancel adds nothing new.
Does a spread count as one order or one per leg?
One order when the complex order has eight legs or fewer, even if the broker legs it out. With nine legs or more, each option leg counts separately. A stock leg never counts.
What happens if I am classified as a Professional?
Your orders carry the Professional origin code (W at Cboe) for the following calendar month. They lose customer priority in the exchange's allocation and pay the broker-dealer fee schedule instead of customer rates. A month back at or under 390 orders a day returns the customer code for the month after.
Is the 390 rule the same as professional market data status?
No. Market data professional status is a subscriber test about who you are and how you use the data, and it sets your data fees. The 390 rule counts the orders you place and sets your order priority and exchange fees. Each is assessed on its own.
Every panel above carries the exact SQL behind it. To count the trades in a different name or on another session, run the queries on the Strasmore terminal.