
Why OCPP 1.6 Does Not Include Rates and Billing Models
The Open Charge Point Protocol (OCPP) 1.6 has become a widely adopted standard for enabling communication between electric vehicle (EV) charging stations and central management systems. Yet, a key area often discussed is its approach to pricing information: OCPP 1.6 does not natively include support for dynamic rates or comprehensive billing models. This article explores the rationale behind this design choice and its implications for the EV charging industry.

▶ Design Philosophy of OCPP 1.6
OCPP 1.6 was intentionally designed as a communication protocol, not a pricing or transaction settlement system. The protocol’s primary focus is on ensuring interoperability between charging stations and network operators, allowing hardware and software from different vendors to work seamlessly together. This means defining the ways in which charging data, session control commands, firmware updates, and status information are exchanged, while leaving business logic, such as tariffs and billing structures, outside the core specification.
▶ Key Goals of OCPP 1.6
- Interoperability: Enabling any OCPP-compatible hardware to connect with any central system.
- Flexibility: Accommodating a wide range of charging methods and network management styles.
- Extensibility: Allowing for custom messages or vendor-specific extensions to address needs beyond the core protocol.
▶ Why Rates and Billing Models Are Excluded
1. Complexity and Variability of Pricing
EV charging pricing can be extremely complex, involving factors such as:
- Time of day (time-of-use rates)
- Amount of energy delivered (per kWh)
- Session duration (per minute or hour)
- Idle fees (for overstaying after charging)
- User authentication (pricing by membership or payment method).
These models differ significantly between countries, utilities, and operators, making it nearly impossible for a protocol to define a one-size-fits-all billing logic. Embedding such models in the protocol would have made OCPP far less adaptable across markets and business types.
2. Separation of Responsibilities
OCPP architects chose to separate communications from business operations:
- The protocol handles how data is exchanged (meter values, transaction start/end, statuses).
- The central management/back-end system determines how to interpret data and apply billing logic.
This approach lets charging station operators differentiate their service offerings and rapidly adapt to local regulations or new pricing models without needing underlying protocol changes.
3. Back-End Driven Cost Calculation
Cost calculation, including tariffs and final billing, is managed by the central system, which holds all necessary logic and context (e.g., user contracts, real-time market pricing, promotions). The central management can then send calculated cost updates to the charge point during or after each session, often over custom or extended messages.
Although OCPP 1.6 allows charging stations to display certain static fee messages (such as a default per-kWh price), anything more dynamic requires custom extensions via DataTransfer messages, a method outside the protocol’s normative specification.
4. Market Evolution and Backward Compatibility
The EV charging landscape is evolving rapidly, with new billing schemes regularly being introduced. Baking tariff models into the protocol would risk making the standard quickly obsolete or requiring constant revision. By keeping pricing out of the protocol, OCPP 1.6 ensures long-term viability and backward compatibility.
▶ How Pricing Information Is Handled in OCPP 1.6
While not built-in, pricing and billing information can be handled through:
- Custom extensions: Operators may use DataTransfer messages to send pricing details to charge points for display or calculation purposes.
- Configuration keys: For static default prices, OCPP 1.6 allows simple messages to set base pricing on the charge point, but not for transaction-specific costs.
- Backend calculation: The central management system sends updated costs to the charge point during or after charging as needed for customer display or invoicing.
This flexibility accommodates highly customized business models and regulatory needs in a way that a protocol-level solution could not easily provide.
▶ OCPP 1.6 vs OCPP 2.0.1
With the release of OCPP 2.0.1, support for more advanced tariff and cost reporting is included. Still, even in the newer version, OCPP largely provides mechanisms for conveying cost data calculated elsewhere, rather than defining billing logic inside the protocol.
▶ Conclusion
OCPP 1.6’s decision not to include rates and billing models within the standard is a deliberate choice that reflects the protocol’s focus on interoperability, flexibility, and extensibility. By keeping business logic out of the communication layer, the protocol remains adaptive to diverse and rapidly evolving market needs, allowing operators to implement virtually any pricing model that regulations or commercial necessities demand through their back-end systems.