
239 Wis.2d 152 (2000)
2000 WI App 232
619 N.W.2d 293
SEATER CONSTRUCTION CO., INC., Plaintiff-Respondent,
v.
RAWSON PLUMBING, INC., Defendant-Appellant.
No. 99-3203.
Court of Appeals of Wisconsin.
Submitted on briefs August 15, 2000.
Decided September 27, 2000.
*154 On behalf of the defendant-appellant, the cause was submitted on the briefs of Robert H. Bichler of Hostak, Henzl & Bichler, S.C. of Racine.
On behalf of the plaintiff-respondent, the cause was submitted on the brief of John M. Bjelajac of Hartig, Bjelajac, Cabranes & Koenen of Racine.
Before Nettesheim, Anderson and Snyder, JJ.
¶ 1. SNYDER, J.
Rawson Plumbing, Inc., appeals from a judgment of the trial court in favor of *155 Seater Construction Co., Inc. Seater, a general contractor, brought an action against Rawson, a subcontractor, pursuant to the doctrine of promissory estoppel. Seater alleged that Rawson submitted a subcontractor bid to do the plumbing work on a construction project that Seater relied upon in submitting its general contractor's bid. Seater was awarded the construction contract, after which, it alleged, Rawson refused to honor its subcontractor bid. After a trial to the court on the grounds of promissory estoppel, the trial court ruled in favor of Seater on a breach of contract basis. Rawson appeals, arguing that no contract existed between it and Seater and therefore no breach could occur. Rawson further argues that Seater has no right to recover on the grounds of promissory estoppel. We affirm the judgment of the trial court pursuant to the doctrine of promissory estoppel.

