
760 S.W.2d 298 (1988)
CRANETEX, INC., Appellant,
v.
PRECISION CRANE & RIGGING OF HOUSTON, INC. and Northwest Acceptance Corporation, Appellees.
No. 9617.
Court of Appeals of Texas, Texarkana.
September 13, 1988.
Second Motion for Rehearing Denied October 18, 1988.
*300 Fred Riepen, Houston, for appellant.
Steven L. Weathered, Ross, Banks, May, Cron & Cavin, Houston, for appellee Northwest Acceptance Corp.
John V. Gordon, Houston, for appellee Precision Crane.
GRANT, Justice.
Cranetex, Inc. (hereinafter referred to as Cranetex) brings a limited appeal complaining only of the trial court's discharge of Northwest Acceptance Corporation (hereinafter referred to as Northwest) from liability. A suit was brought by Cranetex for repairs made to a crane belonging to Precision Crane & Rigging of Houston, Inc. (hereinafter referred to as Precision Crane) and mortgaged to Northwest.
Cranetex contends that the trial court erred (1) in holding that a letter agreement among the parties did not bind Northwest contractually to pay insurance proceeds to Cranetex; (2) in making erroneous conclusions of law which were contrary to its findings of fact; and (3) in finding no liability on the part of Northwest when there were no proper conclusions of law to support this outcome.
Northwest raises three cross-points contending that the trial court erred (1) in making a conclusion of law and finding of fact that Cranetex sold the crane at public auction in substantial compliance with the Property Code; (2) in reaching a conclusion of law that the debt owing to Cranetex accrued as of June 20, 1984; and (3) in failing to make a finding that repairs to the crane were not completed by Cranetex to the satisfaction of both Precision Crane and Northwest pursuant to the January 17, 1984, letter agreement.
Cranetex argues that Northwest is precluded from bringing these cross-points because of the limited appeal. To the extent, however, that these cross-points tend to support Northwest's position that the trial court properly entered a take-nothing judgment against them, the cross-points will be considered on appeal. Whataburger, Inc. v. Rutherford, 642 S.W.2d 30 (Tex.App.Dallas 1982, no writ); Smith v. Texas Improvement Co., 570 S.W.2d 90 (Tex.Civ.App.Dallas 1978, no writ).
A crane owned by Precision Crane and subject to a purchase-finance lien held by Northwest, was damaged in an accident. Precision Crane carried accident insurance, and the insurance carrier paid Northwest $86,386.84 to hold in escrow as compensation for the damage. Cranetex submitted a bid to repair the crane for $100,520.05, which was accepted. On January 17, 1984, Bill Hall, vice-president and regional manager of Northwest, wrote a letter to Precision Crane and stated the following:
This letter acknowledges the receipt of a insurance draft in the amount of $86,386.84 to be employed in the repair of One (1) P & H model T-750 75 ton hydraulic crane, s/n 44243 complete. Northwest Acceptance Corporation agrees that upon collection of those funds and completion of said repairs to the satisfaction of Northwest Acceptance Corporation and Precision Crane and Rigging of Houston, Inc., that the sum of $86,386.84 will be paid directly to Cranetex, Inc., the party that will be performing those repairs. Precision Crane and Rigging of Houston, Inc. agrees to remit certified funds to Cranetex, Inc., for any repairs or charges in excess of the insurance draft, prior to taking possession of the crane.
At the bottom of the letter under the terms "AGREED TO AND ACCEPTED BY" agents for Precision Crane and Cranetex signed on behalf of those parties.
Cranetex repaired the damage and submitted a bill of $105,330.05. (This included some work in addition to the work covered *301 by the original bid.) Precision Crane claimed that the repairs were not performed adequately and refused to authorize payment of the insurance proceeds.
Crane Service and Certification, Inc. inspected and certified the crane on July 23, 1984. A more detailed report was completed by that company on July 24, 1984.
Cranetex sold the crane at public auction for $55,000. Cranetex then brought suit for the unpaid remainder of its repair bill. In a trial before the court, Cranetex took judgment against Precision Crane for a $47,500 deficiency, and Northwest was discharged.
Cranetex contends that the trial court erred in making the following conclusion of law:
The Letter Agreement dated January 17, 1984, attached hereto as Exhibit "B" did not bind Northwest to pay insurance proceeds to Cranetex.
If this conclusion of law means that Northwest had no contractual obligation to pay the insurance proceeds when Cranetex performed, it appears to conflict with the following findings of fact by the trial court:
CRANETEX, PRECISION CRANE, and NORTHWEST entered into a letter agreement for repairs of the crane and payment therefore (sic) dated January 17, 1984, which was admitted into evidence at trial as Plaintiff's Exhibit 1.
NORTHWEST agreed to hold insurance proceeds in the sum of $86,386.84 for the benefit of CRANETEX and PRECISION CRANE which sum would be paid on the repair costs to CRANETEX upon satisfactory completion of repairs to the crane.
Findings of fact control over conflicting conclusions of law. Gary Safe Co. v. A.C. Andrews Co., 568 S.W.2d 166, 168 (Tex.Civ.App.Dallas 1978, writ ref'd n.r.e.). Northwest contends that it was not bound by the letter agreement because there was no consideration for the agreement.
The trial court did not address consideration in its findings of fact. Northwest held an equitable ownership right in the crane; therefore, it was to Northwest's benefit that the crane be repaired. Cranetex agreed to make the repairs on the condition that all insurance proceeds would be available to pay a portion of the cost of repairs. Cranetex's agreement to make the repairs was sufficient consideration to bind Northwest to pay insurance proceeds to Cranetex as specified in the letter agreement. Mutual reciprocal obligations are sufficient to constitute a binding contract. Texas Gas Utilities Co. v. Barrett, 460 S.W.2d 409 (Tex.1970).
The trial court entered two conclusions of law that also conflict with the conclusion that the letter agreement did not bind Northwest to pay the insurance proceeds to Cranetex:
The letter agreement between CRANETEX, PRECISION CRANE, and NORTHWEST, which was admitted into evidence as Plaintiff's Exhibit 1 constituted a contract for the payment of the repairs to the crane made the basis of this lawsuit. (Emphasis added)
By entering into the contract admitted into evidence as Plaintiff's Exhibit 1, NORTHWEST agreed to hold the insurance proceeds in the sum of $86,386.84 in escrow to be paid over to CRANETEX upon completion of the repairs satisfactory to PRECISION CRANE and NORTHWEST ACCEPTANCE. (Emphasis added)
Both of these conclusions of law indicate that the letter agreement was a contract to which Northwest was bound; therefore, the trial court erred in entering a conclusion to the contrary.
The remaining two points of error urge that the trial court erred in discharging Northwest from liability. Part of the controversy arises from the contract requirement that the repairs would be completed "to the satisfaction of Northwest Corporation and Precision Crane and Rigging of Houston, Inc." Where the subject matter of a contract containing a "satisfaction" provision relates not to matters of personal taste, but to matters of commercial *302 value or mechanical fitness, the party must act in good faith and must be honestly dissatisfied. 17A C.J.S. Contracts § 495(1)d (1963). In the case of Black Lake Pipe Line Co. v. Union Construction Co., 538 S.W.2d 80 (Tex.1976), the Texas Supreme Court adopted a reasonableness test for a "satisfaction" provision of a contract in deciding whether a party acted in good faith. This is an objective standard which does not seek to find the mental state of satisfaction of that party, but rather whether the performance would satisfy a reasonable person.[1]
Although the trial court in the present case made no findings of fact about good faith or whether a reasonable person would have been satisfied by the work performed, it did find that "CRANETEX substantially completed the repairs to the crane as of June 20, 1984." The trial court specifically refused to make an additional finding of fact that the repairs were not completed to the satisfaction of Precision and Northwest. It also found that "CRANETEX is entitled to recover $100,000 as the reasonable cost of repairs made pursuant to the original bid for repairs to the crane," and that "[t]he debt owing to CRANETEX for repairs to the crane accrued as of June 20, 1984."
The letter agreement of January 17 was intertwined with and based upon the performance of repairs in accordance with the bids made by Cranetex. The record shows no bona fide basis for dissatisfaction. Substantial performance, as found by the trial court in the instant case, means that the essential elements of the contract have been performed, and it is the legal equivalent of full compliance.[2]Del Monte Corp. v. Martin, 574 S.W.2d 597 (Tex.Civ.App.San Antonio 1978, no writ); Santos v. Guerra, 570 S.W.2d 437, (Tex. Civ.App.San Antonio 1978, writ ref'd n.r.e.); Ditmar v. Beckham, 86 S.W.2d 801 (Tex.Civ.App.Fort Worth 1935, writ dism'd). As a matter of law, a reasonable person could not expect more than fulfillment of the contract. The trial court's finding that the debt was fully accrued and the repairs substantially completed is tantamount to a finding that the repairs would meet the objective standard of a reasonable person; therefore fulfilling the satisfaction requirement in the contract.
Citing Black Lake Pipe Line Co. v. Union Construction Co., supra, Northwest contends that under the terms of the letter agreement that Precision Crane also had to express satisfaction before Northwest could release the money held in escrow. Northwest argues that when a third party's satisfaction is required, it is final and conclusive in the absence of fraud, misconduct or gross mistake.[3] The present situation is not analogous to having a third party expert, such as an engineer or architect, approve the repairs before payment is made. Precision Crane was a party to the contract as the owner of the equipment and not as a third party expert designated to make a determination of whether the repairs were satisfactory. Thus, Precision Crane's satisfaction should be determined on an objective basis in the same manner as for Northwest.
*303 The representative of Precision Crane inspected the crane, and pointed out defects in the repair. However, the testimony also indicated that Precision Crane refused to re-inspect the crane, despite repeated efforts by Cranetex to obtain such a re-inspection after repairs were completed. Based upon the findings of the trial court, we conclude that under a reasonableness test Precision Crane should have been satisfied. If Northwest was concerned about its liability in the controversy between Precision Crane and Cranetex, Northwest could have placed the money into escrow with the court and asked for a judicial determination.
Northwest contends that Cranetex is not entitled to the funds on the basis of a deficiency judgment because such a recovery from a lienholder is not provided for in Chapter 70 of the Texas Property Code. Northwest is not liable on the basis of its status as a lienholder, but we conclude that it is liable because of its agreement to hold the insurance proceeds in escrow and pay them out after the crane was repaired. We further conclude that Northwest could not be liable for more than the insurance funds that it held in escrow.
Northwest also contends that Cranetex suffered no damage because it purchased the crane at the foreclosure sale and later sold it for profit. The trial court made the following findings in connection with the foreclosure sale:
CRANETEX gave notice to NORTHWEST and to PRECISION CRANE of its intent to sell the crane pursuant to Section 70.001 et seq. of the Texas Property Code.
CRANETEX sold the crane made the basis of this action at a public auction sale in substantial compliance with Section 70.001 et seq. of the Texas Property Code.
CRANETEX was the highest bidder for the purchase of the crane at the public sale held on September 19, 1984 and the high bid was $55,000.
Five people registered their attendance at the public sale, and two persons other than CRANETEX bid on the crane.
NORTHWEST ACCEPTANCE was present at the public sale on September 19, 1984.
The sum of $47,500 remains unpaid to CRANETEX.
The trial court made a further finding of fact that "Cranetex sold the crane to a third party on or about January 31, 1985 for the sum of $115,000." Northwest cites the case of Lee v. Sabine Bank, 708 S.W.2d 582 (Tex.App.Beaumont 1986, writ ref'd n.r.e.), for the proposition that it should be allowed an offset based upon the price that Cranetex ultimately obtained. The court in Lee stated that "a lender who has secured collateral ... is under a trust arrangement with the borrower, in the event of foreclosure to make an honest effort to reduce the loan as much as possible by securing a fair price for the collateral." In the present case, Cranetex did not have a lender-borrower relationship with Northwest, and there is no showing in the record that Cranetex failed to make an honest effort to secure a fair price for the collateral. A foreclosure sale is not normally set aside unless there is an inadequacy of price accompanied by proof of bad faith, mistake or undue advantage taken of the ignorance or weakness of those whose property rights were affected. Such proof was not offered in the present case, and the fact that Cranetex was able to sell the property five months later for a higher price does not, standing alone, justify the allowance of an offset.
Furthermore, Northwest did not have an affirmative pleading requesting offset due to Cranetex's sale of the crane after foreclosure. Offset is an affirmative defense which must be pled. Brown v. American Transfer & Storage Co., 601 S.W.2d 931 (Tex.1980), cert. denied, 449 U.S. 1015, 101 S.Ct. 575, 66 L.Ed.2d 474 (1980); Matrix, Inc. v. Provident American Ins. Co., 658 S.W.2d 665 (Tex. App.Dallas 1983, no writ); Batis v. Taylor Made Fats, Inc., 626 S.W.2d 605 (Tex. App.Fort Worth 1981, writ ref'd n.r.e.); Durham v. Uvalde Rock Asphalt Co., 599 S.W.2d 866 (Tex.Civ.App.San Antonio 1980, no writ). Furthermore, Northwest *304 did not plead that Cranetex's purchase of the crane at the foreclosure was fraudulent or for an inadequate price. Fraud is an affirmative defense which must be properly pled. Garcia v. Rutledge, 649 S.W.2d 307 (Tex.App.Amarillo 1982, no writ). Likewise, inadequacy of consideration should be pled as an affirmative defense.
Northwest challenges the trial court's conclusion that Cranetex sold the crane at a public auction sale in substantial compliance with Section 70.001 et seq. of the Texas Property Code and also challenges the underlying fact finding that Cranetex's charges accrued June 20, 1984. One of Northwest's arguments challenging the date of June 20 is that the load testing and certification of the crane did not occur until July 23, 1984; however, even though funds were set aside for this testing and certification, it was not set forth as a prerequisite for payments for performance of the contract. Northwest further contends that Cranetex made a judicial admission in its second amended original petition which states that "in or about July of 1984, Cranetex completed all repairs on the crane." This pleading does not state with exactitude the date all repairs were completed, nor does it unequivocally state a completion date in July. Rather it states "in or about July," and it is therefore not contradictory to the date of June 20. Thus, we will not construe this statement to be a judicial admission. To qualify as a judicial admission, the statement must be unequivocal, and it is not contradictory of an essential act alleged by a party. United States Fidelity Guaranty Co. v. Carr, 242 S.W.2d 224, 229 (Tex.Civ.App.San Antonio 1951, writ ref'd).
Cranetex contends that there was a delay in getting the load certification because Precision Crane failed to timely deliver a steel cable necessary for the load certification. Although there is some dispute about that date, the trial court as the fact finder had sufficient evidence upon which to base this finding.
Cranetex made repairs in addition to the repairs enumerated in its original bid. In "Agreed Findings of Fact and Conclusions of Law," the trial court found:
On its invoices, CRANETEX charged for repairs which it made in addition to those specified in the original bid. (Emphasis added.)
The trial court further found that Precision Crane authorized some of these additional repairs:[4]
PRECISION CRANE authorized $2,500.00 of additional repairs made by CRANETEX in addition to the original bid.
This authorization was consistent with the original bid which, as accepted by Precision Crane, contemplated that additional repairs and costs might be warranted:
This bid is based on a visual inspection. Disassembly of components may reveal additional defects. You [Precision Crane] will be contacted for approval before any additional parts expense or work is performed.
Northwest was not a party to the original bid and neither the bid nor the letter agreement of January 17 required Northwest's authorization for additional repairs. Thus, Northwest's obligation to pay for additional repairs is not predicated upon its authorization of such repairs. Northwest's liability arises from the letter agreement of January 17 in which Northwest undertook the obligation to pay Cranetex for performance of repairs in accordance with the bid. We must further consider the trial court's finding that "Cranetex substantially completed the repairs." This reference to repairs was apparently meant to cover the additional $2,500, because the trial court also entered the following finding of fact:
The sum of $47,500 remains unpaid to CRANETEX.
And the following conclusion of law:
CRANETEX should have and recover judgment in the sum of $47,500.00 which remains owing on its repair costs.
Based upon these findings and conclusions, and upon our conclusion that the *305 satisfaction requirement of the January 17 letter agreement was met, Northwest is liable to Cranetex for $47,500.
Northwest also contends that even if the indebtedness did accrue as of June 20, 1984, the time elements were not in strict compliance with Section 70.001 et. seq. of the Texas Property Code. Northwest is correct in this contention. Pursuant to the statute, Cranetex should have waited sixty days after the established date of June 20 before requesting the owner to pay the unpaid charge under Section 70.005. The demand letter was dated August 3, which was premature. Under Section 70.005 of the Texas Property Code, if the charges are not paid before the eleventh day after the demand, the lienholder is required to give notice of the sale. The notice of sale letter went out August 21, which was more than eleven days after the making of the demand letter. That statute requires that the lienholder may sell the property at a public sale after twenty days' notice. The property was not sold until September 19, which gave Northwest more than twenty days. Northwest did not seek to enjoin the sale, or contest it in any fashion until this suit was brought to recover the remainder of the repair costs. The time errors consisted of prematurity of the demand and the notice of sale; however, the sale was not conducted until the ninety-first day after the charges accrued. The prematurity of these two notices could only work to the benefit of Northwest by giving more notice time than required by statute. Substantial compliance as found by the trial court in this case satisfies Section 70.005, so long as the time of sale is not shortened.
Cranetex contends that Nothwest's joint and several liability with Precision Crane includes attorney's fees. We agree. The record indicates that Cranetex pled and proved its attorney's fees. This evidence was not controverted; therefore, no finding of fact and conclusion of law are required. Jackman v. Jackman, 533 S.W.2d 361 (Tex.Civ.App.-San Antonio 1975, no writ); City of Corpus Christi v. Arnold, 424 S.W.2d 492 (Tex.Civ.App.-Corpus Christi 1968, writ ref'd n.r.e.).
For the reasons set forth, the judgment is reversed and rendered to the extent that it discharged Northwest. Northwest is liable to Cranetex in the sum of $47,500 jointly and severally with Precision Crane and is also jointly and severally liable with Precision Crane for attorney's fees in the amount set forth in the original judgment and subject to the remittiturs provided therein.
NOTES
[1]  Black's Law Dictionary contains the following entry:

Satisfaction, contracts to. A class of contracts in which one party agrees to perform his promise to the satisfaction of the other. A contract for construction work "to the entire satisfaction of the owners" imports that the construction be to the satisfaction of a reasonable man and not to the personal satisfaction of owners.
[2]  Some states apply the substantial performance standard even to contracts requiring the satisfaction of an architect: "[I]f the work has been performed substantially in compliance with the contract, the law will hold the architect to be satisfied. Pollock v. Pennsylvania Iron Works Co. [13 Misc. 194], 34 N.Y.S. 129" Cited in 38 Words and Phrases Satisfaction at 369 (1967).
[3]  The trial court made a finding of fact that "[t]he bid of CRANETEX included a load test and certification on completion of repairs and/or replacements to the crane." Actually, the bid contained a figure of $300 for the purpose of such testing and certification, and a copy of the load testing and certification dated July 23, 1984, by Crane Service and Certification, Inc. was admitted into evidence. It is not contended, however, that this constituted a required third party approval.
[4]  The original bid was for $100,520.05. Cranetex submitted an invoice for $105,030.05; this $4,510 in excess of the original bid represents the additional repairs.
