Skip to content

bug: DP picks GRID_CHARGING with explicitly negative net_strategy_value, self-corrects 15 min later #363

Description

@johanzander

bug: DP picks GRID_CHARGING with explicitly negative net_strategy_value, self-corrects 15 min later

Summary

The optimizer selected a GRID_CHARGING action for a period whose own debug output
already showed the move as a net loss (net_strategy_value: -0.28 EUR,
future_value: 0.0), i.e. the DP's own accounting knew the action was uneconomic and
chose it anyway. The very next re-optimization (15 minutes later, same price regime)
reverted that slot to SOLAR_STORAGE. This looks like the same class of DP
search-precision defect as the (now-fixed) #336, but with a different trigger —
worth its own investigation since #336's fix apparently didn't cover it.

Reported by @Frank-Leysen on #126, 18 Jul 2026, v9.9.0b20, live Growatt MOD.

Evidence

15:30 optimization — bad plan

Debug: bess-debug-2026-07-18-154328.md
(gist)

Slot Intent Mode Grid Charge BattAct Buy Notes
15:30–15:59 IDLE Load First No 0 ~0.21 Target 49% (below current SOC)
16:00–16:14 GRID_CHARGING Battery First Yes +1.25 kWh ~0.21 Target 57%; period savings −0.275 EUR
16:15–19:59 SOLAR_STORAGE Load First No small solar charge ~0.21–0.33 Target toward ~66%

Sell price at 16:00 was still negative (~−0.013 EUR/kWh). Debug for the 16:00 period (period 64) shows:

  • economic_chain: "Store 1.1kWh grid energy (−0.28 EUR) → Future discharge opportunity
    (+0.00 EUR) → Net strategy: −0.28 EUR"
  • future_value: 0.0
  • net_strategy_value: -0.28
  • future_target_hours: [18,19,20,21] — valued at zero despite being the stated
    justification for storing the energy

Under Belgian Dynamic pricing (buy ~0.21 vs sell ≤0), imported kWh needs roughly 3×
export later just to break even — the chosen action does not look like rational
arbitrage.

15:45 optimization — self-corrects

Debug: bess-debug-2026-07-18-155251.md (same gist)

Per Time Intent (15:45 plan)
63 15:45 IDLE
64 16:00 SOLAR_STORAGE (was GRID_CHARGING in the 15:30 plan)
65+ afternoon SOLAR_STORAGE

No input changed between 15:30 and 15:45 that would explain flipping from a −0.28 EUR
grid-charge to solar-only storage — same price regime, same approximate SOC/PV forecast
window.

Ask

Investigate why the DP would ever select an action whose own net_strategy_value is
negative and future_value is zero, and why a re-optimization 15 minutes later (same
price regime) reaches a different, better answer for the same slot. If this is a search
resolution/pruning issue, it's likely the same family as #336 (also self-corrected on
a later re-optimization) but not covered by that fix.

Metadata

Metadata

Assignees

No one assigned

    Labels

    analyzedRoot-cause diagnosis posted, awaiting @claude-bot fix

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions