In most applications involving energy storage, multiple different opportunities to generate revenue or reduce cost must be stacked to optimise economic return. This requires repeated scheduling of the energy storage charging schedule in advance, across a finite future horizon. When forecasts and degradation models are incorporated, optimal solutions can become expensive to compute. Local conditions, however, can change instantly, and require fast response by local controllers to truly maximise the energy storage system’s returned value. This work proposes a method for optimally operating energy storage in response to multiple value streams that finds the optimal solution over a future horizon, and then breaks this down into a schedule for a small set of simple, local, rule-based controllers. Each local controller is set up to maximise one particular value stream, and can respond to changing conditions on a timescale of milliseconds. The method is specifically designed for implementation on real systems, and successful at ensuring a near-optimal value return by the energy storage system.