Federal Court Says Customer Had Duty To Notify Schwab of Malfunctioning Order System

January 4, 2023

The Wall Street of 2023 isn't the Wall Street of 2020 or 2021. The meme stock frenzy has passed. We're not talking as much about Robinhood and Reddit, or how social media and Covid are fueling a trading mania. Looking back to those frenetic days, in the rush to cut commissions, expand online trading, and cater to those eager to "play" the stock market, brokerage firms were frequently overwhelmed by surges in volume or computer outages. Unfortunately, Wall Street expanded to a point where its operational capacity didn't keep pace -- and the industry's regulators failed to keep up. In a recent lawsuit against Schwab, a customer raises many of these issues on a stroll down a not-too-distant memory lane.

2021: The Amended Complaint

Robert Wright filed a class action against Charles Schwab in state court, but Schwab had the matter removed to the United States District Court for the Northern District of California ("NDCA").Wright was a customer of Schwab and had executed a Schwab One Account brokerage agreement (the "Schwab One Agreement"). NDCA granted Schwab's Motion to Dismiss largely on the determination that there was no viable tort claim because Schwab had no duty independent of the Schwab One Agreement.

Following dismissal, Plaintiff Wright filed an Amended Complaint alleging violations of the unlawful and unfair prongs of California's Unfair Competition Law (the "UCL"), Cal. Bus. & Prof. Code § 17200; and breach of contract and the implied covenant of good faith and fair dealing. Robert Wright, on behalf of himself and all others similarly situated, Plaintiff, v. Charles Schwab & Co., Inc., Defendant (Order Granting in Part and Denying In Part Motion to Dismiss, 20-CV-05281 / March 18, 2021) (the "NDCA 2021 Grant/Dismiss Order"). http://brokeandbroker.com/PDF/WrightNDCAOrd210318.pdf 

2021: Order Granting/Denying Motion to Dismiss -- that ship has sailed

As set forth in part in the NDCA 2021 Dismiss Order [Ed: footnotes omitted]:

The plaintiff alleges that Schwab's online platform for buying and selling stocks malfunctioned. On April 20, 2020, he tried to close a short position on 6,300 shares of Royal Caribbean stock. Schwab bought the replacement 6,300 shares to close the short position, but it did not close the short position. The plaintiff tried several times (by clicking the "close" link) to close the short position, but each click resulted only in duplicate orders for the purchase of the replacement 6,300 shares and did not close the short position. In total, the plaintiff clicked the close link five times over a 10-minute period, resulting in the purchase of 31,500 shares, purchased long on margin (on loaned funds totaling $1.1 million and carrying interest charges).

"Upon realizing that Schwab's system placed him into a $1.1 million long position in Royal Caribbean, Plaintiff informed Schwab that Schwab's system had malfunctioned and that trades were executed inconsistent with his instructions. Schwab did not correct its errors and left . . . [the] short and long positions open, thereby failing to timely execute a securities trade as instructed." "Given the risk of significant financial loss from a $1.1 million margin loan," the plaintiff "attempted to mitigate the damages . . . [from] the system malfunction" and sold the shares after hours at a loss that exceeded $10,000. In addition, Schwab removed the plaintiff's margin buying power for 90 days. 

The system malfunctioned again on April 22, 2020, when the plaintiff tried unsuccessfully to close a new short position in Royal Caribbean stock, again by clicking the close link. The plaintiff "immediately" contacted Schwab. Schwab's representative said that the system was "getting confused and changing the type" of transaction, which meant that a transaction bought replacement shares but did not close the short position. The representative said that "Schwab was aware of the problem and had been working for several months to correct it." A week later, a "Resolution Manager" from Schwab's Client Advocacy Team told the plaintiff that "due its ongoing system malfunction, Schwab failed to execute Plaintiff's trades as Plaintiff instructed." "Schwab has not fully compensated Plaintiff for his losses."

at pages 2 - 3 of the NDCA 2021 Grant/Dismiss Order

