*1004Opinion
FYBEL, J.Introduction
Between February 2008 and January 2009, Apex LLC (Apex), a commodities merchandiser, entered into 12 contracts to sell a total of about 19,000 tons of cottonseed to Sharing World, Inc., doing business as Felix & Sons, Inc. (collectively, Sharing World), a broker/trader in animal feed. Apex later sued Sharing World, alleging it failed to accept and pay for 14,625 tons of the cottonseed, which were to be delivered between October 2008 and August 2009. As damages, Apex sought the difference between the contract prices and the price at which Apex resold the cottonseed in August 2009.
After a bench trial, the trial court found there was no mutual assent due to lack of certain contract terms, the contracts were subject to an oral condition precedent that was not fulfilled, Apex did not resell the cottonseed in a commercially reasonable manner, and Apex could not recover damages because it did not present evidence of its cost basis in the cottonseed. Judgment was entered in favor of Sharing World.
Apex appeals from the judgment, and we reverse.1 The trial court’s finding of lack of mutual assent is erroneous under the California Uniform Commercial Code, which provides “gap fillers” to cover the terms left open by the parties’ oral agreement. In addition, Apex confirmed each sale of cottonseed with a confirmatory writing, called a sales contract. Although Sharing World did not sign any of these sales contracts, the requirement of a writing under the California Uniform Commercial Code was satisfied because Apex and Sharing World are both merchants and Sharing World never objected to any of the sales contracts. The condition precedent asserted by Sharing World was unenforceable as a matter of law because it was inconsistent with the parties’ final expression of their agreement on quantity and price reflected in the sales contracts and because the parties certainly would have included the condition precedent in the writing if they intended it to be part of their agreement.
Substantial evidence did not support the trial court’s finding that Apex failed to resell the cottonseed in a commercially reasonable manner. Between *1005October 2008, when Sharing World first refused to accept tender of the cottonseed, and August 2009, when Apex resold the balance of the contracts, Apex engaged in extensive negotiations with Sharing World to resolve the matter, offered to rewrite the contracts, and several times offered to resell the cottonseed. The trial court’s finding that Apex intentionally and unreasonably waited for the price of cottonseed to drop before reselling is not a reasonable inference from this evidence, particularly because the contracts called for delivery of cottonseed over a period of time right up to the date of resale. Whether Apex unreasonably delayed in reselling the cottonseed must be determined on a contract-by-contract, shipment-by-shipment basis, which the trial court did not do. We remand only for further proceedings on that issue.
Finally, the trial court’s finding on the issue of damages is erroneous under the California Uniform Commercial Code. The trial court found that Apex failed to present evidence of its cost basis in the resold cottonseed, yet, under the relevant measures of a seller’s damages under the code, the seller is not required to present evidence of its cost basis in the goods.
Sharing World appeals from a portion of the statement of decision and judgment denying it recovery of attorney fees. However, after Sharing World filed its notice of appeal, the trial court granted its motion for attorney fees. In any case, we reverse the order granting Sharing World’s motion for attorney fees because we are reversing the underlying judgment.
Facts
Once cotton is harvested, cotton gins are used to separate the cottonseed from the lint, and the cottonseed is sold for cattle feed and other uses. Apex, a commodities merchandiser, purchases large quantities of cottonseed and resells the seed to buyers around the world. Between 2002 and 2008, Apex purchased between 250,000 and 400,000 tons of cottonseed each year. At any one time, Apex’s position in the cottonseed market might be “long” (Apex bought more than it sold) or “short” (Apex sold more than it bought). Apex takes title and possession of the cottonseed it purchases and stores the cottonseed while finding and entering into contracts with buyers.
Sharing World purchases feed exports, including cottonseed, and resells them to customers (primarily dairy farmers) in South Korea. Sharing World, Inc., also does business as Felix & Sons, Inc., which changed its name in 2007 to Korusfood.com. Kyung Sik Seo (Seo), also known as Felix, is the president of Sharing World, Inc., and Felix & Sons, Inc.
*1006Once a customer places an order with Sharing World, it finds a feed seller to fill the order. In 2002, Seo started purchasing cottonseed from Apex on behalf of Sharing World. He placed orders with Apex through James Patterson, a commodities broker and one of Apex’s founders. On receiving an order from a customer in South Korea, Seo would contact Patterson and ask him to quote a price for a specified quantity of cottonseed for delivery within a specified timeframe. Patterson would make Seo an offer and give him 24 hours to confirm acceptance. Seo reached an agreement with his South Korean customer before confirming acceptance and reaching an agreement with Apex. Sometimes Seo would make counteroffers. If Seo confirmed acceptance of the offer, Patterson would generate a written sales contract stating the quantity of cottonseed purchased in tons, the price, and the shipment period.
Each sales contract incorporated the rules of the National Cottonseed Products Association, Inc. (NCPA), and had various terms on the back side. Sharing World, and other Apex customers, normally did not sign the contract because, under the NCPA rules, the contract would be considered binding if the customer did not object to it within four days.
At the time for shipment, Apex would transport the cottonseed in containers to the designated port for shipment according to the shipping instructions. While the containers were at port, Apex would generate a settlement sheet and an invoice with the weight and settlement amount.
In addition to the sales contracts, Apex had Sharing World submit credit applications every so often beginning in September 2002, when it submitted a credit application under the name Felix & Sons, Inc. Apex accepted the application and set a $10,000 credit limit, which was increased over the years. In 2008, Sharing World submitted an application asking for a $500,000 credit limit. Apex accepted the application but set the credit limit at $100,000.
Patterson testified that he discussed with Seo the manner in which Sharing World conducted its business and that he knew Sharing World would not ship to customers in South Korea without letters of credit from them. Patterson testified: “We had discussions many . . . times about his L/C’s, but I didn’t sell to his customer .... I only sell to [Seo]. What he does with it, I don’t care. It doesn’t matter to me.” Patterson testified that Seo never told him, “I don’t have contracts with you until I tell you to ship.”
*1007Between February 13, 2008, and January 16, 2009, Apex and Sharing World entered into 12 contracts for the purchase of a total of 19,375 tons of cottonseed. In each case, Apex offered to sell Sharing World a certain quantity of cottonseed at a particular price for shipment within an identified period of time. Sharing World accepted each offer, after which Apex sent Sharing World a written sales contract. Each of the 12 contracts had a different quantity and price, ranging from $230 to $334 per ton, and a different shipment time period between October 2008 and August 2009. Although Sharing World did not sign any of the 12 written sales contracts, it voiced no objections to their terms.
The cottonseed market became quite volatile during the middle months of 2008, when cottonseed traded at record highs reaching $400 per ton, and thereafter dropped precipitously over the next four to five months. The drop in price of cottonseed made the 12 contracts less attractive to Sharing World’s customers. Sharing World declined to accept delivery of a total of 14,625 tons out of the 19,375 tons of the cottonseed covered by the 12 contracts because it had not received letters of credit from its South Korean customers. Seo testified at trial he had no liability to accept delivery from and pay Apex for cottonseed until he had issued a shipping number to Apex for customers in South Korea, and he would not issue a shipping number until he received a letter of credit from Sharing World’s customer. Starting in November 2008, Apex elected to extend the shipping dates and, over the next several months, made offers to “roll” the contracts into future periods or “wash”2 them.
Ultimately, on August 14, 2009, Patterson notified Seo by e-mail, pursuant to NCPA Trading Rules, rules 50 and 51, that Apex was electing to wash the portion of the 12 contracts that had been due to ship by that day at the day’s market price of $200 per ton. Six days later, Seo notified Apex that he did not accept the NCPA Trading Rules and rejected the wash. On September 1, 2009, Patterson notified Seo by e-mail, pursuant to NCPA Trading Rules, rules 50 and 51, that Apex was electing to wash the remaining 40 unshipped containers of cottonseed at $200 per ton. The next day, Seo responded by e-mail, reiterating he did not accept the NCPA Trading Rules and rejecting the wash.
The difference between the contract prices for the cottonseed and the amount Apex received in washing the unshipped cottonseed was $1,778,500.
*1008Proceedings in the Trial Court
Apex’s first amended complaint against Sharing World asserted causes of action for breach of written contract, breach of oral contract, account stated, open book account, and breach of third party beneficiary contract. A bench trial was conducted over two days in March 2011.
The trial court found in favor of Sharing World, and issued a statement of decision making five important findings, as follows:
1. The agreements for the sale of cottonseed were subject to the condition precedent that “Defendants had no obligation to take delivery of cottonseed unless and until the Korean customers on whose behalf Defendant was acting issued a letter of credit.”
2. There was no mutual assent between the parties because they failed to agree to essential contract terms, including the applicability of the NCPA Trading Rules, the time of performance, and payment conditions.
3. If the NCPA Trading Rules did apply to the transactions, Apex violated rule 50 by failing promptly to elect its remedy. “[Djuring the time of this delay,” the trial court found, “Apex watched and watched as the price of cottonseed declined—thereby failing to mitigate its alleged damages.”
4. Apex failed to establish the basis for its calculation of damages.
5. Sharing World rejected Apex’s claims when Apex notified it of its intent to wash the contracts, and “[a]t no time have Defendants accepted or acquiesced in any claim Apex has directed to them.”
Apex filed objections to the statement of decision. The trial court did not rule on them.
The statement of decision also served as the court’s judgment. After entry of judgment, Sharing World moved for an award of attorney fees. The trial court granted the motion and awarded Sharing World $107,560 in attorney fees. Between entry of judgment and entry of the order granting Sharing World’s motion for attorney fees, both Apex and Sharing World appealed from the judgment.
*1009Discussion: Apex’s Appeal
I.
Introduction and Standards of Review
Apex challenges the trial court’s first four findings, i.e.—(1) a condition precedent to the formation of contracts for the sale of cottonseed had not occurred, (2) lack of mutual assent, (3) Apex’s failure to mitigate damages in violation of NCPA Trading Rules, rule 50, and (4) Apex’s failure to establish the basis for its damages. We review the trial court’s express factual findings, and any implied findings, for substantial evidence. (Fladeboe v. American Isuzu Motors Inc. (2007) 150 Cal.App.4th 42, 59 [58 Cal.Rptr.3d 225]; SFPP v. Burlington Northern & Santa Fe Ry. Co. (2004) 121 Cal.App.4th 452, 462 [17 Cal.Rptr.3d 96].)
We review legal issues, such as statutory interpretation, under a de novo or independent standard. (People ex rel. Lockyer v. Shamrock Foods Co. (2000) 24 Cal.4th 415, 432 [101 Cal.Rptr.2d 200, 11 P.3d 956]; Ghirardo v. Antonioli (1994) 8 Cal.4th 791, 801 [35 Cal.Rptr.2d 418, 883 P.2d 960].) “In theory, a determination is one of ultimate fact if it can be reached by logical reasoning from the evidence, but one of law if it can be reached only by the application of legal principles.” (Board of Education v. Jack M. (1977) 19 Cal.3d 691, 698, fn. 3 [139 Cal.Rptr. 700, 566 P.2d 602].)
A mixed question of law and fact involves “the application of the rule to the facts and the consequent determination whether the rule is satisfied.” (Crocker National Bank v. City and County of San Francisco (1989) 49 Cal.3d 881, 888 [264 Cal.Rptr. 139, 782 P.2d 278].) “In deciding a mixed question, the trial court must; (1) establish the historical facts; (2) select the applicable law; and (3) apply the law to the facts.” (CUNA Mutual Life Ins. Co. v. Los Angeles County Metropolitan Transportation Authority (2003) 108 Cal.App.4th 382, 391 [133 Cal.Rptr.2d 470].) The findings of historical fact are reviewed for substantial evidence, and the selection of the applicable law (the legal issues) is reviewed de novo. (Ghirardo v. Antonioli, supra, 8 Cal.4th at p. 800.) The next step is applying the law to the facts. If application of the law to the facts is primarily factual in nature, the deferential substantial evidence standard applies; if application of the law to the facts is primarily legal in nature, the de novo standard applies. (Id. at pp. 800-801.)
*1010II.
The Trial Court’s Findings Are Legally Erroneous or Unsupported by Substantial Evidence.
A. Mutual Assent
1. The Trial Court’s Finding
The trial court found the parties failed to agree upon essential terms to the contracts for the sale of cottonseed; specifically, the court found: “Mr. Patterson testified that he and Mr. Seo would exchange communications back and forth discussing proposed terms of sale for cottonseed, but that no signed agreement resulted. Rather, Mr. Patterson would send to Mr. Seo a ‘sales contract’ containing many terms and conditions which were never discussed. Mr. Seo testified that he never accepted the terms and conditions of the proposed sales contracts from approximately 2004 onward. ...[][] The parties also discussed the terms and conditions upon which any cottonseed would be delivered to Defendants. Notwithstanding the testimony that Apex knew that it could not deliver cottonseed to Defendants unless and until Defendant’s Korean customers issued letters of credit, Apex claimed that it was still entitled to invoice Defendant for the undelivered cottonseed. Defendant contended that no such agreement or understanding was reached. The essential terms of time of performance and payment conditions were not agreed upon. These issues did not present themselves until the condition precedent to these transactions—letters of credit from Korean customers—failed to occur. Once the issue arose, it became clear through the testimony and evidence presented at trial that the parties failed to agree upon these essential terms.”
2. California Uniform Commercial Code Gap Fillers Supply Missing Terms
The trial court’s finding of lack of mutual assent was legally erroneous. Although mutual assent is necessary for contract formation (Chicago Title Ins. Co. v. AMZ Ins. Services, Inc. (2010) 188 Cal.App.4th 401, 422 [115 Cal.Rptr.3d 707]), the trial court erred by failing to consider mutual assent under division 2 of the California Uniform Commercial Code.
The transactions in issue involved goods (cottonseed) and therefore were governed by division 2 of the California Uniform Commercial Code. “Unless the context otherwise requires, this division applies to transactions in goods . . . .” (Cal. U. Com. Code, § 2102.) The term “goods” means “all things . . . which are movable at the time of identification to the contract for *1011sale other than the money in which the price is to be paid, investment securities . . . and things in action.” (Id., § 2105.)
A contract for the sale of goods may be made “in any manner sufficient to show agreement, including conduct by both parties which recognizes the existence of such a contract.” (Cal. U. Com. Code, § 2204, subd. (1).) An offer must be construed as “inviting acceptance in any manner and by any medium reasonable in the circumstances.” (Id., § 2206, subd. (l)(a); see also C9 Ventures v. SVC-West, L.P. (2012) 202 Cal.App.4th 1483, 1492-1493 [136 Cal.Rptr.3d 550].) Although one or more terms are left open, a contract for the sale of goods does not fail for indefiniteness if the parties intended to make a contract and there is a reasonably certain basis for providing an appropriate remedy. (Cal. U. Com. Code, § 2204, subd. (3).)
It is clear from the evidence that the parties intended to enter into contracts for the sale of cottonseed. In each of the 12 contracts in issue, Patterson made an oral offer to Seo to sell cottonseed to Sharing World in a certain quantity, at a certain price, and for delivery during an identified period of time. Seo accepted each offer, and, in each case, Patterson sent to Seo a written sales contract confirming the agreement. Under these facts, 12 contracts were formed. The parties engaged in conduct recognizing the existence of the contracts: Apex shipped the goods to port for acceptance by Sharing World, which accepted and paid for much of the cottonseed covered by the contracts.
The trial court found Sharing World and Apex did not agree in their communications on time of performance and payment conditions. The court described those terms as “essential.” But the Uniform Commercial Code provides gap fillers to cover time and place of payment and delivery when those terms are not expressed in the parties’ agreement. (1 White & Summers, Uniform Commercial Code (5th ed. 2006) §§ 3-5, 3-7.)
California Uniform Commercial Code section 2310, subdivision (a) is the gap filler for time and place of payment. It provides, in relevant part: “Payment is due at the time and place at which the buyer is to receive the goods even though the place of shipment is the place of delivery ....” (Cal. U. Com. Code, § 2310, subd. (a).)
California Uniform Commercial Code sections 2308, 2309, 2503, subdivision (1), and 2504 are the gap fillers for place of delivery and manner of tender. “The contract of the parties may be wholly silent on the place for delivery. Section 2-308 generally fills this gap with the seller’s place of business as the place for delivery.” (1 White & Summers, Uniform Commercial Code, supra, § 3-5, p. 207.) When the seller is required to send the goods to the buyer, but the contract does not require delivery to a particular *1012destination, section 2504 fills the gap by requiring the seller to put the goods in possession of a carrier and make a contract for their transportation as may be reasonable and promptly notify the buyer of the shipment. (Cal. U. Com. Code, § 2504, subds. (a), (c).) Such a “shipment contract” is presumed if the contract is silent. (1 White & Summers, Uniform Commercial Code, supra, § 3-5, p. 208.) Official comment 5 to Uniform Commercial Code section 2-503 states; “[U]nder this Article the ‘shipment’ contract is regarded as the normal one and the ‘destination’ contract as the variant type. The seller is not obligated to deliver at a named destination and bear the concurrent risk of loss until arrival, unless he has specifically agreed so to deliver or the commercial understanding of the terms used by the parties contemplates such delivery.”
Under California Uniform Commercial Code section 2309, subdivision (1), the time for delivery of goods shall be a “reasonable time” unless the parties agree otherwise. California Uniform Commercial Code section 2503, subdivision (1) sets forth the manner, time, and place for tender if the parties do not agree otherwise.
Here, the California Uniform Commercial Code gap fillers meant that, in the absence of express terms otherwise, the place of delivery for the cottonseed would have been Apex’s place of business, the time for delivery would have been a reasonable time, and payment would have been due from Sharing World at the time and place of delivery.3 The agreements between Apex and Sharing World therefore did not lack mutual assent for omitting those terms.
3. Written Confirmation of Contract
Under California Uniform Commercial Code section 2201, subdivision (1), a contract for the sale of goods for the price of $500 or more is not enforceable unless memorialized by a “writing sufficient to indicate that a contract for sale has been made between the parties and signed by the party against whom enforcement is sought. . . .” When both parties are merchants, this requirement is satisfied “if within a reasonable time a writing in confirmation of the contract and sufficient against the sender is received and the party receiving it has reason to know its contents . . . unless written notice of objection to its contents is given within 10 days after it is received.” (Cal. U. Com. Code, § 2201, subd. (2).)
“ ‘Merchant’ means a person who deals in goods of the kind or otherwise by his occupation holds himself out as having knowledge or skill peculiar to *1013the practices or goods involved in the transaction or to whom such knowledge or skill may be attributed by his employment of an agent or broker or other intermediary who by his occupation holds himself out as having such knowledge or skill.” (Cal. U. Com. Code, § 2104, subd. (1).) Both Sharing World and Apex are merchants. Sharing World engages in the business of selling animal feed and hay exports to customers in Korea, and Apex is a commodities merchandiser specializing in cottonseed.
The requirement of a writing was satisfied in this case because, within a day of entering into each of the 12 contracts, Apex sent Sharing World a written sales contract (entitled “Sales Contract—Flat”) confirming the terms of the agreement. Each sales contract specified the amount and grade of cottonseed, the price, the shipment period, the shipment mode, and the place of delivery. Each sales contract stated, “Buyer hereby agrees to and confirms the purchase of the above described commodities from APEX subject to the terms and conditions stated on the face and back hereof.” Although Seo signed none of the 12 sales contracts, they satisfied the statute of frauds of California Uniform Commercial Code section 2201 because there is no evidence Seo ever gave “written notice of objection to [their] contents.” (Cal. U. Com. Code, § 2201, subd. (2).)
Each sales contract stated the NCPA Trading Rules governed the transaction. The court found specifically that Seo testified he rejected the NCPA Trading Rules sometime after 2004. As we explain below, this finding is immaterial because Apex complied with both the relevant sections of the California Uniform Commercial Code and the relevant provisions of the NCPA Trading Rules in electing a remedy and reselling the cottonseed.
B. Condition Precedent
1. The Trial Court’s Finding
The trial court found the agreements for the sale of cottonseed included a “condition precedent” that “Defendants had no obligation to take delivery of cottonseed unless and until the Korean customers on whose behalf Defendant was acting issued a letter of credit.” The trial court found: “An important [piece of] evidence presented at trial was Mr. James Patterson’s admission that he knew Defendants would not accept delivery of cottonseed from Plaintiff unless and until its Korean customers first issued a letter of credit to support payment for the cottonseed. Mr. Patterson further testified that in dealing with Defendants, he knew that Defendants were essentially middle men acting as brokers. Mr. Patterson confirmed that Apex would only issue an invoice to Defendant after cottonseed was delivered and loaded on a vessel. Mr. . . . Seo’s testimony confirmed that he told Mr. Patterson that *1014unless and until Defendant’s Korean customers issued a letter of credit, Defendant would not take delivery of cottonseed. Mr. Seo further testified that Defendant’s Korean customers did not issue letters of credit to support payment for the cottonseed that is the subject of Apex’s claims and, therefore, Defendant did not accept delivery of the cottonseed, [f] Mr. Patterson’s testimony, confirmed by the testimony of Mr. Seo, establishes that the parties’ transactions in cottonseed were subject to an agreed condition precedent. That is, Defendants had no obligation to take delivery of cottonseed unless and until the Korean customers on whose behalf Defendant was acting issued a letter of credit. . . . There is no dispute that Defendant’s Korean customers did not issue letters of credit to support shipment of the subject cottonseed. Thus, the agreed condition precedent to any contract that might have existed between Plaintiff and Defendants was not satisfied. As a result, any obligation that might otherwise have existed for Defendant to take delivery of, and pay for, cottonseed did not accrue.”
As we shall explain, the trial court’s finding the sales contracts were subject to a condition precedent was both legally erroneous under the Uniform Commercial Code, and not supported by substantial evidence.
2. Parol Terms
The parties’ agreements for the sale of cottonseed were confirmed by the written sales contracts. California Uniform Commercial Code section 2202 reads: “Terms with respect to which the confirmatory memoranda of the parties agree or which are otherwise set forth in a writing intended by the parties as a final expression of their agreement with respect to such terms as are included therein may not be contradicted by evidence of any prior agreement or of a contemporaneous oral agreement but may be explained or supplemented [f] (a) By course of dealing, course of performance, or usage of trade (Section 1303); and [f] (b) By evidence of consistent additional terms unless the court finds the writing to have been intended also as a complete and exclusive statement of the terms of the agreement.”
The White and Summers treatise explains: “In substance, [California Uniform Commercial Code section 2202] says that if the court finds the writing to have been intended as a complete and exclusive statement of the terms of the agreement, then the writing alone constitutes the contract. ... As a corollary, the rule also says that to the extent the writing incorporates terms the parties agreed on, then the writing controls as to those terms and anything contradictory or inconsistent is of no force or effect.” (1 White & Summers, Uniform Commercial Code, supra, § 2-9, pp. 162-163.)
The condition precedent asserted by Sharing World was not part of any of the oral agreements or a term of the sales contracts confirming them. Whether *1015a writing is intended to be a final expression of the parties’ agreement and a complete and exclusive statement of terms is a legal question. “Code and comments both state that the question of completeness and exclusivity is for the judge.” (1 White & Summers, Uniform Commercial Code, supra, § 2-9, p. 163.) We therefore resolve de novo the issue whether Apex and Sharing World intended the written sales contracts to constitute final expressions of their agreements.4
If the court decides the writing is not complete and exclusive, then the court may admit evidence of consistent additional terms unless the court also determines the alleged extrinsic term, if agreed upon, would certainly have been included in the writing. (1 White & Summers, Uniform Commercial Code, supra, § 2-10, p. 168.) We need not determine whether the sales contracts were intended to be the complete and exclusive expression of the parties’ entire agreement because the alleged condition is inconsistent with the sales agreements and would have been included in the writing if the parties had agreed to it.
Courts have developed two different meanings of the term “inconsistent” under the Uniform Commercial Code. In Hunt Foods & Industries, Inc. v. Doliner (N.Y.App.Div. 1966) 26 A.D.2d 41 [270 N.Y.S.2d 937], the court expressed a narrow view of “inconsistency.” In that case, the court concluded the evidence of an oral condition precedent did not contradict the terms of a written stock option that was unconditional on its face and, therefore, Uniform Commercial Code section 2-202 did not bar admission of the evidence. (Hunt Foods & Industries, Inc. v. Doliner, supra, 270 N.Y.S.2d at p. 940.) This narrow view has been justifiably criticized. (See Luria Brothers & Co. v. Pielet Brothers Scrap Iron & Metal, Inc. (7th Cir. 1979) 600 F.2d 103, 111 (Luria); Southern Concrete Services, Inc. v. Mableton Contractors, Inc. (N.D.Ga. 1975) 407 F.Supp. 581; Alaska Northern Development, Inc. v. Alyeska Pipeline Service Co. (Alaska 1983) 666 P.2d 33, 40; Snyder v. Herbert Greenbaum & Associates, Inc. (1977) 38 Md.App. 144 [380 A.2d 618] (Snyder).) In Snyder, supra, 380 A.2d at page 623, the court defined “inconsistency,” as used in Uniform Commercial Code section 2-202, subdivision (b), as “the absence of reasonable harmony in terms of the language and respective obligations of the parties.” Adopting that definition of inconsistency, the court in Luria, supra, 600 F.2d at page 111, held, “[w]here writings intended by the parties to be a final expression of their agreement call for an unconditional sale of goods, parol evidence that the *1016seller’s obligations are conditioned upon receiving the goods from a particular supplier is inconsistent and must be excluded.”
We adopt the broader definition of inconsistency from Snyder and Luria. Applying that definition, we conclude a parol term conditioning Sharing World’s obligation to accept delivery of the cottonseed on its receipt of letters of credit from parties over whom Apex had no control would have been inconsistent with the written sales contracts calling for an unconditional sale of cottonseed in the quantity and at the price specified. (See 1 White & Summers, Uniform Commercial Code, supra, § 2-10, p. 173 & fn. 32.)
Apex and Sharing World certainly would have included the condition precedent in the writing had they intended it to be part of their contracts. We may reach this conclusion de novo as a matter of law. Official comment 3 to Uniform Commercial Code section 2-202 states: “Under paragraph (b) consistent additional terms, not reduced to writing, may be proved unless the court finds that the writing was intended by both parties as a complete and exclusive statement of all the terms. If the additional terms are such that, if agreed upon, they would certainly have been included in the document in the view of the court, then evidence of their alleged making must be kept from the trier of fact.” (Italics added.) Considering the amount at stake, and Apex’s complete lack of control over Sharing World’s Korean customers, the parties certainly would have reduced the condition precedent to writing if they had agreed upon it.
In addition, if the court decides the writing is not complete and exclusive, yet decides it is a final written expression as to some terms, evidence of contradictory prior or contemporaneous terms may not be admitted. (1 White & Summers, Uniform Commercial Code, supra, § 2-10, p. 169.) The contracts for the sale of cottonseed in this case were complete and final expressions of the parties’ agreements on the terms of quantity and price, and called for an unconditional sale of goods. The condition precedent asserted by Sharing World contradicted those terms.
Parol evidence is admissible to prove a contract is invalid (Code Civ. Proc., § 1856, subd. (f)), and some courts have held parol evidence is admissible to prove a condition precedent to contract formation (e.g., In re Prior Brothers, Inc. (1981) 29 Wn.App. 905, 909 [632 P.2d 522, 526] [“parol evidence may be admitted to show there is a condition precedent to the contract coming into existence”]; Hicks v. Bush (1962) 10 N.Y.2d 488, 491 [255 N.Y.S.2d 34, 36-37, 180 N.E.2d 425, 427] [“Parol testimony is admissible to prove a condition precedent to the legal effectiveness of a written agreement [citations], if the condition does not contradict the express terms of such written agreement.”]). The asserted condition precedent here was at *1017most a condition to Sharing World’s obligation to accept delivery of cottonseed. The condition did not affect contract validity or formation inasmuch as the sales contracts imposed on Apex the obligation to tender the cottonseed to Sharing World before the condition was satisfied.
C. Mitigation of Damages
1. The Trial Court’s Finding
The trial court found that if the NCPA Trading Rules did apply to the transactions, then Apex violated NCPA Trading Rules, rule 50 by failing promptly to elect its remedy. The court found: “Whether under NCPA trade rules, or the applicable provisions of the Commercial Code, Apex failed to comply with the proper procedures for pursuing remedies for the claimed breach of the alleged contracts. Apex waited and waited to elect a remedy under the NCPA trade rules in violation of those rules. Further, Apex gave less than 24 hours[’] notice of the sale of the cottonseed ‘on the open market’ clearly in violation of the commercially reasonable standard established under the Commercial Code. Finally, during this time of delay, Apex watched and watched as the price of cottonseed declined—thereby failing to mitigate its alleged damages.”
2. Whether Apex Acted in a Commercially Reasonable Manner
a. Seller’s Rights and Remedies Under the Uniform Commercial Code
A seller’s rights and remedies upon a buyer’s wrongful rejection of goods are governed by California Uniform Commercial Code section 2703. (Cal. U. Com. Code, § 2602, subd. (3).) “If the seller has made a tender which in all respects conforms to the contract, the buyer has a positive duty to accept and his failure to do so constitutes a ‘wrongful rejection’ which gives the seller immediate remedies for breach.” (U. Com. Code com., 23A pt. 1 West’s Ann. Cal. U. Com. Code (2002 ed.) foil. § 2602, p. 528.) As a remedy, section 2703, subdivision (d) gives the seller the option to “[r]esell and recover damages as hereafter provided (Section 2706).”
California Uniform Commercial Code section 2706, subdivision (1) provides: “Under the conditions stated in Section 2703 on seller’s remedies, the seller may resell the goods concerned or the undelivered balance thereof. Where the resale is made in good faith and in a commercially reasonable manner the seller may recover the difference between the resale price and the contract price together with any incidental damages allowed under the provisions of this division (Section 2710), but less expenses saved in *1018consequence of the buyer’s breach.” An official comment to this section explains, “[t]he only condition precedent to the seller’s right of resale under subsection (1) is a breach by the buyer within the section on the seller’s remedies in general or insolvency.” (U. Com. Code com., 23A pt. 2 West’s Ann. Cal. U. Com. Code (2002 ed.) foil. § 2706, p. 45.) The resale may be at a private sale or a public sale; if the sale is private, the seller must give the buyer “reasonable notification of his intention to resell.” (Cal. U. Com. Code, § 2706, subds. (3) & (4).)
“California Uniform Commercial Code section 2706 basically requires that all resales be conducted in a commercially reasonable manner and that sellers act in good faith.” (Allied Grape Growers v. Bronco Wine Co. (1988) 203 Cal.App.3d 432, 445 [249 Cal.Rptr. 872].) California Uniform Commercial Code section 2706, subdivision (2) explains a sale “may be as a unit or in parcels and at any time and place and on any terms but every aspect of the sale including the method, manner, time, place and terms must be commercially reasonable.”
By requiring a seller to give the buyer reasonable notice of intention to resell and to conduct the resale in good faith and in a commercially reasonable manner, the Uniform Commercial Code in effect requires the seller to mitigate damages. (American National Bank & Trust Co. v. Weyerhaeuser Co. (7th Cir. 1982) 692 F.2d 455, 468 [“by imposing the requirements of good faith and commercial reasonableness, the law does in fact require reasonable attempts to mitigate damages”].)
“ ‘[T]here is still no clearcut or easily identifiable rule as to what constitutes a commercially reasonable time. One can only say that the resale should be made as soon as practicable after the breach of the tender offer and the seller should make every reasonable effort to minimize the loss.’ ” (American National Bank & Trust Co. v. Weyerhaeuser Co., supra, 692 F.2d at p. 469, quoting Bache & Co. v. Internat. Controls Corp. (S.D.N.Y. 1972) 339 F.Supp. 341, 352 [30 days from date of breach of tender offer was a commercially reasonable time to resell securities].) An official comment to California Uniform Commercial Code section 2706 states that reasonable time “depends upon the nature of the goods, the condition of the market and the other circumstances of the case; its length cannot be measured by any legal yardstick . . . .” (U. Com. Code com., 23A pt. 2 West’s Ann. Cal. U. Com. Code (2002 ed.) foil. § 2706, p. 45.)
b. Sufficiency of the Evidence
When Sharing World refused acceptance of all or a portion of the cottonseed covered by the relevant contracts, Apex immediately had the right *1019to pursue its remedies under California Uniform Commercial Code section 2706. There were no further conditions to Apex pursuing its remedies under the code. Those remedies included reselling the cottonseed and recovering in damages the difference between the resale price and the contract price.
California Uniform Commercial Code section 2706, subdivision (1) required Apex to conduct the resale in good faith and in a commercially reasonable manner, and section 2706, subdivision (3) required Apex to give Sharing World “reasonable notification” of the intent to resell.
The trial court made an express finding that Apex did not resell the cottonseed in a commercially reasonable manner because, according to the trial court, Apex “waited and waited to elect a remedy” and then gave only 24 hours’ notice of its intent to “wash” the contracts (i.e., take back the cottonseed at the market price). Commercial reasonableness appears to be a question of fact to be decided by the trier of fact (see, e.g., California Airmotive Corp. v. Jones (6th Cir. 1969) 415 F.2d 554, 555); however, substantial evidence did not support the trial court’s finding Apex resold the cottonseed in a commercially unreasonable manner.
It is undisputed that Sharing World first refused to accept a cottonseed shipment in October 2008, and Apex elected to wash the balance of the contracts in August 2009. On many occasions between October 2008 and August 2009, Apex tendered cottonseed to Sharing World and Sharing World declined to accept the tender. The evidence established Apex attempted to negotiate a resolution during that period of time. In November 2008, Apex elected to extend the shipping date and wash contract balances at $215 per ton. In a November 5, 2008 e-mail to Seo, Patterson stated: “I know this is difficult for everyone involved but we have to make a decision quick. I realize the situation in Korea is bad but they also have to realize the situation was reversed last year (Korea bought at low values and the US$ was devalued) and APEX honored every contract regardless of price.” Two days later, Patterson sent an e-mail to Seo about keeping Sharing World’s accounts current and discussing either extending the shipment dates or washing the contracts. Later in November, Patterson offered to wash a portion of the contracts at $235 per ton.
In January 2009, Patterson sent an e-mail to Seo, stating: “We have a few contract issues that need to be resolved. Obviously you are behind on your contracts and as I’ve mentioned many times before we have to charge a carry for these contracts that should have shipped by Dec[ember], Due to the slow shipments, we had to pay gins that had space to store cottonseed for us and we had to store cottonseed in offsite warehouses that required us to pay for the seed, freight to warehouses, and pay for storage. . . . Because you are *1020behind already I know there is no way for you to catch up by March so technically we have to roll shipments to Apr[il]-Aug[ust].”
On January 30, 2009, Seo responded by informing Patterson that other cottonseed suppliers were discounting the contract price, reducing quantity, or cancelling contracts without penalty. Patterson notified Seo by e-mail the same day that neither Apex nor any other cottonseed supplier was allowing a customer to “walk away” and Apex had already discounted the price by $15 per ton. Apex could not give Sharing World further discounts simply because the market price had dropped after the contracts were made.
In March 2009, Patterson and Paul Schlee, Apex’s chief financial officer, met in person with Seo to discuss resolving the contracts. In a letter to Seo, dated March 31, 2009, Schlee wrote: “During our meeting we presented two (2) options for your consideration. The first option was APEX would extend the shipment period of the existing contracts for a ‘To be Determined’ time frame and sell you additional containers at a current market price so [as] to allow you to ‘average down’ your cost of shipments. ... In addition to averaging down the cost and extending the contract delivery, APEX would need some assurance of performance from Felix & Sons, Inc. For that assurance, APEX would require letters of credit totaling $750,000.00. . . . [][] We much prefer to work with you and your customers under option one guidelines and we feel this is a very fair and equitable proposal. ... As we discussed, APEX will give you two (2) weeks from the date of this letter to contact your customers and reply as to how you suggest resolving this matter.”
Communications between Apex and Sharing World continued over the next several months. On April 28, 2009, Patterson stated in an e-mail to Seo, “[w]e need to get moving on our resolution” and asked him to send copies of the signed contracts between Sharing World and its customers with “a brief explanation on where each contract stands.” In May, Seo inquired into purchasing cottonseed at a new price, stating his customers “want to keep purchase from us but want to split their loss and risk through future business.” On May 26, 2009, Patterson sent an e-mail to Seo, stating the market price for “old crop” cottonseed had risen, “which offers your customers the opportunity to do the right thing and honor their contracts.” On June 1, Patterson again informed Seo the market price for cottonseed had risen. On June 19, Patterson informed Seo that if his customers agreed to rewrite the contracts to accept shipments between July 2009 and March 2010, Apex would offer additional cottonseed for sale at $245 per ton for July through September 2009 and $220 per ton for October 2009 through March 2010.
In an e-mail dated July 7, 2009, Patterson informed Seo: “We have been very patient in trying to resolve the old contract issues. Your shipments have *1021slowed and we’ve asked multiple times for such things as contracts, customer info, resolutions, etc. but have not gotten a response. We have been trading blind in a very volatile market and missing opportunities because we don’t know our actual position. We have honored every purchase with our gins which has cost us lots of money and opportunity and we cannot go on any longer without a resolution. We need a definitive answer regarding these contracts that will allow us to trade into a position with a definite shipment schedule, [f] I would like to rewrite the old contracts with new shipment dates. I suggest we combine the balances on all the old contracts to make one contract with a weighted average price and shipments evenly scattered July ’09-Aug[ust] ’10 (to date my calculations show approx[imately] 14,500 tons of old crop with a weighted average price of $323). ...[][] We need to have a resolution on these old contracts soon so please respond with your agreement or an alternative resolution by Friday, 7/10/09. Otherwise we will be forced to put you on notice for Breach of Contract, wash your contracts at the market [price] and invoice you for the equity due APEX.” On July 10, Patterson offered to combine the existing balances on the 12 contracts into a single contract at a price of $300 per ton, which was a discount of $21 per ton. He asked for a response no later than July 17. No response came.
Finally, on August 14, 2009, Patterson notified Seo that Apex had elected to wash the contracts. In an e-mail of that date, Patterson stated: “We have offered numerous options to resolve this matter but have not gotten an acceptable resolution from you. We take contract integrity very seriously. To no fault of APEX, you are seriously behind schedule and therefore we must put you on notice to wash your defaulted contracts. [|] Per NCPA Trade Rules (Rule 50, Section 2 and Rule 51) I am notifying you that we are washing the defaulted portion of your contracts which total 545 containers or 13,625 tons . . . and taking the tons in at today’s market price of $200 CY East Coast Port .... We will invoice you the equity due APEX resulting from this default and expect payment in full within 30 days. [][] In addition, I show you have 40 containers or 1000 tons remaining to ship by 8/31/2009 and please provide us your shipping schedule accordingly.”
Seo’s response was, “[pjlease be informed that we did not accept NCPA Trade Rules. So, it was your transaction in the market not related to us.”
From the evidence, the trial court drew the inference that Apex “waited and waited” to wash the contracts until the market price of cottonseed had fallen to $200 per ton. That is not a reasonable inference. As the communications between Apex and Seo demonstrate, Apex did not “waitQ and wait[]” and “watch[] and watch[]” but constantly, over many months, tried to resolve the situation with Sharing World and offered to consolidate the balances of the contracts into a single contract at a discounted price. The evidence showed *1022too that, in the past, Apex had washed contracts to Sharing World’s benefit. In May 2007, when Sharing World was behind schedule in accepting shipment on several contracts, Apex washed the contracts at a price higher than the contract prices. Sharing World did not object to the wash, which earned it a profit of $29,800.
The inference drawn by the trial court was particularly unreasonable given the number of contracts and the timing of shipments. Apex and Sharing World entered into 12 separate contracts for cottonseed, each with a different contract price, quantity, and shipment period. Three contracts (Nos. 633368, 633394, and 633562) had a shipping period of October through December 2008, three contracts (Nos. 633180, 633395, and 633573) had shipment periods extending up to August 2009, and the other contracts had shipment periods falling between October 2008 and March 2009. Declaring a wash in August 2009 for a shipment to be made that month is not the same as declaring a wash for a shipment to have been made in October 2008. Conversely, Apex could not have declared a wash in October 2008 for cottonseed to be shipped in the future when there was no evidence Sharing World was repudiating all future shipments under the 12 contracts. Indeed, between October 2008 and August 2009, Sharing World accepted delivery of 4,750 tons of cottonseed out of the 19,375 tons covered by the contracts.
A resale under California Uniform Commercial Code section 2706, subdivision (1) must be conducted in a commercially reasonable manner and should be made as soon as practicable after the breach of the offer of tender. (American National Bank & Trust Co. v. Weyerhaeuser Co., supra, 692 F.2d at p. 469.) A determination whether Apex washed the balance of the cottonseed contracts as soon as practicable and within a commercially reasonable time after the breach cannot be made simply by measuring the length of time between the date Sharing World first refused tender of cottonseed and the date Apex finally declared the wash. Over a period of 10 months, between October 2008 and August 2009, Apex made many tenders of cottonseed under the 12 contracts before declaring a wash in August and September 2009. Thus, given the record, it was not reasonable for the trial court to draw the inference Apex intentionally waited until that time to declare the wash of the balance of all 12 contracts in order to take advantage of a low tonnage price for cottonseed.
Whether Apex declared a wash within a commercially reasonable time must be determined separately for every tender under each contract in light of the evidence that Apex sought to negotiate a resolution with Sharing World and offered several times to wash portions of the contract at a higher price than $200 per ton. We recognize this is an issue of fact which we cannot resolve, and, therefore, reverse and remand for a new trial on that issue alone.
*10233. Whether Apex Violated the NCPA Trading Rules
Each of the 12 sales contracts stated on its face: “Trade Rules to Govern: NATIONAL COTTONSEED PRODUCTS ASSOCIATION.” Seo testified that, several years before the transactions in issue, he told Patterson that Sharing World would not agree to be bound by the NCPA Trading Rules. Seo did not, however, give Apex written objections to any of the 12 sales contracts. As confirming memoranda, the terms of the sales contracts, including the reference to the NCPA, became terms of the contract under California Uniform Commercial Code section 2207, subdivision (2) because Apex and Sharing World are merchants.
Rule 50, section 2 of the NCPA Trading Rules requires a buyer to notify the seller “at once” by telephone, facsimile, or e-mail when “the Buyer finds that he is in default on the shipping schedule, and/or the contract-shipping period.” Upon receipt of notice from the buyer, the seller within 24 hours must advise the buyer by telephone, facsimile, or e-mail whether the seller elects to (1) “Agree to extend the shipping period”; (2) “Sell-out, for the Buyer’s account, the defaulted portion of the shipment”; or (3) “Cancel the defaulted portion of the shipments at fair market value based on the day this option is exercised.”
NCPA Trading Rules, rule 51 states, in part: “If a buyer or seller takes a commodity in at the market price, no sale or other action through a broker is required. The transaction will be consummated by such buyer or seller notifying the other person by telegram that the sender takes the commodity in at the market price. Such notice must be given within 24 hours after the right to take in at the market price has accrued.”
The trial court found that Apex did not comply with the NCPA Trading Rules; to the contrary, the evidence established Apex continually exercised its election under rule 50 to extend the shipping dates for the cottonseed that Sharing World refused to accept. When Apex declared its election to wash the contracts, it gave Sharing World 24 hours’ notice required by rule 51, under which no further action by Apex was required.
D. Evidence of Damages
The trial court found: “Apex has failed to present evidence concerning any alleged damages it claims to have suffered. We know the price at which Apex claims it sold the cottonseed to Sharing World. We know the price at which it claims to have sold the cottonseed to ‘wash’ those contracts. What we do not know is the price it paid for the cottonseed. We do not know when the cottonseed was purchased, from whom, in what quantity, at what price, etc. *1024We do not even know whether Apex had cottonseed on hand on the dates it claims to have sold it on the open market.”
The trial court’s finding on damages is legally erroneous. When a seller elects to resell under California Uniform Commercial Code section 2706, and the resale is made in good faith and in a commercially reasonable manner, the seller may recover as damages “the difference between the resale price and the contract price together with any incidental damages.” (Cal. U. Com. Code, § 2706, subd. (1).) Otherwise, the seller’s measure of damages is “the difference between the market price at the time and place for tender and the unpaid contract price together with any incidental damages.” (Id., § 2708, subd. (1).) Under some circumstances, and under certain conditions, the seller may sue the buyer for the price of the goods sold. (Id., § 2709.) In none of these situations must the seller prove its own cost for the goods.
Discussion: Sharing World’s Appeal
In the statement of decision and judgment, the trial court declared it would not award attorney fees because “there was no enforceable agreement between the parties.” Sharing World, nonetheless, filed a motion for attorney fees. Before the trial court ruled on the motion, Sharing World filed a notice of appeal to challenge the denial of attorney fees in the statement of decision and judgment. After Sharing World filed the notice of appeal, the trial court granted the motion for attorney fees and awarded Sharing World $107,560 in fees.
Sharing World states it “felt compelled” to appeal from the statement of decision because otherwise “it potentially would have been subject to a final erroneous, but unchallenged, denial of its right to attorney’s fees.” Sharing World is not an aggrieved party entitled to appeal, its appeal was premature, or its appeal became moot—under any theory, Sharing World’s appeal is not viable. And, because we are reversing the judgment in favor of Sharing World, we also reverse the order awarding attorney fees. (C9 Ventures v. SVC-West, L.P., supra, 202 Cal.App.4th at pp. 1488-1489.)
Disposition
The judgment and the order granting attorney fees are reversed and the matter is remanded for a new trial and proceedings limited to these issues only: (1) whether Apex acted in a commercially reasonable manner and/or in *1025compliance with NCPA Trading Rules when it washed the balance of each of the 12 cottonseed contracts; (2) the amount of damages, if any, suffered by Apex; and (3) posttrial matters including costs and attorney fees. Apex shall recover costs incurred on appeal.
O’Leary, P. J., and Bedsworth, J., concurred.
Sharing World did not file a respondent’s brief in Apex’s appeal. As a consequence, we decide Apex’s appeal based on the record, Apex’s opening brief, and oral argument by Apex’s counsel. (Cal. Rules of Court, rule 8.220(a)(2).) We permitted Sharing World’s counsel to orally argue in support of its appeal on the issue of attorney fees.
Under industry rules and practice, a “wash” means the seller buys back the commodity at the market price.
In any event, the written confirmation of contract included the mode of shipment and place of delivery.
Apex claims each sales contract included a provision stating, “[n]o terms or conditions in the Buyer’s purchase order, acknowledgement or other document issued by the Buyer which conflict with the terms and conditions hereof or which increase the Seller’s obligations shall be bi[n]ding . . . upon Seller unless accepted in writing by the Seller.” The sales contracts in the cross-appellant’s appendix do not include this language. Although the sales contracts state there are terms on the reverse sides, only the front sides are in the cross-appellant’s appendix.