diff --git a/src/algo/energy_watcher.cpp b/src/algo/energy_watcher.cpp
index b22e4f2c28fec201ffc3b407b70c2c02a9808b42..0905f7899fec453db0cda714e7b36702d92385ae 100644
--- a/src/algo/energy_watcher.cpp
+++ b/src/algo/energy_watcher.cpp
@@ -51,6 +51,9 @@ void EnergyWatcher::make_decisions(double date,
 
     if (_consumed_joules_updated_recently)
     {
+        if (_previous_energy < 0)
+            _previous_energy = _consumed_joules;
+
         PPK_ASSERT_ERROR(_consumed_joules - _previous_energy >= -1e-6,
                          "Energy consumption inconsistency: it should be non-decreasing. "
                          "Received %g but previous value is %g.",