FACTS
¶ 2. Seater is a general contractor in Racine, Wisconsin. On August 7, 1997, Seater offered a written bid proposal to the City of Waukesha (city) for the construction of an administrative office building and storage facility (the project).
¶ 3. Most of the work on the project was to be performed by subcontractors employed by Seater. On August 7, 1997, the deadline for submitting bids for the project, Rawson submitted a written subcontract bid to Seater offering to perform certain portions of the project's plumbing work for $179,663. Rawson's bid did not include all of the required plumbing work for the project but excluded certain oil/grease lubrication lines and equipment. Another subcontractor submitted a bid for this excluded plumbing work in the amount of $62,825. Rawson's bid combined with this second subcontractor's *156 bid encompassed all of the necessary plumbing work and had a combined bid total of $242,458. This was the lowest bid that Seater received for all of the needed plumbing work and was therefore used by Seater and incorporated into its bid to the city. Seater's bid of $4,341,000 was accepted by the city as the lowest bid for the project.
¶ 4. In mid-September 1997, Seater received the project contract from the city. The city had not signed the contract, but sent the contract to Seater for its signature and for the attachment of the appropriate bonds and insurance documents. Seater then sent a letter to Rawson, dated September 15, 1997, indicating that Seater would be sending Rawson a written subcontract agreement after the city signed the project contract. On or about September 17, 1997, Seater signed the project contract, attached the necessary paperwork, and returned the contract to the city for the city's signatures. The city signed the contract on September 29, 1997. Seater received a fully executed copy of the contract sometime during the first week of October 1997.
¶ 5. On or about October 7, 1997, Seater received a construction bulletin from the city's architects for the project, asking about potential contract price adjustments if portions of the project were to be changed. Some of the proposed project changes involved the plumbing work. Seater then sent a letter to Rawson, dated October 10, 1997, asking Rawson about price adjustments if the proposed changes were implemented. Rawson sent a written response, dated October 20, 1997, informing Seater that a subcontract price increase of $9222 would be necessary if the proposed changes were required. Seater then forwarded *157 this information to the city in a letter dated October 27, 1997.
¶ 6. On November 5, 1997, Seater sent Rawson a written subcontract agreement for Rawson's work on the project. On that same day, Michael Wiedenbeck, Seater's manager for the project, called Mark Derouin, Rawson's president. Wiedenbeck informed Derouin of the project's progress and notified him of the date Rawson would be needed on the project site to start the plumbing work. Rawson was scheduled to begin the plumbing work on November 17, 1997.
¶ 7. On November 12, 1997, Rawson called Seater and requested three sets of the plans and specifications for the project. Seater mailed the plans and specifications to Rawson that same day.
¶ 8. On November 17, 1997, Rawson did not show up at the project site as planned. On November 19, 1997, Seater mailed a written copy of the project schedule to Rawson. By the first week of December, Rawson still had not reported to the project site; on December 9, 1997, Seater sent a facsimile to Rawson, reminding Rawson that it should have reported to the project site on November 17, 1997.
¶ 9. On December 16, 1997, Derouin called Wiedenbeck and informed him that because of an error in the subcontract bid, Rawson would not be able to complete the work at the agreed-upon price. Seater immediately contacted other plumbing subcontractors who had submitted Seater bids in August 1997, but none were available to take the job. The only subcontractor available, Kaelber Company, agreed to do the work if it became necessary.
¶ 10. On or about December 19, 1997, Jeff Stacy, the president of Seater, called Derouin. Derouin informed Stacy that Rawson could not do the plumbing *158 work at its original bid amount because there had been a mistake in the bid proposal. Derouin told Stacy that Rawson would need more money to do the necessary work, and Derouin promised that he would submit a dollar amount to Seater. Seater's attorney then sent a letter to Rawson, dated December 23, 1997, demanding that Rawson honor its original subcontractor bid.
¶ 11. On December 30, 1997, Rawson sent Seater a facsimile indicating that Rawson could complete the project plumbing work for $209,663; this amount was $30,000 more than Rawson's original bid. On or around that same date, Stacy called Derouin to further discuss this matter. Stacy informed Derouin that Rawson's original bid was in the normal bid range when the excluded work was considered. Derouin again informed Stacy that he had made a bid error. Stacy proposed that Seater pay an additional $14,000 to Rawson under the subcontract agreement, and Derouin agreed to that amount.
¶ 12. On or about January 2, 1998, Wiedenbeck prepared and sent to Rawson a change order providing for the payment of an additional $14,000 to Rawson under its subcontract. The change order noted the amount of the added payment and stated "Adjustment to bid day proposal error per Mark." On or about January 5, 1998, Rawson sent Seater a facsimile indicating that Rawson disagreed with the aforementioned language and insisting that the language of the change order read:
Rawson original proposal expired, renegotiated. Contract adjustment agreed to, in full, by both parties. Total add $14,000.00. New contract amount shall be $193,663.00.
*159 ¶ 13. Seater refused to make this requested change in the language of the change order and wanted to use its proposed language. Rawson then sent another facsimile to Seater, dated January 5, 1998, indicating that it would not do the project plumbing work unless Rawson's proposed language change was implemented in the change order. On January 6, 1998, Seater sent a facsimile to Rawson indicating that it would not accept Rawson's proposed language change because (1) Rawson's original bid had never expired, and (2) Rawson's miscalculation, not an alleged bid expiration, was the basis for the $14,000 change order.
¶ 14. On or about January 7, 1998, Rawson sent Seater another facsimile demanding a change order with Rawson's proposed language change; in addition, Rawson claimed that its original bid had a sixty-day expiration period by virtue of the language contained in Seater's contract with the city. Neither Rawson nor Seater was willing to accept the other's terms; Seater therefore hired Kaelber Company as a plumbing subcontractor to complete Rawson's work on the project. As a result of hiring Kaelber Company at the last minute and because of construction delays, Seater incurred extra expenses on the project totaling $45,400.
¶ 15. Seater then brought suit against Rawson for promissory estoppel. The matter proceeded to a trial before the court. The trial court granted judgment against Rawson for breach of contract in the amount of $45,400.