SIDE BAR: Note "operational capacity" and trading-platform issues set forth in: "A History Of SOES, Daytrading, NASD, NASDAQ, DOJ, SEC, Congress, And Robinhood -- And A Massachusetts Complaint And Another FINRA Fine" (BrokeAndBroker.com Blog / December 17, 2020) http://www.brokeandbroker.com/5595/robinhood-daytrading-massachusetts/

Beyond Our Control

Citing various terms of its Schwab One Agreement, Defendant Schwab responded to the Complaint as follows [Ed: footnotes omitted]:

First, after a customer completes an application, Schwab opens an account and acts as the customer's broker to purchase and sell securities for the account "and on [the customer's] instructions."

Second, the agreement defines Schwab's liability for its failure to complete transactions:

If we do not complete a transaction to or from your Account on time or in the correct amount according to our agreement with you, we may be liable for your losses or damages. However, in no event shall Schwab be liable for any special, indirect or consequential damages, even if we have been informed of the possibility of such damages.

There are some exceptions. (There may be other exceptions not specifically mentioned here.) We will not be liable, for instance, if:
. . .
  • Circumstances beyond our control (such as fire or flood) prevent the transfer, despite reasonable precautions that we have taken.
. . . 
  • An error in posting an amount or transaction occurs that is beyond our control.
Another section called "Limitations of Liability" also provides that Schwab has no liability for events outside of its direct control.

Schwab, the Information Providers, Information Transmitters, Third-Party Research Providers and any other person involved in transmitting Information will not be liable for any loss that results from a cause over which that entity does not have direct control. Such causes include, but are not limited to: (1) the failure of electronic or mechanical equipment or communication lines: (2) telephone or other interconnect problems; [and] (3) bugs, errors, configuration problems or the incompatibility of computer hardware or software. . . ."

Third, the agreement has two separate (and virtually identical) paragraphs about procedures for order changes or cancellation requests. 

You acknowledge that it may not be possible to cancel a market or limit order once you have placed it, and you agree to exercise caution before placing all orders. Any attempt you make to cancel an order is simply a "request to cancel." Schwab processes your request to change or cancel an order on a best-efforts basis only and will not be liable to you if Schwab is unable to change or cancel your order. . . . No change or cancellation of market orders will be accepted through the Electronic Services. . . . If you wish to try to change or cancel your market order, you agree to call a Schwab representative to assist you. Attempting to replace or change a market order through the Electronic Services can result in the execution of duplicate orders, which ultimately are your responsibility. If an order cannot be canceled or changed, you agree that you are bound by the results of the original order you placed.

Another section has this provision requiring customers to notify Schwab of transaction errors: 

You also agree to notify us immediately if you: 
. . .
  • Fail to receive a message that an order you initiated through the services has been received or executed. 
  • Fail to receive an accurate written confirmation of an order or its execution. 

  • Receive confirmation of an order that you did not place.
Fourth, the agreement has a section titled "Risks of Electronic Trading," which states in part:

When you use the Electronic Services to place a trade order, you acknowledge that your order may not be reviewed by a registered representative before being routed to an exchange for execution and you also will not have the opportunity to ask questions or otherwise interact with a Schwab representative. By placing a trade order through the Electronic Services, you voluntarily agree to assume any added risk that may result from the lack of human review of [the] order in exchange for the reduced commission and potentially greater convenience of electronic trading.

at pages 4 - 5 of the NDCA 2021 Grant/Dismiss Order

In response to the Amended Complaint, Schwab moved to dismiss the contract and UCL claims, primarily on the grounds that 

[(1)] it is not liable under the brokerage agreement for system bugs and technical errors, the plaintiff breached the agreement by not notifying Schwab, and there is no standalone claim for breach of the implied covenant of good faith and fair dealing, and (2) there is no unlawful act or unfair practice.20 The court denies the motion to dismiss the contract claim and grants the motion to dismiss the implied-covenant and UCL claims. 

at Page 7 of the NDCA 2021 Grant/Dismiss Order

4-Part Breach of Contract Test

In considering Schwab's Motion to Dismiss the breach of contract claim, NDCA noted that its test required Plaintiff to demonstrate:

