This page explains what Gridio actually does between the moment a vehicle plugs in and the moment it's ready. It is the why behind the configuration described in Setting up smart charging and Per-location charging windows.

The basic idea

Gridio is a deadline-driven optimiser. You tell it when the car must be ready (charge_by); it figures out which hours to actually draw power. Cheap hours are preferred; expensive hours are skipped — as long as there is enough room in the window to skip them and still hit the deadline.

Three things define the room Gridio has to play with:

If the energy needed roughly equals the time available, every hour gets used and price doesn't matter — the car just barely makes it. If the energy needed is less than the time available, the cheapest hours win and the rest are skipped.

How the deadline is chosen

For a (device, location) pair, the per-location config (see Per-location charging windows) defines a ready-by time for each weekday. The engine looks up today's rule and uses that as the target. If today's deadline has already passed by the time the car plugs in, it rolls forward to the next day's rule.

The engine re-evaluates frequently while the car is plugged in, so as days roll over the target deadline naturally shifts to the new day's rule. A multi-day plug-in (e.g. Friday night through Monday morning) is not planned end-to-end as one big window — each cycle plans only to the next single charge_by. The picture redraws as days advance, and each day's deadline becomes the active target in turn.

If a weekday is not listed in the per-location config, that day has no deadline at all. Gridio still smart-charges on those days, but only against price across the available spot-price window — with no specific finish time to aim at.

The price ceiling and the SOC floor

Two optional limits control how aggressive Gridio gets:

Used together they express a useful contract: "always keep me at least 60 % — above that, never pay more than €120/MWh". The car will hit 60 % no matter the price, then top up only on cheap hours.

Target SOC (the upper bound) is intentionally not part of this contract — we recommend setting it in the vehicle or OEM app instead, to avoid two systems disagreeing about how full "full" is.

Two kinds of opt-out

There are two distinct opt-out concepts. They answer different questions and you can use both at once.