diff --git a/src/KpiGenerator/Program.cs b/src/KpiGenerator/Program.cs
index 90abb10b9147fa3994d7e01597a923b99959fd92..f349468243e54223f9ac0b8d2c774b84b5e36c6c 100644
--- a/src/KpiGenerator/Program.cs
+++ b/src/KpiGenerator/Program.cs
@@ -44,12 +44,6 @@ namespace Coscine.KpiGenerator
             {
                 hamsterReporter.Send(kpiToProcess);
             }
-
-            // if the kpi were sent successful mark all values within the database as successfully sent
-            foreach (Kpi kpi in kpiToProcess)
-            {
-                kpiModel.MarkAsSent(kpi);
-            }
         }
     }
 }
diff --git a/src/KpiGenerator/Reporter/HamsterReporter.cs b/src/KpiGenerator/Reporter/HamsterReporter.cs
index 036acec534080d6a5cdfb42776ff6bfb5f9f37ed..7a50e0cf4da12d3d08603ecadf865dfd40349d7f 100644
--- a/src/KpiGenerator/Reporter/HamsterReporter.cs
+++ b/src/KpiGenerator/Reporter/HamsterReporter.cs
@@ -1,5 +1,6 @@
 using Coscine.Configuration;
 using Coscine.Database.DataModel;
+using Coscine.Database.Models;
 using System;
 using System.Collections.Generic;
 
@@ -23,6 +24,8 @@ namespace Coscine.KpiGenerator.Reporter
 
         public void Send(List<Kpi> kpis)
         {
+            // when all generators are done
+            var kpiModel = new KpiModel();
             foreach (var kpi in kpis)
             {
                 var values = $"login={_name}&password={_password}";
@@ -38,6 +41,10 @@ namespace Coscine.KpiGenerator.Reporter
                 {
                     Console.Error.WriteLine(result);
                 }
+                else
+                {
+                    kpiModel.MarkAsSent(kpi);
+                }
             }
         }