(1) a contract existed; (2) the plaintiff performed his duties or was excused from performing his duties under the contract; (3) the defendant breached the contract; and (4) the plaintiff suffered damages as a result of that breach.

at Page 7 of the NDCA 2021 Dismiss Order

Bugging Out?

In considering whether Schwab had demonstrated that the trading system errors were so-called bugs beyond its direct control, NDCA found in pertinent part that [Ed: footnotes omitted]:

The disclaimer here bars Schwab's liability for technical errors that are outside its direct control. The plaintiff does not contest that he is bound by the disclaimer and instead contends that the provision does not apply because Schwab had control over the technical errors. This involves a fact issue that the court cannot address at the pleadings stage. It is Schwab's trading platform, after all, and the plaintiff plausibly pleaded Schwab's knowledge of an ongoing problem and its inability to remedy it. 

Second, Schwab contends that the losses here happened because the plaintiff kept reentering duplicative orders and did not - as required by the brokerage agreement - "call a Schwab representative to assist" him. Moreover, it asserts, the online platform enabled trading without Schwab agents, but it came with identified risks: no review by agents and the potential that changing orders online - in violation of the requirement to call an agent for assistance - could result in duplicate orders.

at Pages 8 - 9 of the NDCA 2021 Grant/Dismiss Order

Sufficiently Pled Breach of Contract

In rejecting Schwab's contentions, NDCA notes that Plaintiff Wright's attempted order entries happened over a "short 10 minutes, and he alleged that he notified Schwab." at page 9 of the NDCA Order.  Accordingly, the court dismissed Schwab's Motion to Dismiss as based upon Plaintiff's alleged failure to plead a sufficient breach of contract claim.

Superfluous Implied Covenants Claim

In granting Schwab's Motion to Dismiss as to the alleged breaches of the implied covenants, NDCA found that Plaintiff's claim was "superfluous" because there are express terms set forth in the contract at issue, which the Court allowed to go forward under the breach of contract claim. In essence, Plaintiff was seeking to invoke as "implied" terms that were already expressly set forth in the Schwab One Agreement.

Unfair Competition Not Applicable

As to Plaintiff's UCL claims, Schwab moved to dismiss those citing:

[(1)] the UCL does not apply to securities transactions; (2) a breach-of-contract clam cannot be a predicate for a UCL unlawful claim; and (3) the plaintiff did not plausibly plead an unfair practice. . . .

at Page 11 of the NDCA 2021 Grant/Dismiss Order

In granting the dismissal of the UCL claims, NDCA does not discern the requisite "unfair practice," that must be well pled. As the Court characterized Plaintiff's claim, Wright argued that Schwab had not used due care to maintain an error-free platform -- which, at best, would constitute not an unfair practice but negligence, which was not a cause of action in the Complaint.

2022: NDCA Order Granting Summary Judgment

By way of recap, Plaintiff Wright's Class Action alleges that a bug in Schwab's trading platform caused him to lose $10,000 when his efforts to close out a Royal Caribbean stock position resulted in the placement of duplicate buy orders that failed to close the short position. You'd sorta think that the NDCA 2021 Grant/Dismiss Order resolved the dispute in Schwab's favor but, y'know, litigation is a gift that tends to keep on giving. On December 22, 2022, NDCA heard argument on Defendant Schwab's Motion for Summary Judgment. Schwab asserted that Wright did not plead any breach by Schwab because the firm executed all cited orders accurately; and, further, Wright failed to comply with the terms of his account agreement by not notifying Schwab or any encountered execution errors and continuing to exacerbate his circumstance by placing further orders.
Robert Wright, on behalf of himself and all others similarly situated, Plaintiff, v. Charles Schwab & Co., Inc., Defendant (Order Granting Motion for Summary  Judgment, 20-CV-05281 / December 31, 2022) (the "NDCA 2022 Order Granting Summary Judgment") [Ed: footnotes omitted]. 

So . . . what really went on with this trading snafu? As more fully detailed in the NDCA 2022 Order Granting Summary Judgment:

