← Back to Insights

Operations

EV charging demand charges: how to find true site margin

By Better Software · Sun Sep 20 2026 · 8 min read

EV charging demand charges: how to find true site margin

If you run EV charging on a commercial site, the network dashboard does not tell you whether a port is profitable. It tells you what drivers paid. The utility bill tells you what the meter cost. The hard part is the demand charge, which is often the largest line on the bill and is set by one 15-minute window on a meter that may also feed refrigeration, HVAC, and lighting.

The practical answer is to build a monthly per-port profit view from three systems: the charge point management system (CPMS), the utility bill, and your service tickets. Then allocate the site-level demand charge with a rule you can defend. If you already have live ports, that is the question that matters: which site earns, which one subsidizes the others, and what should you change next?

Why the demand charge breaks the simple revenue view

A demand charge is based on the highest 15-minute average draw in the billing period. One busy interval can set the bill for the month, and in some tariffs a ratchet clause can carry that peak forward into later bills. That is why two drivers plugging in at the same time can matter more than a week of quiet sessions.

This is especially misleading on a shared meter. A convenience store charger may look weak in the CPMS, but the real bill spike may come from the cooler starting up at the same moment. If you only look at session revenue per kWh, you miss the one charge that can wipe out the margin.

Public sources aimed at operators make the same point. Plugin America describes demand charges as the highest roughly 15-minute window and notes that they can account for a large share of a business bill. Better Energy’s older but still useful DC fast charging example shows how demand charges can become a large share of annual station cost as power levels rise. Those figures are illustrative, but the mechanism is real.

The allocation rule that actually works on a mixed-load meter

You need a site-level rule before you can break cost down to ports. There are three common ways to do it.

MethodHow it worksTradeoff
Coincident-peak attributionUse 15-minute interval data to assign the demand charge to the ports active during the billed peak.Most defensible if you have interval data, but it needs clean timestamps and meter data.
Submeter the EV servicePut a separate meter on the chargers and bill them directly.Cleanest answer, but it costs capital and may not fix host-level load shifts.
Marginal-contribution allocationAttribute only the increase above the pre-charger baseline peak to the charging operation.Economically sensible for a host site, but it is the hardest to compute and explain.

If I had to pick one method for a mixed-load commercial site, I would use coincident-peak attribution as the default, then test the marginal view if I had good baseline interval data. It is the best balance between defensibility and practicality. You can show how the peak was created, and you do not need to pretend the utility bill can be split by intuition.

That said, if the site is on a dedicated EV meter, the problem gets much simpler. In that case, the demand charge can be allocated directly across the ports on that meter, usually by each port’s share of monthly kWh or, better, by each port’s share of 15-minute coincident usage if you have it.

The three data pulls you need

The reconciliation works only if you name the fields up front. The join key is usually ugly. Port ID and meter ID are often linked in a spreadsheet someone maintains by hand, not in a clean master data system.

From the CPMS

  • Port ID
  • Session start and stop time
  • kWh delivered
  • Gross session revenue
  • Network fee or platform fee
  • Host revenue share, if any
  • Idle fees
  • Fault codes and downtime markers

From the utility bill

  • Account number and meter number
  • Rate schedule
  • Energy charge
  • Demand charge and billed kW determinant
  • Ratchet terms, if the tariff has them
  • Interval data, if the utility provides it

From field service or ticketing

  • Ticket ID
  • Port ID
  • Labor cost
  • Parts cost
  • Truck roll cost
  • Downtime minutes

Once you have those fields, the monthly P&L becomes a spreadsheet or reporting layer, not a guessing exercise. The formula is straightforward: session revenue minus the port’s allocated share of the utility bill, minus network and payment fees, minus O&M and truck rolls, minus any host revenue share.

Turn uptime reporting into the finance spine

