Most CPOs default to per-kWh pricing because it's the easiest for drivers to compare - and then wonder why a busy retail site still underperforms on revenue. Tariff structure isn't a branding choice, it's the mechanism that decides which resource a site actually gets paid for: energy delivered, or time a connector is occupied. Picking the wrong one leaves money on the table regardless of how good the location or the pricing level is.
The tariff models CPOs actually use
| Model | What it charges for | Best fit |
|---|---|---|
| Per-kWh | Energy delivered | Sites where parking turns over easily and energy cost, not dwell time, is the real constraint |
| Per-minute (time-based) | Time the connector is in use | Sites where parking is the scarce resource - DC fast charging corridors especially |
| Flat session fee | A fixed amount per session, regardless of energy or duration | Low-stakes, high-simplicity locations - short workplace or retail top-ups |
| Idle fee | Time parked after charging completes | Added alongside another model to protect turnover, not used alone |
| Tiered / dynamic pricing | Time of day, demand, or membership tier | Higher-traffic networks with the reporting to actually manage variable rates |
Match the tariff to the site's actual bottleneck
The right model comes down to one question: at this site, is energy or parking the scarce resource? A workplace lot with abundant Level 2 connectors and long dwell time isn't short on parking - per-kWh pricing works fine, since there's little cost to a car sitting a while after it's done. A DC fast corridor site with three connectors and constant turnover is the opposite case - a car that finishes charging and stays parked is blocking revenue for every driver behind it, which is exactly what per-minute pricing and idle fees are built to prevent. Charging the wrong resource is why a well-located, well-priced site can still underperform: the tariff structure was solving for the wrong constraint. See how connector power level itself shapes that same dwell-time math in EV charging levels and site revenue.
Idle fees: the most underused lever
An idle fee isn't really about extra revenue - it's about protecting utilization, which is the single biggest driver of connector revenue. A connector occupied by a fully charged car that isn't paying for power is a connector generating zero revenue for however long that car stays, on top of turning away the next driver. Idle fees only work where drivers can actually see them coming - clear in-app warnings and a reasonable grace period before the fee kicks in keep it from reading as a penalty and turning into a support complaint instead of a turnover fix.
Time-of-day and dynamic pricing: powerful, but reporting-dependent
Charging more during peak demand hours and less overnight can shift load away from a site's most expensive electricity and toward its cheapest - directly improving the margin math behind every connector's economics. The catch is that dynamic pricing is only worth the complexity if the platform can actually report on whether it's working - session volume by time band, revenue per band, and the energy cost avoided by shifting load. Without that reporting, a tiered tariff is just a more complicated flat rate.
What a platform needs to support real tariff flexibility
- Per-site, per-connector tariff assignment - a single network-wide rate is rarely right for every site type it serves.
- Idle fee configuration with grace periods - a fee that starts immediately after charging completes, with no warning, generates complaints faster than revenue.
- Time-of-day and tiered rate rules - set once per site and applied automatically, not calculated manually per session.
- Session-level reporting by tariff component - energy revenue, idle fee revenue and flat fees broken out separately, so a CPO can see which lever is actually moving revenue.
A platform that ships this as configuration, not custom engineering, is what makes it practical to run different tariff models across a portfolio of very different site types from one CSMS. See how CarChargeOS handles tariffs, billing and session reporting on the platform page.
Frequently asked questions
Is per-kWh pricing always the right default?
No - it's the right default only where parking availability isn't the binding constraint. On high-turnover sites, especially DC fast charging, per-kWh pricing alone gives a driver no reason to move once they're done, which is what idle fees or time-based pricing are meant to fix.
Do idle fees upset drivers?
They can, if implemented without warning. A clear in-app notice and a short grace period before the fee starts is what separates a fee drivers accept as fair from one that generates support tickets and one-star reviews.
Should every site use the same tariff model?
Usually not. A portfolio spanning workplace, retail and highway-corridor sites typically needs at least two different tariff structures, since the scarce resource - energy vs. parking time - differs by site type.