The plaintiff is a frequent trader who has executed thousands of trades on Schwab's platform for over a decade. His account included a margin feature that allowed him to borrow against the securities in his account and make trades valued in excess of the equity in his account. In January 2018, Schwab flagged his account as subject to pattern-day trading rules, and it did so again for the account at issue here shortly after the plaintiff opened it in July 2019. Over the next months, Schwab put multiple temporary restrictions on the account, limiting the plaintiff's ability to trade on margin in light of his violation of Schwab's trading policies. The last of the restrictions expired on April 16, 2020, just a few days before the trades at issue in this lawsuit.

On April 20, 2020, the plaintiff placed hundreds of trades and was actively trading Royal Caribbean stock, going back and forth from short to long positions during the day. "Order Verification" was enabled on his account. It allows users to review and confirm the details of any trade before placing an order. The trades at issue in the lawsuit are eight trades that day. 

At 3:12 p.m. the plaintiff held a short position of 6,300 shares of Royal Caribbean stock. At 3:21:49 p.m. he entered a "stop-loss" buy order for 6,300 shares of Royal Caribbean at an execution price of $35.80. (When an investor holds a short position, he can set a buy order at a defined price. The order executes if the stock's price reaches the execution price.) Because the purchase order covered the plaintiff's short position in Royal Caribbean, the system processed the transaction as a "type 6" transaction, which is Schwab's code for short-trading transactions. One minute later, at 3:22:58 p.m., the plaintiff entered a buy order for 6,300 shares of Royal Caribbean. At this time, his initial order to buy 6,300 shares had not executed. For the second order, he received a message asking him to "review Order Status to prevent a duplication of orders" and indicating that "[t]his account has 6,300 shares short of RCL [Royal Caribbean]." If the plaintiff had reviewed his order status, he would have known that the 3:21:49 p.m. order had not executed. He acknowledged the message by clicking "OK." Because the 3:21:49 p.m. stop-loss order had not executed (and the plaintiff's short position therefore was still open), the system also processed the 3:22:58 p.m. order as a type 6 transaction. At 3:23:30 p.m., Schwab executed the 3:22:58 p.m. order, and at 3:23:31 p.m., it executed the 3:21:49 p.m. order.

Because both 6,300 share orders were executed as type 6 transactions, the plaintiff had a total long position in two separate trades to buy 6,300 shares, the plaintiff bought shares that closed his original short position and also bought an extra 6,300 shares long. Going "long" in type 6 is "illogical" because type 6 is intended for short positions. At 3:24:38 p.m., the plaintiff placed an order to buy 700 shares of Royal Caribbean. Because he no longer held a short position, the system processed the transaction as a type 2 transaction. Type 2 is the code for long transactions. At this point, the plaintiff held 7,000 Royal Caribbean shares long, 700 shares in type 2, and 6,300 shares in type 6.20 At 3:36:58 p.m. the plaintiff placed an order to sell 7,000 shares of Royal Caribbean. He again received trade edits asking him to review the order to prevent duplication and clicked "OK." Rather than eliminating the plaintiff's position of 6,300 shares in type 6 and 700 shares in type 2, the system processed the entire transaction as a sale of 7,000 shares in type 2. This left the plaintiff with a long position of 6,300 shares in type 6 (meaning the sale did not affect the 6,300 shares in type 6) and with a corresponding short position of 6,300 shares in type 2 (because the system deducted 7,000 shares from the existing 700 long shares that the plaintiff held in type 2). This means that the plaintiff was in a boxed, or neutral, position. The short and long positions were effectively closed but technically remained open because of the boxed position. The plaintiff's positions in Royal Caribbean would have been shown in the "Positions" tab of his "Account Details" screen as "2 stocks," one with a quantity of -6,300 in red font (the short position) and one with a quantity of 6,300 in green font (the long position).