If some of your sites were funded through NEVI, there is a useful overlap between compliance and finance. Federal rules in 23 CFR 680.116(b) require greater than 97 percent average annual uptime per charging port, calculated monthly over the previous twelve months, with specific exclusions such as utility outages, vehicle-side faults, scheduled maintenance, vandalism, and natural disasters. The same rule also calls for real-time per-port status through an API in OCPI 2.2.1 terms. You can review the current text at the eCFR section for 23 CFR 680.116.

That requirement does not apply to every commercial charger in a hotel garage or retail lot. It does apply to NEVI-funded ports. California also has separate uptime and reporting rules, so do not assume the federal standard is the only one that matters.

The point is not that uptime reporting is a profit tool by itself. The point is that if you already have port-level downtime minutes, you already have part of the operating cost picture. A port that is frequently down cannot be judged only on gross revenue. Its margin should be viewed on an availability-adjusted basis.

A worked example with three sites

The numbers below are illustrative only. They are meant to show how the ranking can change once you allocate the demand charge properly.

SiteSession revenueAllocated utility costO&M and truck rollsNet marginWhat the raw dashboard suggests
Site A: dedicated DC fast charger$8,400$5,900$900$1,600Looks strong
Site B: 4-port L2 bank on shared c-store meter$2,100$2,400$350-$650Looks modestly positive
Site C: destination charger at hotel$1,300$700$500$100Looks weak

In this example, Site B looks better before allocation because its session revenue is visible and the building load is hidden in the meter bill. Once the demand charge is assigned to the meter and then split by a defensible rule, Site B becomes loss-making. Site C, even with lower revenue, may survive because its meter impact is smaller and its service burden is lighter.

That is the inversion you are looking for. The network dashboard usually ranks sites by revenue or utilization. The per-port P&L ranks them by actual contribution after the utility bill is included.

What to do once you know the margin

The answer is usually one of five actions, and the right one depends on why the margin is weak.

  • Reprice if the sessions are valuable but the tariff is too expensive for the load shape.
  • Add load management if the site is being hit by avoidable peaks and the charger hardware supports throttling.
  • Change operating hours if the worst peaks happen during low-value periods.
  • Renegotiate the host share if you are paying a revenue split that ignores the meter economics.
  • Remove or relocate the unit if the site is structurally uneconomic even after tariff and load management changes.

Load management is worth special caution. It can reduce the bill, but it also changes the operating pattern you are trying to measure. If you have not built a clean baseline first, you may never know whether the site was bad, the tariff was bad, or both.

Build the reporting layer only as far as the problem justifies

A CPMS will tell you session revenue and charger status. It will not usually tell you the utility bill or the tariff logic that creates the demand charge. That is why the reconciliation work is usually a thin layer over three existing sources, not a full custom platform.

Build something durable if you have multiple meters, mixed-load sites, or more than one charging network. At that point, manual exports stop being cheap and start being fragile. If the problem is a handful of ports on one meter, a disciplined spreadsheet and monthly process may be enough.

This is the kind of work that sits between operations and accounting. It is not a pure software problem, but it also does not stay manageable if no one owns the joins. The useful system is the one that lets you say, with evidence, which site earns, which site subsidizes the others, and what change will move the answer.

What operators usually ask next

If you are asking whether EV charging sites are profitable, the honest answer is that some are and some are not, and the difference often comes from the demand charge and the meter they sit behind. If you are asking how to avoid demand charges, the first step is not a product purchase. It is measuring when your peak happens and whether the charger or the building caused it.

Why is DC fast charging so expensive? Because the hardware, the grid connection, and the tariff all punish high instantaneous load. How much revenue can a station generate? That depends less on the headline price per kWh than on utilization, tariff structure, host share, and the service cost you do not see in the dashboard.

The next sensible step is simple: export one month of CPMS data, one utility bill, and one ticket report for a mixed-load site. Put them on the same timeline. Then allocate the demand charge with a rule you can explain in one paragraph. If the site still looks healthy after that, you have a business. If it does not, you have a decision.