Under FINRA Rule 4210, a trader who executes four or more day trades within five business days in a margin account is designated as a Pattern Day Trader (PDT), provided the number of day trades represents more than 6% of the customer’s total trades in that margin account for that period.
When designated as a Pattern Day Trader:
The Pattern Day Trader (PDT) Protection & Counter feature provides real-time monitoring of rolling 5-business-day day trades, visual countdown meters, FINRA threshold tracking, and automated risk alerts to safeguard traders from unexpected account restrictions.
┌─────────────────────────────────────────────────────────────┐
│ Robinhood API / Brokerage │
│ • /accounts/{account}/recent_day_trades/ │
│ • /accounts/ margin_balances (day_trades_protection, dtbp) │
└──────────────────────────────┬──────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ Service Layer │
│ • RobinhoodService.getRecentDayTrades() │
│ • DemoService.getRecentDayTrades() (Mock for testing/demo) │
│ • IBrokerageService contract │
└──────────────────────────────┬──────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ Data Models │
│ • DayTrade: Equity & Option executions with drop-off dates │
│ • DayTradeSummary: Rolling count, DTBP, FINRA risk level │
│ • PdtRiskLevel: safe | warning | danger | flagged | exempt │
│ • Account: Parsed margin balances & protection flags │
└──────────────────────────────┬──────────────────────────────┘
│
┌────────────────┴────────────────┐
▼ ▼
┌───────────────────────────┐ ┌───────────────────────────┐
│ PortfolioAlertService │ │ DayTradeMonitorWidget │
│ • Action Center alerts │ │ • 4-segment visual meter │
│ • Critical: 0 left / PDT │ │ • $25k equity progress │
│ • Warning: 1 left │ │ • Filterable trade list │
│ • Exempt if $25k+ equity │ │ • FINRA Rule 4210 FAQ │
└───────────────────────────┘ └───────────────────────────┘
DayTrade (lib/model/day_trade.dart)Represents an individual equity or option day trade:
symbol: Ticker or option contract (e.g. AAPL, TSLA 260327C00220000)type: 'equity' or 'option'executionDate: Calendar date of executiontimestamp: Precise execution timestampdirection: e.g. buy_then_sellprice & quantity: Execution price and share/contract volumedropOffDate: Automatically computed as 5 business days following execution (skipping weekends and market holidays)remainingTradingDays: Number of business days before the trade rolls out of the rolling windowisExpired: Whether 5 business days have elapsedDayTradeSummary (lib/model/day_trade.dart)Aggregates rolling day trade activity for an account:
activeDayTradeCount: Sum of non-expired trades in the 5-day windowremainingDayTrades: Number of day trades remaining before hitting the 3-trade ceiling (or -1 if exempt)isPdtExempt: true if portfolioEquity >= $25,000 or if the account is a cash accountriskLevel:
safe: 0 or 1 trade used (2 or 3 trades remaining)warning: 2 trades used (1 trade remaining)danger: 3 trades used (0 trades remaining; next trade triggers PDT designation)flagged: 4+ trades used or marked PDT with equity under $25,000exempt: Account equity $\ge $25,000$ or cash accountequityDeficitTo25k: Dollar amount required to reach the $25,000 exemption thresholdDayTradeMonitorWidgetAccessible via User Profile $\rightarrow$ Features $\rightarrow$ Day Trade & PDT Monitor and through the account details chip in User Info:
Safe, Warning, PDT Limit Reached, Pattern Day Trader Flagged, PDT Exempt).All, Stocks, and Options.Rolls off in 2 days • Mon, Oct 19).PortfolioAlertService evaluates day trade status:
pdt-limit-reached): Surfaced when 3 of 3 trades have been executed and equity is under $25,000.pdt-flagged): Surfaced when the account has been marked as PDT and equity is under $25,000.pdt-warning): Surfaced when 2 of 3 trades have been executed (1 trade remaining).