diff --git a/algo/detectors/trd/ReadoutConfig.h b/algo/detectors/trd/ReadoutConfig.h
index a20bc9d1ab4ddb8e98a5f2165e3b46df5758660c..619e448e4e471f3c367a108f39e709defe4b0b93 100644
--- a/algo/detectors/trd/ReadoutConfig.h
+++ b/algo/detectors/trd/ReadoutConfig.h
@@ -87,7 +87,13 @@ namespace cbm::algo::trd
     void Init(const std::map<size_t, std::map<size_t, std::map<size_t, size_t>>>& addressMap,
               std::map<size_t, std::map<size_t, std::map<size_t, std::map<size_t, size_t>>>>& channelMap);
 
+    /** @brief Get system time offset **/
+    int64_t GetSystemTimeOffset() { return fSystemTimeOffset; };
+
    private:
+    // --- System time offset
+    int64_t fSystemTimeOffset = 0;
+
     // --- TRD readout map
     // --- Map index: (equipment, crob, elink), map value: (ASIC address)
     std::map<uint16_t, std::vector<std::vector<uint16_t>>> fReadoutMap = {};  //!
@@ -100,6 +106,7 @@ namespace cbm::algo::trd
     std::map<uint32_t, std::vector<int32_t>> fElinkTimeOffsetMap;
 
     CBM_YAML_PROPERTIES(
+      yaml::Property(&ReadoutConfig::fSystemTimeOffset, "timeOffset", "System time offset for TRD1D"),
       yaml::Property(&ReadoutConfig::fReadoutMap, "readoutMap", "TRD readout map", {}, YAML::Hex),
       yaml::Property(&ReadoutConfig::fChannelMap, "channelMap", "TRD channel map"),
       yaml::Property(&ReadoutConfig::fElinkTimeOffsetMap, "elinkTimeOffset", "TRD time offset per CRI&Elink combination")
diff --git a/algo/detectors/trd/Unpack.cxx b/algo/detectors/trd/Unpack.cxx
index 9a5fcdc1e58a7ccb3dc4ec5190a07e3bc81fb1d0..55eec70197cf9b5b7f422c854a9860f4b317633c 100644
--- a/algo/detectors/trd/Unpack.cxx
+++ b/algo/detectors/trd/Unpack.cxx
@@ -11,7 +11,6 @@ using fles::Subsystem;
 
 Unpack::Unpack(const ReadoutConfig& readout) : fReadout(readout)
 {
-  constexpr i64 SystemTimeOffset            = 1300;
   constexpr std::array<u8, 2> SystemVersion = {0x01, 0x10};
 
   // Create one algorithm per component for TRD and configure it with parameters
@@ -29,7 +28,7 @@ Unpack::Unpack(const ReadoutConfig& readout) : fReadout(readout)
         auto addresses        = fReadout.Map(equip, crob, elink);
         elinkPar.fAddress     = addresses.first;   // Asic address for this elink
         elinkPar.fChanAddress = addresses.second;  // Channel addresses for this elink
-        elinkPar.fTimeOffset  = SystemTimeOffset + fReadout.GetElinkTimeOffset(crob, elink);
+        elinkPar.fTimeOffset  = fReadout.GetSystemTimeOffset() + fReadout.GetElinkTimeOffset(crob, elink);
         crobPar.fElinkParams.push_back(elinkPar);
       }
       par.fCrobParams.push_back(crobPar);