diff --git a/Event/LumiEvent/CMakeLists.txt b/Event/LumiEvent/CMakeLists.txt
index d2259cdd377351c0e84a948ffd28b1e50c4bd87f..7d0595f6f5ccf3854ba9151aed54d3c4bc37b38f 100644
--- a/Event/LumiEvent/CMakeLists.txt
+++ b/Event/LumiEvent/CMakeLists.txt
@@ -25,6 +25,7 @@ gaudi_add_module(LumiEvent
         LHCb::LHCbAlgsLib
         LHCb::DAQEventLib
         LHCb::LumiEventLib
+        LHCb::HltInterfaces
 )
 
 gaudi_add_dictionary(LumiEventDict
diff --git a/Event/LumiEvent/src/HltLumiSummaryDecoder.cpp b/Event/LumiEvent/src/HltLumiSummaryDecoder.cpp
index cf41373e1abb55c42db59a0b31e15dfd8b821608..4453a9fa3666de552c6041aebaf372ada13bf530 100644
--- a/Event/LumiEvent/src/HltLumiSummaryDecoder.cpp
+++ b/Event/LumiEvent/src/HltLumiSummaryDecoder.cpp
@@ -14,6 +14,7 @@
 #include "Event/LumiSummaryOffsets_V2.h"
 #include "Event/RawBank.h"
 #include "Event/RawEvent.h"
+#include "Kernel/IIndexedLumiSchemaSvc.h"
 
 #include "LHCbAlgs/Transformer.h"
 
@@ -106,9 +107,10 @@ namespace LHCb {
           auto encodingKey = getField( LHCb::LumiSummaryOffsets::V2::encodingKeyOffset,
                                        LHCb::LumiSummaryOffsets::V2::encodingKeySize, ibank->data() );
           if ( encodingKey != 0 ) {
-            // TODO add new decoding here
-            warning() << "TCK-based lumiSummary bank decoding not yet implemented."
-                      << "Unable to decode bank" << endmsg;
+            auto lumi_schema = m_svc->lumiCounters( encodingKey, 2 );
+            for ( auto cntr : lumi_schema.counters ) {
+              hltLumiSummary.addInfo( cntr.name, getField( cntr.offset, cntr.size, ibank->data() ) );
+            }
           } else {
             if ( ibank->size() != LHCb::LumiSummaryOffsets::V2::TotalSize ) {
               warning() << "Bank size incorrect for HltLumiSummary V2: expected "
@@ -205,6 +207,8 @@ namespace LHCb {
     }
 
   private:
+    ServiceHandle<IIndexedLumiSchemaSvc> m_svc{this, "DecoderMapping", "HltANNSvc"};
+
     // Statistics, mutable to allow statistics to be kept
     mutable Gaudi::Accumulators::AveragingCounter<> m_totDataSize{this, "Average event size / 32-bit words"};
   };