San Francisco Division ROBERT WRIGHT, on behalf of himself Case No. 20-cv-05281-LB and all others similarly situated, ORDER GRANTING MOTION FOR Plaintiff, SUMMARY JUDGMENT v. Re: ECF No. 78 CHARLES SCHWAB & CO., INC., Defendant. This is a putative class action challenging an alleged bug in Charles Schwab’s online trading platform for stock transactions. The named plaintiff tried to close a short position in Royal Caribbean stock but placed duplicate orders that purchased shares without closing the short position. As a result, he lost $10,000. He sued Schwab for breach of the brokerage agreement. Schwab moved for summary judgment on the grounds that it executed the plaintiff’s orders accurately (and thus did not breach the contract), and in any event, the plaintiff breached his contractual obligation to contact Schwab after he learned about the problems with his orders. The court grants summary judgment: the plaintiff knew there were issues and did not contact Schwab. The undisputed facts show his lack of performance, and there is no genuine issue of material fact that his non-performance was excused. Schwab is a registered broker-dealer with the U.S. Securities and Exchange Commission and offers investment services, including online brokerage accounts that allow retail customers to buy and sell stock. It is a member of the Financial Industry Regulatory Authority, Inc. (FINRA).1 The plaintiff is a retail customer who used Schwab’s online trading platform, which is called StreetSmart Edge, to buy and sell stock.2 Investors typically purchase shares in a company’s stock, hoping that the stock price will go up so that the stock can be sold for a profit. This is known as a long position. But investors willing to take a different risk can short a stock by borrowing stock shares and selling them, betting that the stock price will fall and that the investor will be able to buy the stock later at a lower price (and retire the borrowed obligation at a profit). An example: an investor borrows 100 shares of stock, sells them for $15 per share (expecting that the share price will fall), the price falls to $10 per share, and the investor buys 100 shares at $10 per share and closes the short position at a profit. Schwab makes money from transactions, including interest on money borrowed on margin and on the price of the borrowed stock.3 Investors can also take a “boxed” position, which involves holding long and short positions at the same time. This is a neutral position because the long and short positions cancel each other out. An investor can create a boxed position by holding a long position and selling short the same security (rather than simply selling the long position). Conversely, the investor can do the same by holding stock short and purchasing the stock long without closing the short position. StreetSmart Edge allows customers to enter into boxed positions.4
1 First Am. Compl. – ECF No. 36 at 2 (¶ 1), 5 (¶ 13). Citations refer to material in the Electronic Case File (ECF); pinpoint citations are to the ECF-generated page numbers at the top of documents. The order cites the complaint only to the extent that Schwab does. 2 Id. at 2 (¶ 1), 3–4 (¶ 7). 3 Id. at 6–8 (¶¶ 20–25, 27). 4 The parties’ agreement requires Schwab to “act as [the plaintiff’s] broker to purchase and sell securities for [his] Account and on [his] instructions.” Schwab “may be liable” if it “do[es] not complete a transition to or from [the plaintiff’s account] on time or in the correct amount.”5 As part of his account-application process, the plaintiff “[a]ffirm[ed] that [he] ha[d] received and read the Account Agreement and underst[ood] that it is a legally binding agreement the equivalent of a binding contract.”6 The agreement required the plaintiff to notify Schwab immediately if he “fails to receive a message that an order [he] initiated through the services has been received or executed,” “fail[s] to receive an accurate written confirmation of an order or its execution,” or “[r]eceives confirmation of an order that [he] did not place.” It required him to “notify Schwab immediately if [he] become[s] aware of . . . [a]ny failure by [him] to receive a message that an order initiated by [him] through the Electronic Services has been received and/or executed through the Electronic Services.” It required him to call a Schwab representative if he “wish[es] to change or cancel a market order.” He acknowledged that “attempting to cancel or replace or change a market order through the Electronic Services can result in the execution of duplicate orders, which ultimately are [his] responsibility.”7 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.8 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.9
5 Agreement, Ex. 1 to First Am. Compl. – ECF No. 36-1 at 19, 32. 6 Appl., Ex. 6 to Powers Decl. – ECF No. 79-7 at 6. 7 Agreement, Ex. 1 to First Am. Compl. – ECF No. 36-1 at 48, 74–75. 8 Wright Dep., Ex. 2 to Powers Decl. – ECF No. 78-3 at 17–18 (pp. 55:2–56:12). 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.10 “Order Verification” was enabled on his account.11 It allows users to review and confirm the details of any trade before placing an order.12 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.13 (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.14 One minute later, at 3:22:58 p.m., the plaintiff entered a buy order for 6,300 shares of Royal Caribbean.15 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. 16 Because both 6,300 share orders were executed as type 6 transactions, the plaintiff had a total long position in Royal Caribbean assigned as a “type 6” transaction. This is because by entering
Free access — add to your briefcase to read the full text and ask questions with AI
San Francisco Division ROBERT WRIGHT, on behalf of himself Case No. 20-cv-05281-LB and all others similarly situated, ORDER GRANTING MOTION FOR Plaintiff, SUMMARY JUDGMENT v. Re: ECF No. 78 CHARLES SCHWAB & CO., INC., Defendant. This is a putative class action challenging an alleged bug in Charles Schwab’s online trading platform for stock transactions. The named plaintiff tried to close a short position in Royal Caribbean stock but placed duplicate orders that purchased shares without closing the short position. As a result, he lost $10,000. He sued Schwab for breach of the brokerage agreement. Schwab moved for summary judgment on the grounds that it executed the plaintiff’s orders accurately (and thus did not breach the contract), and in any event, the plaintiff breached his contractual obligation to contact Schwab after he learned about the problems with his orders. The court grants summary judgment: the plaintiff knew there were issues and did not contact Schwab. The undisputed facts show his lack of performance, and there is no genuine issue of material fact that his non-performance was excused. Schwab is a registered broker-dealer with the U.S. Securities and Exchange Commission and offers investment services, including online brokerage accounts that allow retail customers to buy and sell stock. It is a member of the Financial Industry Regulatory Authority, Inc. (FINRA).1 The plaintiff is a retail customer who used Schwab’s online trading platform, which is called StreetSmart Edge, to buy and sell stock.2 Investors typically purchase shares in a company’s stock, hoping that the stock price will go up so that the stock can be sold for a profit. This is known as a long position. But investors willing to take a different risk can short a stock by borrowing stock shares and selling them, betting that the stock price will fall and that the investor will be able to buy the stock later at a lower price (and retire the borrowed obligation at a profit). An example: an investor borrows 100 shares of stock, sells them for $15 per share (expecting that the share price will fall), the price falls to $10 per share, and the investor buys 100 shares at $10 per share and closes the short position at a profit. Schwab makes money from transactions, including interest on money borrowed on margin and on the price of the borrowed stock.3 Investors can also take a “boxed” position, which involves holding long and short positions at the same time. This is a neutral position because the long and short positions cancel each other out. An investor can create a boxed position by holding a long position and selling short the same security (rather than simply selling the long position). Conversely, the investor can do the same by holding stock short and purchasing the stock long without closing the short position. StreetSmart Edge allows customers to enter into boxed positions.4
1 First Am. Compl. – ECF No. 36 at 2 (¶ 1), 5 (¶ 13). Citations refer to material in the Electronic Case File (ECF); pinpoint citations are to the ECF-generated page numbers at the top of documents. The order cites the complaint only to the extent that Schwab does. 2 Id. at 2 (¶ 1), 3–4 (¶ 7). 3 Id. at 6–8 (¶¶ 20–25, 27). 4 The parties’ agreement requires Schwab to “act as [the plaintiff’s] broker to purchase and sell securities for [his] Account and on [his] instructions.” Schwab “may be liable” if it “do[es] not complete a transition to or from [the plaintiff’s account] on time or in the correct amount.”5 As part of his account-application process, the plaintiff “[a]ffirm[ed] that [he] ha[d] received and read the Account Agreement and underst[ood] that it is a legally binding agreement the equivalent of a binding contract.”6 The agreement required the plaintiff to notify Schwab immediately if he “fails to receive a message that an order [he] initiated through the services has been received or executed,” “fail[s] to receive an accurate written confirmation of an order or its execution,” or “[r]eceives confirmation of an order that [he] did not place.” It required him to “notify Schwab immediately if [he] become[s] aware of . . . [a]ny failure by [him] to receive a message that an order initiated by [him] through the Electronic Services has been received and/or executed through the Electronic Services.” It required him to call a Schwab representative if he “wish[es] to change or cancel a market order.” He acknowledged that “attempting to cancel or replace or change a market order through the Electronic Services can result in the execution of duplicate orders, which ultimately are [his] responsibility.”7 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.8 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.9
5 Agreement, Ex. 1 to First Am. Compl. – ECF No. 36-1 at 19, 32. 6 Appl., Ex. 6 to Powers Decl. – ECF No. 79-7 at 6. 7 Agreement, Ex. 1 to First Am. Compl. – ECF No. 36-1 at 48, 74–75. 8 Wright Dep., Ex. 2 to Powers Decl. – ECF No. 78-3 at 17–18 (pp. 55:2–56:12). 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.10 “Order Verification” was enabled on his account.11 It allows users to review and confirm the details of any trade before placing an order.12 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.13 (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.14 One minute later, at 3:22:58 p.m., the plaintiff entered a buy order for 6,300 shares of Royal Caribbean.15 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. 16 Because both 6,300 share orders were executed as type 6 transactions, the plaintiff had a total long position in Royal Caribbean assigned as a “type 6” transaction. This is because by entering
10 Trades, Ex. 8 to Powers Decl. – ECF No. 78-9; Wright Dep., Ex. 2 to Powers Decl. – ECF No. 78-3 at 22–24 (pp. 73:4–75:19). 11 Shashidhar Decl. – ECF No. 78-10 at 3–4 (¶ 4). 12 McCoy Decl., Ex. 1 to Powers Decl. – ECF No. 78-2 at 4 (¶ 5). 13 O’Reardon Decl. – ECF No. 87-5 at 2 (¶ 3). 14 McCoy Decl. – ECF No. 78-2 at 4–5 (¶ 10). 15 Id. at 5 (¶ 12). 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.17 Going “long” in type 6 is “illogical” because type 6 is intended for short positions.18 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.19 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).21 This means that the plaintiff was in a boxed, or neutral, position.22 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).23 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 17 Id. (¶¶ 13–14). 18 Box Position Proposed Solutions, Ex. 42 to O’Reardon Decl. – ECF No. 87-8 at 2. 19 McCoy Decl. – ECF No. 78-2 at 5–6 (¶ 15). 20 Id. at 6 (¶ 16). 21 Id. (¶ 17). 22 Powers Decl., Ex. 3 – ECF No. 79-4 at 2; McCoy Decl. – ECF No. 78-2 at 6 (¶ 18). short position in red text (S:6300). The plaintiff selected “Buy” and entered a quantity of 6,300.24 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.”25 According to the clickstream data collected from the plaintiff’s keystrokes on the Schwab platform, he clicked “Place Order” directly below the messages.26 The plaintiff does not recall seeing the messages.27 At his deposition, the plaintiff said that the button he normally uses to close his short positions — the “close positions” button — was unexpectedly unavailable on his screen.28 He did not contact Schwab and instead manually entered a buy order, with the expectation that it would close his short position.29 This added to his long position and did not eliminate the 6,300 share short position.30 At 3:45 p.m., the plaintiff returned to the “Trade” tab. The screen displayed his current positions: L:12600 in green and S:6300 in red. He selected “Buy,” entered a quantity of 12,600, and clicked “Review Order.” As with earlier trades, the Order Verification screen informed him that he was attempting to “Buy 12,600 shares of RCL.” The screen displayed three messages: (1) “This order for RCL covers the short position, leaving you with a total long RCL position of 18900 shares;” (2) “Please review Order Status to prevent a duplication of orders;” and (3) “This account currently holds 6300 shares of RCL.” He then clicked “Place Order” to dismiss those screens.31 He 24 Id. at 6–8 (¶¶ 18, 20, 23). 25 Id. at 7–8 (¶ 21). 26 Id. at 8 (¶¶ 22–23). 27 Wright Dep., Ex. 51 to O’Reardon Decl. – ECF No. 87-9 at 36 (p. 144:4–11), 38 (p. 147:4–18). 28 Wright Dep., Ex. 2 to Powers Decl. – ECF No. 78-3 at 34–36 (pp. 90:7–92:21). 29 Id. at 41 (p. 115:5–9). 30 McCoy Decl. – ECF No. 78-2 at 9 (¶ 24). again does not recall seeing the messages.32 Following this trade, he had 6,300 shares of Royal Caribbean short and 25,200 shares long.33 At 3:48 p.m., the plaintiff went to his Account Details page and right-clicked on his 6,300 share short position. A dropdown menu appeared, and he clicked the first option: “Close RCL [Royal Caribbean].” A pop-up button appeared to “Buy RCL.” He clicked “Review Order” (as before), and the Order Verification screen informed him that he was attempting to “Buy 6,300 Shares of RCL,” asking him to “Please review Order Status to prevent a duplication of orders,” and indicating that “This account currently holds 18900 shares of RCL.”34 He then clicked “Place Order” (and does not recall seeing the messages).35 He repeated the process at 3:48:41 p.m. to buy 6,300 shares, with the same process and same messages (albeit informing him that the “account currently holds 25200 shares of RCL.”36 At this point, he had a net long position of 31,500 shares of Royal Caribbean stock (37,800 shares long and 6,300 short). 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.38 The plaintiff then sold his 31,500 shares of RCL in after-hours trading, allegedly for a loss of $10,000.39 32 Wright Dep., Ex. 51 to O’Reardon Decl. – ECF No. 87-9 at 26 (p. 119:13–20). 33 McCoy Decl. – ECF No. 78-2 at 11 (¶ 28). 34 Id. at 11–12 (¶¶ 29–31). 35 Id. at 13 (¶ 32); Wright Dep., Ex. 51 to O’Reardon Decl. – ECF No. 87-9 at 25 (p. 118:5–20). 36 McCoy Decl. – ECF No. 78-2 at 13–15 (¶¶ 33–36). 37 Chat History, Ex. 10 to Powers Decl. – ECF No. 79-10 at 5. 38 Id. at 6. Schwab deposed the plaintiff on September 14, 2022. When asked why he did not contact Schwab “the first time it didn’t work,” the plaintiff answered: Q. The first time it didn’t work why didn’t you initiate a contact with Schwab? A. Because I had been using the platform and I had been trading significant amounts, amount – not dollar amounts, but I had been making so many trades on the platform that the thing worked. It always worked up until that point in time. So I had no reason to think that it was now behaving differently than it had for the thousands of trades prior. And I’m sitting here thinking maybe it’s something that I did, or maybe there is an Internet issue, maybe they’re just not getting the order so let me try it again. Oh, that still didn’t work. Well, maybe it’s me typing something into the window wrong. Let me just go to the ripcord, to close, the right click close, which is me not dictating buy or sell, its telling Schwab just go to zero, and I did that multiple times and it still didn’t work. And at that point is when in my head I’m like something is not working here, and the second I realized something is not working here, I went and chatted in, but I had no reason to think that a platform that had worked, I don't want to the say flawlessly, but that had worked close to flawlessly up to that point in time, suddenly just stopped working properly or the way it had. There was a fact pattern of this thing working.40 The court held a hearing on the summary-judgment motion on December 22, 2022. All parties consented to magistrate jurisdiction.41 The court must grant summary judgment where there is no genuine dispute as to any material fact and the moving party is entitled to judgment as a matter of law. Fed. R. Civ. P. 56(a); Anderson v. Liberty Lobby, Inc., 477 U.S. 242, 247–48 (1986). Material facts are those that may affect the outcome of the case. Anderson, 477 U.S. at 248. A dispute about a material fact is genuine if there is sufficient evidence for a reasonable jury to return a verdict for the nonmoving party. Id. at 248–49. The party moving for summary judgment has the initial burden of informing the court of the basis for the motion and identifying portions of the pleadings, depositions, answers to interrogatories, admissions, or affidavits that demonstrate the absence of a triable issue of material
40 Wright Dep., Ex. 51 to O’Reardon Decl. – ECF No. 87-9 at 42–43 (pp. 157:6–158:12). fact. Celotex Corp. v. Catrett, 477 U.S. 317, 322–23 (1986). To meet its burden, “the moving party must either produce evidence negating an essential element of the nonmoving party’s claim or defense or show that the nonmoving party does not have enough evidence of an essential element to carry its ultimate burden of persuasion at trial.” Nissan Fire & Marine Ins. Co. v. Fritz Cos., 210 F.3d 1099, 1102 (9th Cir. 2000); see Devereaux v. Abbey, 263 F.3d 1070, 1076 (9th Cir. 2001) (“When the nonmoving party has the burden of proof at trial, the moving party need only point out ‘that there is an absence of evidence to support the nonmoving party’s case.’”) (quoting Celotex, 477 U.S. at 325). “Where the moving party will have the burden of proof on an issue at trial, the movant must affirmatively demonstrate that no reasonable trier of fact could find other than for the moving party.” Soremekun v. Thrifty Payless, Inc., 509 F.3d 978, 984 (9th Cir. 2007). If the moving party meets its initial burden, then the burden shifts to the nonmoving party to produce evidence supporting its claims or defenses. Nissan Fire & Marine Ins. Co., 210 F.3d at 1103. “Once the moving party carries its initial burden, the adverse party may not rest upon the mere allegations or denials of the adverse party’s pleading, but must provide affidavits or other sources of evidence that set forth specific facts showing that there is a genuine issue for trial.” Devereaux, 263 F.3d at 1076 (cleaned up). If the non-moving party does not produce evidence to show a genuine issue of material fact, then the moving party is entitled to summary judgment. Celotex, 477 U.S. at 322–23. In ruling on a motion for summary judgment, the court does not make credibility determinations or weigh conflicting evidence. Instead, it views the evidence in the light most favorable to the non-moving party and draws all factual inferences in the non-moving party’s favor. E.g., Matsushita Elec. Indus. Co., Ltd. v. Zenith Radio Corp., 475 U.S. 574, 587–88 (1986); Ting v. United States, 927 F.2d 1504, 1509 (9th Cir. 1991). Schwab contends that the plaintiff did not plead a breach by Schwab, which executed all of his orders accurately, and in any event the plaintiff did not comply with provisions of the agreement that required him to notify Schwab and instead continued to place orders.42 The elements of a breach of contract claim under California law are: “(1) the existence of the contract; (2) [the] plaintiff’s performance or excuse for nonperformance; (3) [the] defendant’s breach; and (4) the resulting damages to the plaintiff.” Oasis W. Realty, LLC v. Goldman, 51 Cal. 4th 811, 821 (2011). When a party does not perform under the contract, and provides no excuse for non-performance, then the party cannot establish a claim for breach of contract. Brown v. Dillard’s, Inc., 430 F.3d 1004, 1010 (9th Cir. 2005). A court may grant summary judgment if there is no genuine dispute that the complaining party failed to perform. eOnline Global, Inc. v. Google LLC, 387 F. Supp. 3d 980, 986 (N.D. Cal. 2019). The plaintiff does not dispute that his agreement required that he notify Schwab when he learned that there was a problem with his trades.43 At the time of his first trade, the “close positions” button was unexpectedly unavailable.44 He then tried to cover the short position by a buy order.45 He still saw the short position and believed his order had not been processed: he testified that he was “sitting here thinking maybe it’s something that I did, or maybe there is an Internet issue, maybe they’re just not getting the order so let me try again. Oh, that still didn’t work. Well, maybe it’s me typing something into the window wrong.”46 At this point, he knew that there was a problem with the trades and was required to notify Schwab. He knew that he was responsible for duplicate orders if did not do so. But he continued placing orders. Courts enforce notice provisions in consumer contracts.
42 Mot. – ECF No. 79–3 at 20–26. 43 Opp’n – ECF No. 87–4 at 27. 44 Wright Dep., Ex. 2 to Powers Decl. – ECF No. 78–3 at 34–36 (pp. 90:7–92:21). 45 Id. at 41 (p. 115:5–9). In Hilario v. Allstate Ins. Co., for example, the plaintiff contended that her insurance company used an incorrect formula to calculate her home’s total square footage, which raised her premiums, and sued it for breach of contract. No. 20-cv-05459-WHO, 2020 WL 7643233, at *3 (N.D. Cal. Dec. 23, 2020). The insurance contract required her to notify the insurance company of any errors in the policy declaration before suing. Id. Because she did not notify the insurance company, the district court dismissed the claim. Id. at *4. In Crockrom v. Bank of Am., N.A., the plaintiff sued his bank for breach of contract because it allegedly improperly charged overdraft fees, in violation of the account agreement. No. 20-4197- cv, 2021 WL 5751461, at *1 (2d Cir. Dec. 3, 2021). The account agreement provision governing electronic banking services required account holders to notify the bank within sixty days if they thought their statement was wrong or if they needed more information about a transfer. Id. at *2. The Second Circuit held that the plaintiff’s failure to notify his Bank barred his lawsuit. Id. The plaintiff distinguishes Hilario and Crockrom on the ground that the plaintiffs there provided no notice at all. But the 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. A final issue is that the plaintiff objected to some paragraphs in the McCoy declaration on the ground that they are not facts.47 The court considers the declaration only to the extent that it describes what was displayed to the plaintiff based on his keystroke data, which he does not challenge. That data show conclusively that the plaintiff clicked on the buttons and was presented with the messages recounted in this order. 2 The court grants the defendant’s motion for summary judgment. This disposes of ECF No. 78. 4 Dated: December 31, 2022 LAE 5 LAUREL BEELER 6 United States Magistrate Judge 7 8 9 10 1] as 12
13 «14
Oo Z 18 19 20 21 22 23 24 25 26 27 28