Plaintiff Spectra Novae, Ltd., and third-party defendants Lilly, Menashe and South Lake Partnership, appeal a judgment of dismissal entered in this action for breach of contract. Defendant Waker Associates, Inc., cross-appeals, assigning error to the trial court’s denial of attorney fees. We affirm in part and reverse in part on the appeal, and reverse on the cross-appeal.
The undisputed evidence shows the following facts. Spectra Novae was interested in developing as a residential development an area known as Taylor’s Crest. Waker agreed to provide Spectra Novae with various engineering design services, including preparation of plans for proper storm drainage, sanitary and water systems. Spectra Novae then transferred all of its interests in the Taylor’s Crest project to South Lake, which was a partnership consisting of Spectra Novae’s principal shareholder, Lilly, and another individual, Menashe. Construction ensued. Sometime thereafter, Multnomah County informed Spectra Novae that one of the storm lines was not located in accordance with approved plans. South Lake, not Spectra Novae, paid for the relocation of the line.
Spectra Novae, not South Lake, then sued Waker for damages arising out of the relocation. Waker counterclaimed for breach of contract. It also cross-claimed against Lilly, Menashe and South Lake. Waker deposed Lilly, who testified that, following the transfer to South Lake, Spectra Novae “no longer had any interest” in the Taylor’s Crest development. When asked why Spectra Novae, and not South Lake, had sued Waker, Lilly replied: “I’m not a lawyer, so I really don’t know.” Waker then moved for summary judgment on the ground that Spectra Novae could not obtain damages for relocating the storm line because it did not pay for the relocation and had no interest in the development.
Five days before the hearing on the summary judgment motion, Spectra Novae produced an affidavit of Lilly, who averred that, notwithstanding his deposition testimony that Spectra Novae has no further interest in the Taylor’s Crest development:
*58“If Waker is not held liable to Spectra or South Lake, Spectra is liable to South Lake for the relocation costs advanced by South Lake as a result of Waker’s breach of contract.”
On the basis of that affidavit alone, Spectra Novae opposed Waker’s summary judgment motion.
Waker objected to the affidavit. Indeed, the trial court itself questioned counsel for Spectra Novae about the admissibility of the document, in that it merely states a conclusion. Counsel declined the opportunity to have Lilly provide any factual underpinnings for his conclusions and, instead, rested on the affidavit. The trial court determined that the affidavit was inadmissible and granted Waker’s motion. Spectra Novae moved to amend its complaint in order to add South Lake as a plaintiff, and South Lake moved to amend its answer to Waker’s third-party complaint, in order to add a counterclaim against Waker. The trial court denied both motions, and the case went to trial. The jury returned a verdict for Spectra Novae on the counterclaim and for Lilly, Menashe and South Lake on the cross-claim. The trial court awarded no party its attorney fees.
In its first assignment of error, Spectra Novae argues that the trial court erred in granting Waker’s motion for summary judgment, because Lilly’s affidavit created a genuine issue of material fact as to whether it suffered damages for relocating the storm line even though South Lake paid all relocation costs. Waker contends that the trial court correctly determined that Lilly’s affidavit stated only a bald legal conclusion, supported by no allegations of historical fact, and that the trial court’s entry of summary judgment was proper.
We review the trial court’s decision to determine whether the pleadings, depositions and affidavits that comprise the summary judgment record show that there is no genuine issue of material fact and that Waker is entitled to judgment as a matter of law. ORCP 47 C; Jones v. General Motors Corp., 139 Or App 244, 248, 911 P2d 1243 (1996). Affidavits submitted in opposition to a summary judgment motion must
“set forth such facts as would be admissible in evidence, and shall show affirmatively that the affiant is competent to testify to the matters stated therein.”
*59ORCP 47 D. Opinions as to liability are legal conclusions and are not the proper subject of a witness’s testimony. Olson v. Coats, 78 Or App 368, 370, 717 P2d 176 (1986). Affidavits consisting of such opinions are not sufficient to defeat a summary judgment motion. See Allen v. Kaiser Foundation Hospital, 76 Or App 5, 9, 707 P2d 1289 (1985).
Spectra Novae argues that Lilly did not really testify as to the legal question of its liability but merely as to the effect of an agreement between it and South Lake. Determination of the effect of the terms of an agreement, however, is generally regarded as a question of law. Anderson v. Divito, 138 Or App 272, 277, 908 P2d 315 (1995). Moreover, we have searched Lilly’s affidavit in vain for any averment as to the terms of such an agreement or, for that matter, that there was such an agreement. The affidavit contains no allegation of historical fact, no statement as to who said what, when or where. It consists solely of a statement that, for some unexplained reason, “Spectra [Novae] is liable.”
We conclude that the trial court correctly determined that Lilly’s affidavit failed to create a genuine issue of material fact as to whether Spectra Novae suffered any damages arising out of the relocation of the storm line. The evidence, therefore, remains undisputed that South Lake, and not Spectra Novae, paid for the relocation of the storm line and that Spectra Novae suffered no loss in the process. The trial court’s entry of summary judgment for Waker was not error.
Spectra Novae and South Lake next assign error to the trial court’s denial of their motions to amend their pleadings. We review the court’s rulings for an abuse of discretion. Jackson Co. v. Jackson Education Serv. Dist., 90 Or App 299, 303, 752 P2d 1224, rev den 306 Or 155 (1988). We find no abuse of discretion and affirm the trial court’s decision on those rulings without further discussion.
South Lake next assigns error to the trial court’s failure to award it attorney fees on the contract between Spectra Novae and Waker. We review a party’s contractual entitlement to attorney fees as a question of law. Ricciardi v. Frink, 133 Or App 436, 442, 891 P2d 1336, rev den 321 Or 268 (1995). South Lake argues that the contract provides for an *60award of attorney fees to the prevailing party in an enforcement suit and that it is a prevailing party. Waker argues that, because South Lake was not a party to the agreement under which it claims fees, it is entitled to none. Waker misses the point. Spectra Novae assigned its interest in the contract to South Lake, a fact that Waker does not dispute. South Lake was, therefore, a party to the agreement, and it is entitled to fees under its terms if it prevailed on the claims Waker asserted against it. See Kunzman v. Thorsen, 303 Or 600, 610, 740 P2d 754 (1987); US Natural Resources, Inc. v. Gray, 66 Or App 769, 773, 676 P2d 912, rev den 297 Or 83 (1984); Fick v. Dairyland, 42 Or App 777, 780, 601 P2d 868 (1979).
We conclude that South Lake did prevail. Waker asserted a breach of contract claim against the partnership, and, although the jury found that South Lake was in breach, it awarded no damages. A determination of liability without a corresponding finding of damages is insufficient to establish that a party has prevailed on its breach of contract claim. See Dean Vincent, Inc. v. Krimm, 285 Or 439, 445, 591 P2d 740 (1979); American Petrofina v. D & L Oil Supply, 283 Or 183, 199, 583 P2d 521 (1978). The trial court, therefore, erred in failing to award South Lake its attorney fees.
In its cross-appeal, Waker argues that the trial court erred in failing to award it fees, at the very least, for the costs of defending the action brought by Spectra Novae. Waker has claimed fees under two separate provisions of its contract with Spectra Novae. One provision calls for an award of fees to the “prevailing party” in any litigation to enforce the agreement. The other provision provides:
“In the event that client [i.e., Spectra Novae] institutes a suit against consultant [i.e., Waker] because of any failure or alleged failure to perform, error, omission, or negligence and if such suit is not successfully prosecuted, or if it is dismissed, or if verdict is rendered for consultant, client agrees to pay consultant any and all costs of defense, including attorney’s fees, expert witnesses’ fees, and court costs and all other expenses of defense * *
Waker argues that it is entitled to attorney fees under both provisions. Spectra Novae argues that, because the jury *61returned a verdict of zero damages, Waker was not a “prevailing party” and, thus, not entitled to fees under either provision.
Concerning the first contractual provision, which provides for an award of fees to the “prevailing party,” we conclude that the trial court correctly determined that Waker did not “prevail” at trial. Although Waker obtained dismissal of Spectra Novae’s breach of contract claim, it obtained no damages on its own counterclaim for breach of contract. Dean Vincent, Inc., 285 Or at 445; American Petrofina, 283 Or at 199. Under the circumstances, the trial court correctly concluded that neither party prevailed. See Dan Bunn, Inc. v. Brown, 285 Or 131, 149, 590 P2d 209 (1979).
The second contract provision, however, contains no reference to “prevailing” on any claim as a predicate to the award of fees. Its phrasing is more specific, and requires an award of defense costs if Spectra Novae sues Waker and that suit “is dismissed.” That is precisely what occurred in this case. Accordingly, the trial court did err in failing to award Waker its costs of defending Spectra Novae’s breach of contract action.
Affirmed in part and reversed in part on appeal; reversed on cross-appeal.