Dynamic pricing metadata

Every price response reports whether the rate is dynamic and, for a dynamic rate, which schedule entry applies at the requested time. On request it also returns the next price the driver will hit. This lets a single Pricing API call show consistent current and ahead prices.

The schedules behind these fields are configured through the Dynamic Pricing API (see Dynamic pricing modes). Prices and window boundaries resolve in the station’s local time (see How a dynamic pricing schedule resolves).

pricingType

pricingType states the rate’s mode:

  • 0 — static. No schedule; the rate has one fixed price.

  • 1 — recurring per weekday. Prices repeat every week on set weekdays and time ranges.

  • 2 — unique date and time. Prices tied to specific start timestamps.

Applied entry: scheduleUuid and validity

For a dynamic rate, scheduleUuid and validity identify the schedule entry active at the time of the request. validity takes one of three forms, keyed by its type:

  • uniquestart and end on the station’s clock, carrying no marker. end is the next entry that starts the same day, or 23:59:59 of the entry’s own day. No entry prices a day it does not start on.

  • recurring — the applicable weekday slot: its weekday, weekday name and HH:MM time range. Only the slot active at the requested time is returned, not the whole schedule.

  • default — the rate’s fallback price where no entry covers, with scheduleUuid null. On a recurring rate it carries the weekday and HH:MM window of the gap. On a unique rate it is bounded by the day it falls on, like every window there: from 00:00:00 of that day until the next entry that starts on it, or until 23:59:59 where none does.

scheduleUuid and validity are null only when the rate is static (pricingType 0). Both dynamic types always resolve: an entry where one covers the requested time, the rate’s default price everywhere else.

Next price

Set next_price=true to add a nextPrice block for the schedule window that takes over when the current one stops applying. It carries the same scheduleUuid and validity fields as the current price, plus a full priceStructure in the Pricing API model. The block is present for dynamic rates only. Where the next window is the rate’s default — a gap after the current recurring slot, or the day after a unique entry — scheduleUuid is null and validity.type is default.

nextPrice reports the next change of window, not the next change of price. On a unique-date rate a window runs until the next entry that starts the same day and never past 23:59:59 of that day — the default included. A gap spanning several days therefore holds one default window per day, and nextPrice carries the same priceStructure as the current window, bounded by the following day.

For the full field list see Datastructures, and for worked examples the dynamic-rate requests under api/pricing - single evse id.