diff --git a/algo/global/Reco.cxx b/algo/global/Reco.cxx
index 7a25dcad3685ac7846434fa9431402748052da4c..3dad3a6a01bebf3e7fd94c4a8e750c97653bca1c 100644
--- a/algo/global/Reco.cxx
+++ b/algo/global/Reco.cxx
@@ -166,8 +166,8 @@ void Reco::QueueUnpackerMetrics(const fles::Timeslice& ts, const UnpackMonitorDa
 {
   if (!HasMonitor()) return;
 
-  auto sizeBytes = [](const auto& d) { return d.size() * sizeof(d[0]); };
-  auto expansionFactor = [](size_t x, const auto& d) {
+  auto sizeBytes       = [](const auto& d) { return d.size() * sizeof(d[0]); };
+  auto expansionFactor = [&](size_t x, const auto& d) {
     return d.size() > 0 ? static_cast<double>(sizeBytes(d)) / x : 0.0;
   };
 
@@ -186,6 +186,7 @@ void Reco::QueueUnpackerMetrics(const fles::Timeslice& ts, const UnpackMonitorDa
 
   GetMonitor().QueueMetric("cbmreco", {{"hostname", fles::system::current_hostname()}},
                            {
+                             {"unpackTimeTotal", monitor.fTimeUnpack},
                              {"unpackBytesInSts", monitor.fNumBytesInSts},
                              {"unpackBytesInMuch", monitor.fNumBytesInMuch},
                              {"unpackBytesInTof", monitor.fNumBytesInTof},
diff --git a/algo/unpack/Unpack.cxx b/algo/unpack/Unpack.cxx
index 9a44ddffd750f29a17addb93fe3061bc0d9aa9f4..f1cca939e7fa5efb203e2b3e11c1c8375ebdfc0c 100644
--- a/algo/unpack/Unpack.cxx
+++ b/algo/unpack/Unpack.cxx
@@ -20,7 +20,7 @@ namespace cbm::algo
   // -----   Execution   -------------------------------------------------------
   Unpack::resultType Unpack::operator()(const fles::Timeslice* timeslice)
   {
-    xpu::scoped_timer t0("Unpack");
+    xpu::push_timer("Unpack");
 
     // --- Output data
     resultType result          = {};
@@ -94,7 +94,7 @@ namespace cbm::algo
 
     // --- Sorting of output digis. Is required by both digi trigger and event builder.
 
-    xpu::scoped_timer t2("Sort");
+    xpu::push_timer("Sort");
     auto& digiData = digiTs.fData;
     DoSort(digiData.fSts.fDigis);
     DoSort(digiData.fMuch.fDigis);
@@ -103,6 +103,11 @@ namespace cbm::algo
     DoSort(digiData.fTrd.fDigis);
     DoSort(digiData.fTrd2d.fDigis);
     DoSort(digiData.fRich.fDigis);
+    xpu::pop_timer();
+
+    xpu::timings timings = xpu::pop_timer();
+
+    monitor.fTimeUnpack = timings.wall();
 
     return result;
   }
diff --git a/algo/unpack/Unpack.h b/algo/unpack/Unpack.h
index 676af4fcb4e08f036286ab1b9e0938f6cd6b9066..13329f07a39aad0a7624d3d0c971c522ce5d309e 100644
--- a/algo/unpack/Unpack.h
+++ b/algo/unpack/Unpack.h
@@ -59,6 +59,7 @@ namespace cbm::algo
     size_t fNumCompUsed = 0;
     size_t fNumErrInvalidEqId   = 0;
     size_t fNumErrInvalidSysVer = 0;
+    double fTimeUnpack          = 0;
     std::string print() const
     {
       std::stringstream ss;