At 3:43 p.m., the plaintiff clicked on the "Trade" tab of his account and selected RCL (for Royal Caribbean stock). The screen displayed the long position in green text (L:6300) and the Royal Caribbean assigned as a "type 6" transaction. This is because by entering short position in red text (S:6300). The plaintiff selected "Buy" and entered a quantity of 6,300. He then clicked the "Review Order" button, which caused the platform to display an "Order Verification" screen. That screen showed the plaintiff that he was attempting to "Buy 6,300 shares of RCL," and two trade edits informed him that "This order for RCL covers the short position, leaving you with a total long position of 6,300 shares" and asked him to "Please review Order Status to prevent a duplication of orders." According to the clickstream data collected from the plaintiff's keystrokes on the Schwab platform, he clicked "Place Order" directly below the messages. The plaintiff does not recall seeing the messages.

at Pages 3 - 6 of the NDCA 2022 Order Granting Summary Judgment

And as things further transpired, Plaintiff Wright purportedly neared the day's close of trading around 3:45 p.m. with 6,300 shares short and 25,200 shares long of Royal Caribbean. By 3:48ish, Wright's efforts to flatten his position worsened, as he became long 31,500 shares as a result of netting 37,800 shares long against 6,300 shares short. All of which takes us to about ten minutes before the market close:

At 3:49 p.m., the plaintiff contacted Schwab for help through the chat feature, explaining that he could not get out of positions and was "going negative" as a result. 37 At 3:52 p.m., the Schwab representative asked, "What message are you getting when you try to close the position?" The plaintiff said that "there is no close position button" so he tried to "buy to cover short and it bought more long." The Schwab representative responded, "You are boxed on your RCL position. One moment and I can have that flattened out." Within a few minutes, the issue was resolved. The plaintiff then sold his 31,500 shares of RCL in after-hours trading, allegedly for a loss of $10,000.

at Page 7 of the NDCA 2022 Order Granting Summary Judgment

In granting Schwab's Motion for Summary Judgment, in pertinent part, NDCA found that:

[T]he point of the notice provision here is to avoid error on an electronic platform. It also establishes who bears the risk: a failure to contact Schwab in circumstances like these - where the plaintiff believed that his order was not executed - means that the plaintiff, not Schwab, is responsible under the terms of the contract. The plaintiff, not Schwab, caused the damages because he continued to execute trades. If he had contacted Schwab, he would not have incurred damages. Delayed notice here is the equivalent of no notice and bars the lawsuit.

at Page 11 of the NDCA 2022 Order Granting Summary Judgment

Bill Singer's Comment

This case highlights issues that are not unique to Schwab but have become common occurrences among brokerage firms that offer so-called discount, online trading. In this age of zero-commission-day-trading, operational capacity is an issue that has stepped to the forefront. When customers log on to their accounts, they may be confronted with warnings about unprecedented trading volume, brokerage employees working remote, and all sorts of indications about why the brokerage firm may not be able to timely execute an order or timely confirm same or timely update your buying power or timely disclose your current positions. Sure, go ahead and trade blindfolded!

Frankly, that's just not acceptable. Worse, Wall Street's regulatory community is all too aware of the operational capacity stresses among the industry's key retail players; however, rather than act decisively, the industry's regulators prefer to fall back to their same old, tired reactions. They issue notices reminding broker-dealers to remain compliant. They post advisories, podcasts, and videos warning customers about the risks of trading. There's so much high-end production value in those warning; however, what doesn't come from Wall Street's regulatory community are solutions. What would some meaningful solutions look like? For starters: 

  • restrict a firm from opening more retail accounts until it invests sufficient cash and human assets into its trading platform and operational capacity;

  • require X number of customer service reps per Y number of customers;

  • monitor the delays between a customer phoning a firm's customer service and the time it takes for that call to be handled -- and NOT ending with the time the call is "picked up" but immediately put on further hold;

  • monitor the level of traffic coming into a firm's online helpline and chat features to detect growing issues;

  • monitor online communities and websites that report about brokerage firm outages;

  • require firms to post weekly statistics about the time to answer an average customer request for help or to file a dispute about a trade-related issue;

  • promulgate fixed guidelines as to when a delayed response to a customer trading complaint/query is not "timely," and constitutes conduct inconsistent with just and equitable principles of trade; and

  • require firms to fully and timely repay all customer losses related to platform or operational capacity issues. 
What you don't do as a regulator . . . what you don't persist in doing . . . is nothing.