Writing an EV charging RFP that produces comparable bids
Specify six things and the bids line up: how uptime is defined and how it is measured, whether the hardware can move to a different network, what the warranty covers and for how long including labour, exactly where make-ready responsibility splits between you and the bidder, what energy price and demand charge every bidder must assume, and who owns decommissioning at the end. Leave any of the six open and each bidder fills it in their own favour, which is why the numbers come back in different shapes. That is a scope problem, not a vendor-honesty problem, and it is yours to fix before the RFP goes out.
Updated 2026-08-20
Why bids come back incomparable
Because a loose scope is an invitation for each bidder to price a different job, and every one of them prices it to win.
The six specifications
These are the six that decide comparability. Everything else in an RFP is detail around them.
| Specification | State it like this | If you leave it open |
|---|---|---|
| Uptime definition and measurement | Define the numerator, the denominator, the exclusions and the data source, and require monthly reporting against it | Every bidder quotes a percentage that means something different, and none of them are wrong |
| Network portability | Require the protocol and version the hardware supports, and require a written statement of what happens to the units if you change network provider | You buy hardware that is functionally leased to one network for its life |
| Warranty term and scope | State the years, state parts and labour, state what voids it, and require deviations priced separately | Cheap hardware wins on capital and loses on year three |
| Make-ready responsibility split | List every scope item and assign each to you, the bidder or the utility, before the bid goes out | The largest civil numbers land in different columns and the totals cannot be compared |
| Energy price and demand assumption | Give every bidder the same rate schedule, the same energy price and the same demand charge to model against | Operating-cost projections become marketing rather than arithmetic |
| Decommissioning obligation | State who removes the equipment, who restores the surface, and what happens at end of term or on early termination | You inherit a pedestal and a hole nobody agreed to fill |
Uptime is the one people get wrong
An uptime number is meaningless without a definition, and the definition is where the argument lives.
| Committed uptime | Allowed outage per year | Allowed outage per month |
|---|---|---|
| 99.9% | 8.8 hours | About 44 minutes |
| 99.5% | 43.8 hours | About 3.7 hours |
| 99.0% | 87.6 hours | About 7.3 hours |
| 98.0% | 175.2 hours | About 14.6 hours |
| 97.0% | 262.8 hours | About 21.9 hours |
| 95.0% | 438.0 hours | About 36.5 hours |
Network portability, in the only form that is testable
Ask for the protocol and the version, and then ask the harder second question about what the units do if you leave.
The scope skeleton
Keep it in this order. It puts the decisions before the pricing, which is what makes the pricing comparable.
The evaluation matrix
Publish the weights in the RFP. It disciplines the bids and it disciplines you, because a scoring scheme written after the bids arrive is a scoring scheme written around a preferred bidder.
| Criterion | Suggested weight | What you are scoring |
|---|---|---|
| Total cost over the evaluation term | 30 | The full line-item schedule, not the capital number |
| Uptime commitment and service response | 20 | The definition, the exclusions, the remedy, and the reporting |
| Warranty scope and term | 10 | Years, parts and labour, and what voids it |
| Network portability and data ownership | 10 | The written migration answer, and who owns utilisation data |
| Relevant commercial experience | 15 | Comparable scope, comparable service voltage, and live references |
| Schedule credibility | 10 | Whether the timeline accounts for the utility, or assumes it away |
| Local presence and spare parts holding | 5 | Who arrives when a port fails, and how quickly |
Price the whole term, not the purchase
Require every bidder to complete the same line-item schedule over the same number of years, or you are comparing capital numbers while the recurring costs quietly diverge.
| Line item | Basis | Who supplies the figure |
|---|---|---|
| Charging hardware | Per port | Bidder |
| Installation and customer-side make-ready | Per port and per site | Bidder. Our modelled range for networked commercial Level 2 is $4,500 to $9,500 per port before any make-ready credit |
| Utility-side work | Per site | The utility, in writing. Do not let a bidder estimate it |
| Network subscription | Per port per year | Bidder |
| Warranty extension beyond the base term | Per port per year | Bidder |
| Preventive maintenance | Per port per year | Bidder |
| Energy and demand | Per year at your stated assumptions | You supply the assumptions; bidder models against them |
| Payment processing | Percentage or per transaction | Bidder |
| Decommissioning and surface restoration | Per site | Bidder |
Incentives belong on their own line, never inside the price
Require gross pricing, with every incentive listed separately by sponsor, program name, amount and current funding status.
What to leave out
A bloated RFP produces worse bids, not better ones, because the good firms decline to respond.
How long should an EV charging RFP be?
Long enough to close the six specifications and short enough that competent firms will respond. Most of the length in a bad RFP is company-history questions and boilerplate that does not change a single number in the bid. If a section would not alter how a bidder prices the work or how you score it, cut it.
Should we run the RFP before or after the site assessment?
After, always. The assessment converts unknowns into measurements — service size, spare capacity from a recorded load study, conduit run in feet, surface types, transformer location — and those measurements are what let bidders price the same job. An RFP issued against an unmeasured site produces bids that change later, which is where change orders come from.
What uptime should we require?
Decide from what the site is for rather than from a number in a brochure. A hotel forecourt where a dead port is a guest complaint justifies a tighter commitment and the service cost that comes with it; an employee lot may not. What matters more than the percentage is the definition behind it, the list of exclusions, and whether there is a remedy at all when it is missed.
Is OCPP support enough to avoid vendor lock-in?
It is necessary and not sufficient. Vendors implement OCPP with proprietary extensions, and hardware that supports the protocol can still be practically difficult to move to another platform. Specify the protocol and version, and separately require a written description of what changing network provider would actually involve — who migrates, whether firmware changes, what features are lost, what it costs.
How many bidders should we invite?
Three to five who are genuinely qualified beats a long list. Qualify before you invite: licence class for the scope, EVITP-certified electricians on the crew, presence on your utility's approved-contractor list if your make-ready program requires one, and demonstrable commissioning experience. Inviting unqualified firms produces cheap bids you cannot accept.
Can we include the federal tax credit in the RFP assumptions?
No. Section 30C terminated for property placed in service after June 30, 2026 and there is no federal replacement, so a federal credit line contributes zero to any project quoted today. Instruct bidders to price gross and list state and utility programs separately with sponsor, amount and funding status. Treat a federal credit line in a returned bid as an error to correct before evaluation.
Put a number in the RFP before you send it
An owner who knows the likely range reads bids differently from one who does not. Tell us the port count, the service size and the distance from the panel, and the estimate returns a modelled range with the civil work broken out.