diff --git a/TileCalorimeter/TileConditions/TileConditions/TileBadChannels.h b/TileCalorimeter/TileConditions/TileConditions/TileBadChannels.h
index bf7864a810d92946eadd8df2079f801e2b111701..961349edd20c5cd72310540f6d10a452fdb83195 100644
--- a/TileCalorimeter/TileConditions/TileConditions/TileBadChannels.h
+++ b/TileCalorimeter/TileConditions/TileConditions/TileBadChannels.h
@@ -1,7 +1,7 @@
 //Dear emacs, this is -*- c++ -*-
 
 /*
-  Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
 */
 
 #ifndef TILECONDITIONS_TILEBADCHANNELS_H
@@ -76,6 +76,8 @@ class TileBadChannels {
     */
     const std::vector<int>& getMaskedDrawers(void) const {return m_maskedDrawers;};
 
+    static uint32_t encodeStatus(const TileBchStatus& status);
+    uint32_t encodeAdcStatus(const HWIdentifier adc_id) const;
 
   private:
 
diff --git a/TileCalorimeter/TileConditions/src/TileBadChanTool.cxx b/TileCalorimeter/TileConditions/src/TileBadChanTool.cxx
index 9b70a2572c63bf870fbf957a7e1de7276db6f25b..d8bafd6ba098ab5ea80db8aa438aa2bd06a54bc2 100644
--- a/TileCalorimeter/TileConditions/src/TileBadChanTool.cxx
+++ b/TileCalorimeter/TileConditions/src/TileBadChanTool.cxx
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
 */
 
 // Tile includes
@@ -237,22 +237,7 @@ TileBadChanTool::getAdcStatus(unsigned int drawerIdx, unsigned int channel, unsi
 
 
 uint32_t TileBadChanTool::encodeStatus(const TileBchStatus& status) const {
-
-  uint32_t bad;
-
-  if (status.isGood())
-    bad = 0;
-  else if (status.isBad())
-    bad = 3;
-  else if (status.isNoisy())
-    bad = 1;
-  else if (status.isAffected())
-    bad = 2;
-  else
-    bad = 4;
-
-  return bad;
-
+  return TileBadChannels::encodeStatus(status);
 }
 
 const std::vector<float>& TileBadChanTool::getTripsProbabilities(unsigned int ros, const EventContext& ctx) const {
diff --git a/TileCalorimeter/TileConditions/src/TileBadChannels.cxx b/TileCalorimeter/TileConditions/src/TileBadChannels.cxx
index 1eae947303145a25900b6420fe4138d5737ec727..f670f7654923d97a7fa9f1f6f57af4703fec3275 100644
--- a/TileCalorimeter/TileConditions/src/TileBadChannels.cxx
+++ b/TileCalorimeter/TileConditions/src/TileBadChannels.cxx
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
 */
 
 #include "TileConditions/TileBadChannels.h"
@@ -48,3 +48,25 @@ void TileBadChannels::setMaskedDrawers(std::vector<int>&& maskedDrawers) {
   m_maskedDrawers = std::move(maskedDrawers);
   std::sort (m_maskedDrawers.begin(), m_maskedDrawers.end());
 }
+
+uint32_t TileBadChannels::encodeStatus(const TileBchStatus& status) {
+  uint32_t bad;
+
+  if (status.isGood()) {
+    bad = 0;
+  } else if (status.isBad()) {
+    bad = 3;
+  } else if (status.isNoisy()) {
+    bad = 1;
+  } else if (status.isAffected()) {
+    bad = 2;
+  } else {
+    bad = 4;
+  }
+
+  return bad;
+}
+
+uint32_t TileBadChannels::encodeAdcStatus(const HWIdentifier adc_id) const {
+  return encodeStatus(getAdcStatus(adc_id));
+}