A working Octopus Agile home battery strategy comes down to four daily moves against tomorrow’s published prices, plus one export trap to leave alone: charge in the cheapest half-hours, but only up to the headroom your solar forecast will not fill for free; hold that headroom when tomorrow looks bright; discharge through the late-afternoon peak, roughly 16:00 to 19:00, to dodge the most expensive import; and leave the battery alone on flat days when the spread is thinner than your round-trip losses. The trap is grid-charging purely to sell at the evening peak, which on Agile rarely clears its losses. Agile publishes 48 prices for the next day at around 4pm, capped at 100p per kWh, so you always plan against real numbers rather than a guess.
This page assumes you have already chosen Agile and want to know what to actually do with the battery each day. It is the operating manual, not the tariff comparison. Every pence figure here is a July 2026 snapshot that moves with your region and the wholesale market, so treat the decision logic as the durable part and confirm live prices in the Octopus app before you design a schedule around them.
The Agile battery decision in one table
Every afternoon, once the next day’s 48 prices publish, you are answering the same question in each half-hour: is a cycle worth it, and which direction. This table is the whole strategy on one screen.
| Situation tomorrow | What to do with the battery | Why |
|---|---|---|
| The cheapest overnight half-hours, or a negative plunge-price event | Charge, up to the capacity your solar will not refill for free | The spread beats your round-trip loss, and during plunge pricing you are paid to take the energy |
| A bright solar forecast for the next day | Leave headroom overnight, charge less from the grid | Free solar will fill that space; a grid kWh you did not need is money spent for nothing |
| The 16:00 to 19:00 peak, house is drawing load | Discharge to cover the house and avoid importing | The peak import you dodge is far larger than the roughly 10% round-trip loss |
| A flat day, cheap and expensive prices close together | Leave the battery alone | If the spread is under about a tenth of the price you are avoiding, a cycle loses money after losses |
| Tempted to grid-charge purely to sell at the evening peak | Usually skip it on Agile | Agile Outgoing usually pays well below the evening import peak, so losses often eat the margin |
One honest note before the detail: I run my own Sunsynk 3.6 ECCO with Fogstar batteries on Octopus Go, not Agile, because a fixed cheap window suits my east-west array and my appetite for effort. The control layer is identical, so the decision tree above is exactly what I would apply on Agile, and where I quote my own numbers they are Go measurements and I say so.
What does a typical Agile day look like?
A volatile Agile day gives you a deep overnight trough, an expensive late-afternoon peak, and sometimes a midday dip when wind and solar swamp demand. The whole strategy is just the decision tree applied to those blocks. The prices below are an illustrative July 2026 snapshot, not your region’s live figures, so read them as the shape of a day rather than rates to plan around.
| Block | Example price | Your move |
|---|---|---|
| 02:00 to 04:30, overnight trough | about 9p/kWh | Charge to your forecast-adjusted target |
| 11:00 to 14:00, breezy midday dip | about 5p/kWh, occasionally below zero | Top up any headroom the afternoon sun will not fill |
| 16:00 to 19:00, evening peak | about 34p/kWh | Discharge to cover the house |
| Rest of the day, standard band | about 22p/kWh | Run normally, force no cycle |
On that shape the sums are easy. Charge at about 9p and cover the 34p peak from the battery, and after a 90% round trip each stored kWh is worth roughly (0.90 × 34) − 9, about 21p. Move 8kWh through the peak and the day nets a little over £1.70 on self-use alone, before any export. Now picture a flat day where the trough is 19p and the peak 24p: the same maths gives (0.90 × 24) − 19, under 3p a kWh, which barely clears the round-trip loss, so the right move is to leave the battery alone. Same battery, same tariff, opposite decision, and the only thing that changed was the spread.
When should you charge the battery on Agile?
Charge in the cheapest run of half-hours the day published, and treat any negative plunge-price period as a free top-up you should never miss. The value of each kWh you store is worth roughly 90% of the peak price you later avoid, minus what you paid to charge, so the deeper the spread the more the cycle earns.
Because Agile publishes the next 24 hours at around 4pm, you can see the cheapest block before it arrives and point the inverter’s charge window straight at it. On most days that block sits overnight when wind is high and demand is low. On stormy nights it can fall below zero: Octopus calls this plunge pricing, and during those events you are paid to import. That is the one time you fill the battery to the top regardless of tomorrow’s solar, because free capacity in the battery is the only way to catch a negative price.
The import price is capped at 100p per kWh, which matters less as a charging rule and more as a discharge trigger: when a half-hour climbs toward that cap, every stored kWh you use instead of importing is worth close to a pound. Charging discipline and discharge discipline are two halves of the same spread.
When should you hold capacity for solar instead of filling overnight?
Leave headroom in the battery whenever tomorrow’s solar forecast will fill it for free. A battery that is already full at sunrise has nowhere to put the day’s generation, so that solar either spills to a low export price or is clipped away, and the grid kWh you bought overnight to fill it was money you did not need to spend.
This is the single decision most fixed-window strategies get wrong, and it is where a variable tariff and a forecast pay off together. On my own system I solve it with Forecast.Solar feeding Home Assistant, which sets the overnight charge target dynamically: down to about 40% state of charge when a sunny day is expected, up to 100% when the forecast is grey. That logic was built for Economy Seven and Octopus Go windows, but it transfers to Agile without changes, because the only thing that differs is which half-hours you charge in.
The forecast does not have to be perfect. You are trying to avoid the two expensive mistakes, not to hit an exact number: buying a full battery of grid power the night before a bright day, and leaving the battery near empty the night before a dark one. A rough split of high, medium and low forecast, each mapped to a charge target, steers clear of both mistakes on most days.
When should you discharge, and when should you leave the battery alone?
Discharge through the most expensive half-hours, which on Agile usually cluster in the late-afternoon peak, roughly 16:00 to 19:00, when a peak-time adder and regional factors lift the wholesale rate. Every kWh the house takes from the battery in that window is a kWh you did not import at the peak, and because the avoided price is high the round-trip loss barely dents it. Cover the house first; that is where the reliable money is.
The harder discipline is knowing when to do nothing. A cycle is only worth it when the price you avoid, after losses, beats the price you paid to charge. At about 90% round-trip efficiency, the break-even spread is roughly a tenth of the price you are avoiding. If tomorrow’s cheapest block and the evening price you would dodge sit within two or three pence of each other, the cycle barely clears its own losses, and you have spent a slice of battery life to earn almost nothing.
In my experience flat days are common, especially through calm, mild weather when wholesale prices stay in a narrow band all day. On those days the correct strategy is to let the battery sit, run the house normally, and wait for a day with a real spread. Forcing a cycle to feel productive is how you convert a good tariff into a slow way to wear out a battery.
What does an unnecessary cycle actually cost you?
Two costs, one certain and one small. The certain cost is the round-trip loss: at 85 to 92% efficiency, roughly a tenth of every kWh you charge never comes back out, so a cycle you did not need to run is a tenth of that energy paid for and thrown away. Price every spread on the energy you get out, not the energy you put in.
The second cost is cycle life. A LiFePO4 home battery is rated for several thousand full cycles, so one wasted cycle is a tiny fraction of its life and not worth losing sleep over on its own. The reason it still matters is that a bad Agile strategy runs the battery hard every single day, chasing spreads too thin to pay, and thousands of near-pointless cycles do add up over the years you expect the pack to last.
There is a third, quieter cost that only shows up in multi-battery setups: micro-cycling. When I ran two Fogstar packs in one rack, small voltage mismatches made the inverter draw a little, stop, charge a little and repeat through the night, throwing off waste heat and drifting the packs apart in state of charge. Capping the overnight discharge current fixed it and saved an estimated 0.5 to 1 kWh a night that had been lost to heat. On Agile the same rule applies during any window where you want the pack to sit still: give it a reason to hold, not to fidget.
Can you automate an Agile strategy, or do you do it by hand?
You can automate it, and past the novelty you will want to, because Agile changes the target every day and doing it by hand means checking prices every afternoon for the rest of the tariff’s life. The catch is that a plain inverter timer or a static Solar Assistant rule is too rigid for Agile: those tools are built around fixed clock windows, and Agile has none.
The working pattern is Solar Assistant for the local link to the inverter, bridged over MQTT into Home Assistant, with the Octopus API supplying the half-hourly prices. Home Assistant reads tomorrow’s 48 prices, picks the cheapest block that meets your charge target, and writes the charge and discharge current to the inverter for the right half-hours. If you would rather not script that logic yourself, Predbat is a free Home Assistant add-on built for exactly this: it reads the Agile feed and your solar forecast and plans each half-hour’s charge and discharge automatically.
Be clear about what is measured and what is planned here. On Go today I force daytime export with a Solar Assistant rule that caps the charge current to 2A in daylight, so the array exports instead of topping the battery back up, and that is the setup I actually run. The Home Assistant, Octopus API and MQTT write path above is the architecture I would build to point the same idea at Agile’s moving prices rather than a fixed clock window; I have not run it on Agile, because I am on Go.
Whatever you build, keep one safety habit from fixed-window automation: never write a zero charge or discharge current. If the automation host crashes, the last value it wrote stays latched on the inverter, and a stuck zero can leave the battery refusing to charge or discharge for a full day before you notice. Leave a small trickle, a couple of amps, so a failure degrades to slow rather than dead. On my Go setup I use 2A for charge and 1A for discharge for exactly this reason.
Two lighter-touch routes exist if you would rather not run a Home Assistant system. Some battery brands now build Agile-aware scheduling into their own app, which can be enough if you are happy to stay inside that ecosystem and it supports your tariff. The other route is a tariff that schedules the battery for you, such as Intelligent Octopus Flux; but as of mid-July 2026 Intelligent Flux is closed to new sign-ups, paused through a stretch of volatile evening-peak pricing, while standard Octopus Flux stays open to eligible solar-and-battery homes. It is limited to supported battery brands when open, and it is a tariff decision rather than an Agile one, so reconfirm on Octopus before you count on it. On Agile itself, the scheduling is yours to run.
Should you ever charge from the grid just to export on Agile?
Rarely. Buying cheap power specifically to sell it back needs the export price to beat your charge price by more than the round-trip loss, and on Agile Outgoing the half-hourly export price usually sits well below the same-slot import price and far below the evening import peak. The best few evening export half-hours can climb high enough to make the sums work, but they are a handful of slots you have to catch precisely, so check your region’s live Agile Outgoing series rather than a headline average, and remember a mistimed discharge earns less than simply self-using the same energy would have saved.
Rank your stored energy in this order: cover the house through the peak first, because a kWh you self-use avoids the full peak import; export only genuine surplus you cannot use; and treat deliberate grid-charge-to-export as a niche move for the rare days when a deep overnight trough lines up with a tall evening export spike. If you have solar, that surplus is usually where your export income comes from anyway, not from arbitraging the grid.
Do I need a solar forecast to run a battery on Agile?
Not to start, but it is the upgrade that stops you wasting money. Without a forecast you will sometimes fill the battery overnight from the grid the night before a bright day, then have nowhere to put the free solar. A rough high, medium or low forecast mapped to an overnight charge target steers you clear of both expensive mistakes. Forecast.Solar into Home Assistant is a common free route, and the same logic works on any variable or fixed-window tariff.
How do I make the most of Agile plunge pricing with a battery?
Keep enough empty capacity to catch it. Plunge pricing is when Agile import prices fall below zero, most often on windy overnight periods, and Octopus pays you to use electricity during those half-hours. A battery only benefits if it has room to charge, so when the next day’s prices publish a negative block, hold headroom and fill the battery hard during it, even overriding a sunny-day forecast, because being paid to store energy beats saving it for free solar. Octopus alerts you to these events, and an automation reading the price feed can act on them without you watching.
Is Agile worth the effort for a battery owner, or is a fixed window easier?
It depends on whether you will do the scheduling or automate it. Agile can beat a fixed cheap window when wholesale prices are volatile and you catch the troughs, but on calm days the spread collapses and a fixed window like Octopus Go earns more for no effort. I stay on Go with my Sunsynk because a set-and-forget window suits me, and I automate the parts that matter. If you enjoy the optimisation and will build the Home Assistant logic, Agile rewards it; if you want to set the battery once and forget it, a fixed window is the honest choice.
Sources
- Octopus Energy, Agile Octopus (half-hourly wholesale pricing, next-day prices published around 4pm, 100p/kWh Price Cap Protect, plunge pricing).
- Octopus Energy, Outgoing Octopus and Agile Outgoing (uncapped half-hourly export prices).
- Octopus Energy, Intelligent Octopus Flux (automated battery scheduling, eligibility and availability notes).
The 85 to 92% round-trip efficiency range for LiFePO4 home batteries is a typical measured figure, not a manufacturer guarantee. My first-hand contribution is the Sunsynk 3.6 ECCO, Fogstar and Solar Assistant control setup, the Forecast.Solar overnight charge logic, and the micro-cycling and crash-safety lessons, all measured on Octopus Go rather than Agile; the Agile prices are a July 2026 snapshot, last checked 17 July 2026, and must be confirmed against your region’s live rates in the Octopus app before you build a schedule around them.