Order rejected
How to read the check number on a rejected card, every risk check in plain words, the tradability codes, guidance-rule rejections, and what the PM does with a rejection.
- Who it is for
- Everyone on the book
- Reading time
- 9 min read
- Updated
Every order the PM proposes runs through the 's , in the same order every time, before anything reaches the broker. A rejected card is the checks doing their job: nothing was sent.
Reading the check numbers
In the Inbox, under Decided today, a the risk rules refused reads Refused, by a risk rule and its line says why in plain words ("Order is over the per-order cap."); the check number and the Executor's exact reason, with the numbers that tripped it, are on the order's row in Activity › Orders and in the session's Technical details on Desk, under Orders as the risk rules checked them. The Executor runs every risk check and records every result, but the first failure in table order decides: the reason shown is always the lowest-numbered check that failed, even when later ones failed too.

To see the whole row with the check numbers, open Desk › Today. That link opens the latest session with Technical details and Orders as the risk rules checked them already open (from any other session, open those two lines yourself): the first proposal shows its checks as number · name · detail, and Show 18 checks does the same for any other. Green is pass, red is fail, and the header counts "n/18 passed · first failure wins". Activity › Orders keeps the trail for past days.
The risk checks
Numbers are the Moderate defaults (Moderate is exactly the code defaults); yours are on Risk › Limits and Risk › Halts.
Paper/live flag matches the running process
- What usually trips it
- Never on a normal day; a deploy mismatch. Halts.
- What to do
- Tell your operator
Market open, outside the first and last 15 minutes (1 minute for the Executor's own stop and target exits)
- What usually trips it
- A proposal evaluated after 14:45 CT or on a closed day
- What to do
- Nothing; premarket ideas wait for 08:45 on their own
(codes below)
- What usually trips it
- , illiquid, under $3, wide spread, name
- What to do
- See the codes; edit Risk › Universe
Long only: a sell must fit the shares you hold that are not already promised to another sell; no buy at all while the book is halted (reduce_only_book)
- What usually trips it
- A sell bigger than the free position
- What to do
- Nothing; the PM re-proposes
, good for the day
- What usually trips it
- Never from the PM; a code guard
- What to do
- Nothing
Limit within 1% of the last trade (a protective exit resting above the last trade at its slippage floor passes with a note)
- What usually trips it
- Price moved since the idea was priced; a missing or invalid quote also fails here first, as
no_quote - What to do
- Approve re-quotes at the current price; otherwise the PM re-proposes
Quote younger than 30 seconds
- What usually trips it
- Stale market data
- What to do
- Nothing; the next proposal trades when data is fresh
At most $500 per buy order; a sell of shares you hold passes with a note (covered_sell_uncapped)
- What usually trips it
- An oversized idea
- What to do
- The PM sizes down; raising the cap is a loosening
Resulting position at most 10% of equity
- What usually trips it
- Adding to a name you already own (open buy orders count)
- What to do
- Nothing, or trim the name first
at most 60% of equity
- What usually trips it
- The book is nearly fully invested (open buy orders count)
- What to do
- Nothing; sells always pass
At most 6 new orders a day
- What usually trips it
- A busy day; every order decision today counts (a corrected resubmit or a re-priced exit counts once)
- What to do
- The next buy waits for tomorrow; a sell that reduces or closes a position still goes out
Pattern-day-trader guard under $25,000 (margin accounts; pdt_guard)
- What usually trips it
- A round trip that would be day trade number 4 in 5 sessions, counted from the Executor's own fills
- What to do
- Hold the position overnight
No buys within 2 days of earnings
- What usually trips it
- A buy on or right before a report date
- What to do
- Nothing; sells are unaffected
Day's loss not past −$150
- What usually trips it
- A bad day. Halts; a sell still passes with a note (
reduce_only_exit) - What to do
- Read the day, then Resume when ready
from the high-water mark under 8%
- What usually trips it
- A bad stretch. Halts; a sell still passes with a note
- What to do
- Same; consider a lower
No second buy of the same symbol within 60 minutes; sells of a held position are never duplicates (covered_sell_repeat)
- What usually trips it
- The PM repeating itself
- What to do
- Nothing
- What usually trips it
- Never fails; over the line means the card waits for you. The Executor's own stop and target exits never wait (
auto_ok: preauthorized protective exit) - What to do
- Decide the card; the dial is on Strategy › Profile › Autonomy
Settled funds: never borrow; a cash account spends settled cash only (insufficient_cash, unsettled_funds)
- What usually trips it
- A buy bigger than free cash, or funded by today's sale proceeds on a cash account (they settle the next session)
- What to do
- Nothing; the same buy passes next session once the proceeds settle
A missing, zero or crossed quote is one proposal's problem, never a halt: that proposal is rejected with no_quote and a note saying what was wrong with the quote, and the next one trades when the feed is back.
Check 3: the tradability codes
Check 3 reports every failing rule at once, in a fixed order, so one rejection tells the PM everything wrong with a name; the first code decides: profile_unavailable (no data; fails closed), denylisted, not_tradable_asset (not a US exchange-listed stock, ADR or ETF, or not tradable at the broker), halted, leveraged_etf_blocked, price_below_floor (under $3), insufficient_history (under 60 daily bars), illiquid_adv (under $5M traded a day), spread_too_wide (over 50 bps), order_exceeds_adv_pct (over 0.5% of daily dollar volume). Values exactly at a floor or cap pass. Sells are never trapped: an exit only has to pass profile_unavailable, halted and the broker's own tradable flag, so a holding that was delisted can still be sold.
Rejections that are not one of the numbered checks
- A symbol on hold. When a name you hold opens more than 35% away from yesterday's close with no split or other corporate action on record, the Executor holds it: the reason reads
symbol_hold:<SYM>:suspect_corporate_action, every order on that name is rejected on either side and its armed stop is frozen, because trading on a price it cannot explain is worse than waiting. Check the name, then clear the hold on Risk under Symbols on hold with your ; the Executor resumes on its next tick. - . A hard constraint (an enforced rule) is enforced by the Executor before the risk checks. The reason reads
steering:<note_id>:<kind>, the kind beingno_new_buys,max_gross_pct(a tighter gross cap) orblocklist_symbols. Only buys are affected; to lift it, retire the note on Strategy › Guidance. When you add or change a constraint the Executor also sweeps what is already out: a waiting or queued buy card the constraint forbids is rejected with the same reason (marked as swept), and a buy order already resting at the broker is cancelled with that note. - On top of your stop. After the price is resolved (the peg, or the re-quote when you approve), a bracket buy whose working limit sits within 25 basis points of its own stop (the minimum stop room, a deployment setting) is not placed: a fill would go straight through the stop. The note begins
arrival_breached_stopand gives the working limit, the stop and the floor; the owner gets a "Not placed … the price is on top of your stop" mail; and the PM is woken to re-think the (a fresh stop or no entry) rather than re-propose the same price. If it was your approval's re-quote that landed there, the row reads Rejected, by you. - Halt cancelled it. While the book is halted, buy orders resting at the broker are cancelled; the proposal closes as cancelled (Canceled in the Inbox, with the line "Trading was halted.") and its Activity row carries the halt reason. Sells are never cancelled by a halt.
- Superseded by a newer proposal. One idea per name at a time: when a session proposes a fresh open on a symbol that already has an older one still queued, with the , or waiting for you, the older one is retired as Rejected, with a note beginning
superseded_byand the newer proposal's id, and the new card takes its place. An older one you had already approved is never retired; the newcomer is dropped instead. - Withdrawn by the PM. A cancel from the PM that names an order not yet at the broker (parked for tomorrow by the 14:48 pass, queued for the window, or waiting for you) closes it as Rejected with a
withdrawn_by_analystnote and the reason; nothing was sent. - Superseded by a stop. When a stop or target fires, any other sell already resting on that symbol (an earlier trim, say) is cancelled first so its shares are free for the exit; it shows as Canceled with the line "A protective exit for this stock had to go first."
- Less than one share. Ideas are sized in dollars; the Executor turns the amount into shares at the working price: a fraction of a share where the broker allows fractions of that name, whole shares rounded down where it does not. When a whole-shares-only name costs more than the amount (say $150 of a $450 stock), nothing is sent: the note begins
below_one_share_not_fractionableand names the price of one share. Size up to a whole share or pick a name that trades in fractions; most large US stocks and ETFs do. - A blocked the name. On servers that declare screens, a buy in a name that fails a screen on Signals is refused and the reason names the screen ("Blocked by Low-vol quality: …"); the same words appear wherever the name is shown. (The older per-algorithm buy block was retired on 11 September 2026; a reason starting
algo_confluenceon an old row is that.) - The broker said no. After every check passes, the broker can still refuse (a symbol restriction, say). A fixable refusal (tick size, whole shares) gets exactly one corrected resubmit under the same verdict; anything else is final. The card reads Rejected with the broker's reason and Overview shows "The broker rejected an order".
Blocked, rejected, expired
Rejected
- Meaning
- A check, a constraint or the broker refused it; nothing was placed
- What next
- The PM reads the reason next session
Blocked
- Meaning
- Trading was halted when the Executor reached a buy or an order-management request; on screen it reads Refused, by a risk rule, with "Trading is halted." as its line. Sells are not blocked by a halt
- What next
- Resume on Risk; the PM re-proposes
Expired
- Meaning
- Its closed with no decision (nothing was sent; the Inbox pill reads Expired), or its day order ended unfilled: at the window's end, by a halt (buys only) or because a stop exit superseded it (the pill reads Canceled and the line says which); a new hard constraint stopping it reads Stopped, by guidance
- What next
- Nothing to undo

The PM hears about it
Every rejection reason, and any note you type when you reject, lands in the decisions ledger of the the PM reads at the start of its next session, so it decides again with the reason in front of it. You never need to explain a rejection to it yourself.