A facilities manager sent me three bids for the same 620 kW rooftop last spring. Low bid was 41% under the high one. His question was reasonable: is the expensive one padding, or is the cheap one missing something?
Usually it is neither. Three bidders looked at the same roof and made different assumptions, and nobody wrote those assumptions down where a buyer could see them. The spread is real, but it is almost never a pure margin difference.
Compare cost per watt, but be careful which watt. Bidders quote against DC nameplate or AC output more or less at random, and a system with a 1.3 DC:AC ratio looks 30% cheaper per watt if you quote DC and compare it against someone quoting AC.
Make everyone quote both. If a bidder cannot produce both numbers within a day, that tells you something about how the design was put together.
Every bid comes with an energy estimate, and that estimate is doing more work in the financial case than the price is. A 4% difference in first-year specific yield changes the payback more than a 4% difference in capital cost, because it compounds across twenty-five years.
Ask each bidder for the loss table behind the model, not just the headline number. You want to see:
When one bidder's yield is 6% above the others and their loss assumptions are the reason, you have found your explanation for the price gap. They are not selling you more system, they are selling you a better spreadsheet.
In my experience the recurring omissions, in rough order of how often they show up:
Here is the one I use, and it works: which single assumption in your bid are you least confident about?
An estimator who has genuinely walked the roof answers immediately and specifically – the DB capacity, the condition of the purlins on the north bay, whether the utility will require an anti-islanding relay upgrade. Someone who priced from a satellite image gives you a generality.
You are not testing whether they are certain. You are testing whether they know where the uncertainty lives.
Genuinely cheap bids tend to be cheap for one of four reasons, and only one of them is a problem for you:
Lower-cost equipment. Fine, if you know which brand and tier, and you have checked the warranty terms are actually enforceable in your jurisdiction. A twenty-five year warranty from an entity with no European or US presence is a letter, not a warranty.
Thinner engineering. Less design time, standard details applied to a non-standard roof. This is where the future underperformance comes from, and you will not see it in the bid document.
Lower margin, deliberately. They want the reference, or they have a crew idle next month. Legitimate, and often a good deal.
Excluded scope. The one to hunt for. Not deception usually, just a bidder answering a different question from the one you asked.
Build one table. Rows: DC capacity, AC capacity, module make and count, inverter make and count, mounting type, year-one yield, degradation assumption, O&M cost per year, what is excluded. Fill it from the bids, and email each bidder the row that is blank for them.
Two things happen. The spread usually narrows to something like 12-18%, which is a normal competitive range. And the bidders who respond quickly and precisely are the ones you want doing the work anyway.
The bid comparison is not really a price exercise. It is the first sample you get of how each of these companies handles a question they did not expect.