DISCUSSION
¶ 16. The trial court granted judgment to Seater on a breach of contract basis, even though Seater's complaint was grounded in the doctrine of promissory estoppel. Rawson argues that because there was no *160 contract between Rawson and Seater, no breach could occur. Rawson further argues that Seater has no right to recover on the grounds of promissory estoppel. We disagree.
[1]
¶ 17. We will not reverse a factual determination made by a trial court without a jury unless the finding is clearly erroneous. See WIS. STAT. § 805.17(2) (1997-98);[1]see also Noll v. Dimiceli's, Inc., 115 Wis. 2d 641, 643, 340 N.W.2d 575 (Ct. App. 1983). However, we determine questions of law independently, giving no deference to the conclusions of the trial court. See Levy v. Levy, 130 Wis. 2d 523, 529, 388 N.W.2d 170 (1986).
[2, 3]
¶ 18. We will not reverse a correct decision of the trial court even though the reason for that decision may have been erroneously expressed. See State ex rel. Schultz v. Bruendl, 168 Wis. 2d 101, 113, 483 N.W.2d 238 (Ct. App. 1992). If a trial court reaches the correct result, even for the wrong reason, the trial court's decision will be affirmed. See State v. Amrine, 157 Wis. 2d 778, 783, 460 N.W.2d 826 (Ct. App. 1990).
¶ 19. Wisconsin recognized promissory estoppel as a cause of action in Hoffman v. Red Owl Stores, Inc., 26 Wis. 2d 683, 133 N.W.2d 267 (1965). The Hoffman court provided:
A promise which the promisor should reasonably expect to induce action or forbearance of a definite and substantial character on the part of the promisee and which does induce such action or forbearance is binding if injustice can be avoided only by enforcement of the promise. *161 Id. at 694 (citation omitted). The Hoffman court described promissory estoppel as "an attempt by the courts to keep remedies abreast of increased moral consciousness of honesty and fair representations in all business dealings." Id. at 695 (citation omitted).
[4]
¶ 20. Hoffman sets out three requirements of a promissory estoppel cause of action:
(1) Was the promise one which the promisor should reasonably expect to induce action or forbearance of a definite and substantial character on the part of the promisee?
(2) Did the promise induce such action or forbearance?
(3) Can injustice be avoided only by enforcement of the promise?
Id. at 698. The first two elements are questions for the fact finder. See U.S. Oil Co. v. Midwest Auto Care Servs., Inc., 150 Wis. 2d 80, 89, 440 N.W.2d 825 (Ct. App. 1989). The third element is a policy question to be decided by the court. See id.
¶ 21. We must determine if the facts of this case demonstrate that Seater is entitled to promissory estoppel relief. We are bound by the factual findings of the trial court unless the findings are clearly erroneous. See WIS. STAT. § 805.17(2).
¶ 22. We conclude that the trial record supports Seater's promissory estoppel claim. On August 7, 1997, Rawson submitted a subcontractor bid for Seater's use in its general bid for the project. Rawson's bid was for a specific amount of money$179,663for all project plumbing work, excluding certain oil/grease lubrication lines and equipment. On September 15, 1997, Seater sent Rawson notice that Rawson had been the lowest plumbing bidder on the project, that Seater's *162 general bid had been accepted by the city, and that Rawson's subcontract would soon be mailed.[2] Rawson admittedly knew that its bid had been incorporated into Seater's bid and that the city had accepted Seater's low bid soon after August 7, 1997. Rawson knew that Seater had accepted its bid when Rawson was asked about price changes for plumbing modifications at the beginning of October 1997. Rawson submitted the proposed price changes to Seater regarding the plumbing modifications on October 20, 1997.
¶ 23. On November 5, 1997, Seater sent Rawson the subcontractor agreement. Seater's project manager called Rawson's president on November 5, 1997, to provide Rawson the date Rawson was needed at the project. On November 12, 1997, at Rawson's request, Seater sent Rawson three sets of plans and specifications for the project. On November 19, 1997, Seater sent Rawson another project schedule. Not once during this entire time, from August 7, 1997, until early December 1997, did Rawson make any attempt to withdraw its bid.
[5]
¶ 24. Rawson's bid constituted a promise to Seater to complete the plumbing work on the project for a specific price if the city accepted Seater's bid. Rawson's bid was definite and it reasonably expected the bid to induce action by Seater. The terms of the bid *163 were unequivocal and clear. Rawson's promise induced Seater to submit its bid to the city and to sign a contract with the city for the project. In addition, Rawson's behavior after the bid indicated its willingness to provide the project plumbing work at the bid price. Rawson continued to participate in the project development and to coordinate its agenda with Seater. Rawson never mentioned its inability to honor its promise until after it failed to appear at the project site on schedule.
¶ 25. As a result of Rawson's failure to honor its promise, Seater was compelled to find another subcontractor to complete the work. Due to construction delays and the last-minute hiring of Kaelber Company, Seater incurred $45,400 in extra expenses. The only way to avoid an injustice in this situation is for Rawson to compensate Seater for the extra expenses Seater incurred as a direct result of Rawson's failure to honor its promise.
¶ 26. Rawson argues that it is not bound by its promise because the bid had expired based upon a clause in the project manual. Specifically, Rawson relies upon the section of the project manual entitled "Proposal." The proposal section of the project manual states, in relevant part, "All [b]ids as stated above are effective and open for acceptance by the Owner for a period of sixty (60) days after date set for opening of bids." Rawson argues that because of this clause, Seater had no right to rely on Rawson's bid beyond sixty days from August 7, 1997. This argument is without merit.
[6]
¶ 27. First, the language of the project manual, not only in the proposal section but throughout the entire manual, applies the sixty-day expiration clause not to Rawson, but to Seater, the general contractor. *164 The proposal section gives instructions to general contractors regarding the submission of a bid to the city, the bid forms required by the city, and the timing of the bid to the city. These instructions apply to the general contractors who are offering bids directly to the city, not to the subcontractors. We disagree with Rawson that the language on page 300-7 of the project manual applies to subcontractors.
¶ 28. Second, even if the sixty-day expiration clause did apply, by its own admission Rawson knew long before the sixty-day period expired on October 7, 1997, that Seater had accepted Rawson's bid, that Seater's bid was the lowest bid, and that the city had accepted Seater's bid. Rawson knew all of this information within days of its August 7, 1997 bid. On September 15, 1997, Seater sent Rawson notice that Seater intended to proceed with Rawson's bid and after signing the contract with the city would forward a subcontract to Rawson. Rawson knew that Seater had accepted its bid when Rawson was asked about price changes for plumbing modifications at the beginning of October 1997.
¶ 29. Furthermore, a great deal of activity in which Rawson actively participated occurred after the alleged expiration of the sixty-day period. Rawson submitted the proposed price changes to Seater regarding the plumbing modifications on October 20, 1997. Rawson received a contract from Seater around November 5, 1997. Seater's project manager called Rawson's president on November 5, 1997, to provide Rawson the date it was needed at the project. On November 12, 1997, Rawson requested three sets of project plans and specifications. Rawson continued to actively participate in the project development after October 7, 1997, contrary *165 to its contention that its bid had expired on October 7, 1997.
¶ 30. The reasoning in Sandroni v. Waukesha County Board of Supervisors, 173 Wis. 2d 183, 496 N.W.2d 164 (Ct. App. 1992), supports our conclusion. In Sandroni, a subcontractor brought an action against a general contractor for declaratory and injunctive relief to compel the general contractor to use its services on the basis of acceptance of a bid that had included its bid as a subcontractor. We held that the subcontractor had no standing to make a contract claim. See id. at 185.
¶ 31. Here, we have an entirely different situation. We have a general contractor seeking to enforce a bid from a subcontractor. Sandroni anticipated just such a situation:
[T]he reason a subcontractor is bound by its bid is the existence of justifiable reliance by the general on the subcontractor's price for specified work. The general makes his bid after gathering bids and evaluating a number of subcontract bids. Once the general wins the prime contract . . . he is bound to his own bid. For the subcontractor to be able to refuse to perform would subject the general to a financial detriment. . . . Ample justification exists for binding the subcontractor. . . .
Id. at 189 (citations omitted). Sandroni reasons that a subcontractor should be bound by its bid because of the general contractor's reasonable reliance on the bid in submitting its own general bid for the prime contract. See id.
¶ 32. Rawson promised Seater, by virtue of its subcontractor bid, to complete the necessary project plumbing work for a specific price if Seater's bid was accepted by the city. Seater relied on that promise in *166 submitting its own bid for the project. Rawson's failure to honor its bid cost Seater $45,400 and justice demands that Rawson compensate Seater for this expense.

CONCLUSION
[7]
¶ 33. A subcontractor is bound by its bid to a general contractor under the doctrine of promissory estoppel if the subcontractor's bid induced the general contractor to submit a bid and accept an offer for a construction project. If the subcontractor fails to honor that promise, injustice to the general contractor can only be avoided by enforcement of the subcontractor's bid. Seater's reliance on Rawson's bid and Rawson's subsequent failure to honor that bid cost Seater $45,400. While the trial court found in favor of Seater on a breach of contract basis, we conclude that the record facts support recovery pursuant to the doctrine of promissory estoppel, the cause of action originally pled by Seater. The trial court's judgment is affirmed.
By the Court.Judgment affirmed.
NOTES
[1]  All references to the Wisconsin Statutes are to the 1997-98 version unless otherwise noted.
[2]  Rawson claims that it never received Seater's September 15, 1997 letter. The trial court found this assertion to be incredible. The letter was mailed to Rawson's correct address in the normal course of business along with all the other subcontractor letters. In addition, Rawson continued to participate in the project process. Even if Rawson's assertion was true, the trial court found that Rawson knew that Seater's bid had been accepted by the city within days of August 7, 1997.
