Raising price 5¢ vs raising utilization 10%: which moves NPV more
Two levers that add the same $30,480 of first-year revenue. One adds $571,660 of NPV, the other $180,854. The difference is what each drags along with it.
On this page5 sections
Here is a clean experiment. Take the engine's default eight-stall site on PG&E's BEV-2 rate at $0.45 per kWh, on the Standard ramp. Then move one lever at a time.
Raising the retail price by five cents, to $0.50, adds $30,480 of charging revenue in year one. Raising utilization by 10% across the whole ramp curve adds $30,479. To the penny, the two levers put the same money on the top line. They do not put the same money on the bottom line, and the gap is large enough to be the whole story of a site.
The scoreboard#
| Base | Price +5¢ | Utilization +10% | |
|---|---|---|---|
| Retail price | $0.45 | $0.50 | $0.45 |
| Year-1 charging revenue + net LCFS | $304,798 | $335,278 | $335,277 |
| Year-1 electricity bill | $176,244 | $176,244 | $191,116 |
| Year-1 net operating cash | −$158,515 | −$128,035 | −$149,004 |
| Peak cash deficit | $158,515 | $130,004 | $149,460 |
| 5-year cumulative cash | −$205,764 | −$13,454 | −$143,544 |
| Payback | 171 months | 145 months | 169 months |
| NPV at 10% | −$86,642 | +$485,018 | +$94,212 |
| 15-year IRR | 8.7% | 16.9% | 11.4% |
Same revenue. The price lever moves NPV by +$571,660; the utilization lever by +$180,854. The price lever is worth three times as much, and it is worth it in every column: it closes the five-year hole, it shortens payback by more than two years, it cuts the working capital the ramp consumes.
Why the same revenue is not the same money#
A kilowatt-hour sold brings costs with it. A cent of price does not.
When utilization rises 10%, the site buys 10% more electricity, and the energy charge rises with it: $14,872 more in year one. It pays Tesla's network fee on every one of those kilowatt-hours, another $6,096. The energy loss factor grosses up the purchase, so the meter bills 12% more than the cars receive. Of the $30,479, $3,048 is net LCFS credit rather than charging revenue, which carries no cost; the rest does. Roughly two-thirds of the extra top line leaves again as the cost of earning it.
When price rises five cents, nothing else moves. The electricity bill is identical to the dollar. The network fee is identical, because Tesla's fee is per kilowatt-hour, not per dollar. The whole $30,480 lands as margin.
Then the fifteen-year horizon multiplies the difference. The engine escalates retail price at 5% a year, so a higher starting price compounds to a higher year-fifteen price, while the extra utilization is capped at 490 kWh per stall per day by the hardware and grows toward that ceiling on the same schedule as the base case. Over the horizon, counting the year-fifteen terminal value at the default multiple, the extra five cents is worth $1.48M; the extra 10% of utilization is worth $465,000.
Doubling the dose#
The pattern holds when the levers are pulled harder, and it also shows how each one bends:
| NPV | 15-year IRR | Payback | |
|---|---|---|---|
| Base | −$86,642 | 8.7% | 171 mo |
| Price +5¢ | +$485,018 | 16.9% | 145 mo |
| Price +10¢ | +$1,055,526 | 25.0% | 116 mo |
| Utilization +10% | +$94,212 | 11.4% | 169 mo |
| Utilization +20% | +$273,915 | 14.0% | 158 mo |
| Both: +5¢ and +10% | +$721,771 | 20.2% | 133 mo |
Price is close to linear: the second nickel is worth almost exactly what the first was. Utilization is slightly concave, because the extra kilowatt-hours keep buying electricity at the same effective rate while the site creeps toward the cap. And the two together are worth more than the sum of their parts, $808,413 against $752,514, because a higher price applied to more kilowatt-hours is a product, not a sum.
What the tornado says#
The engine's sensitivity pass perturbs every top-line input by ±20% and ranks them by what they do to five-year cumulative cash. On this site:
| Input, ±20% | Swing in 5-year cash | Swing in 15-year cash |
|---|---|---|
| Retail price | ±$346,158 | ±$2,671,791 |
| Utilization | ±$124,440 | ±$929,385 |
| Capex (hardware + install) | ∓$97,509 | ∓$238,443 |
| Electricity peak rate | ∓$96,969 | — |
Price is the first-ranked input by a factor of nearly three, which is the same ratio the two-lever experiment found from the other direction. The returns pillar explains how the tornado is built.
The assumption that makes this true#
Everything above holds one thing fixed that the real world does not: the engine is a price-taker. When retail price moves, utilization does not move in response. There is no elasticity term, no modelled driver who sees $0.50 on the screen and keeps going to the EVgo across the road.
That is a deliberate scope, and it is why the result reads as it does. The engine reports what a price does to the arithmetic of a site. It does not report what a price does to the drivers passing it, because that depends on the competing stalls within a few miles, the dwell time the location offers, and the share of traffic with no alternative, none of which a tariff sheet contains. The honest reading of the scoreboard is therefore: a cent of price is worth about three times a matching cent of volume, if the volume holds. Whether it holds is a diligence question about the site, and it is the question these numbers put a dollar figure on.
The scenario wizard exposes both levers for any address, the methodology page documents the escalation and cap rules used here, and the ramp post covers what the utilization input is actually made of.
Engine outputs are model projections under the stated assumptions, not advice or guarantees. The site, tariff and financing are the engine's documented defaults.
Model a real site
See these numbers for a specific site
The scenario wizard runs the same engine described on this blog: enter an address, stall count, price, and your assumptions, and it computes the payback, NPV, IRR, breakeven utilization, and the full 15-year cash flow for that combination.
Written by
ForgeAsset
Independent underwriting for Tesla's Supercharger for Business program. The figures on this blog come from the same filed tariffs and engine that the scenario wizard runs.
@Forge_Asset on X