diff --git a/Tr/TrackMonitors/src/FTTrackMonitor.cpp b/Tr/TrackMonitors/src/FTTrackMonitor.cpp
index be8c6b256e0a8a19de2cce19da0e54977c809f38..976cdc4e1ecc69d581914b53421406e212bf39cf 100644
--- a/Tr/TrackMonitors/src/FTTrackMonitor.cpp
+++ b/Tr/TrackMonitors/src/FTTrackMonitor.cpp
@@ -135,11 +135,15 @@ private:
       "residualPerSiPM",
       "(biased) residual per SiPM",
       { { FTConstants::nSiPMsTotal, -0.5, FTConstants::nSiPMsTotal - 0.5, "X" }, { 50, -1., 1., "Y" } } };
+  mutable Gaudi::Accumulators::ProfileHistogram<1> m_residualPerEta{
+      this, "TrackResidualPerEta", "Track residuals per eta", { 100, 2, 5, "Eta" } };
 
   // Plots split by SciFi module
   struct HistoModules {
-    mutable Gaudi::Accumulators::Histogram<1> UnbiasedResidualModules_permodule;
-    mutable Gaudi::Accumulators::Histogram<1> RMSResidualModules_permodule;
+    mutable Gaudi::Accumulators::Histogram<1>        UnbiasedResidualModules_permodule;
+    mutable Gaudi::Accumulators::Histogram<1>        RMSResidualModules_permodule;
+    mutable Gaudi::Accumulators::ProfileHistogram<1> UnbiasedResidualModules_permodule_eta;
+    mutable Gaudi::Accumulators::ProfileHistogram<1> UnbiasedResidualModules_permodule_y;
 
     HistoModules( const FTTrackMonitor* owner, unsigned int module_id )
         : UnbiasedResidualModules_permodule{ owner,
@@ -149,7 +153,18 @@ private:
         , RMSResidualModules_permodule{ owner,
                                         LHCb::Detector::FTUtils::globalModuleToLocalString( module_id ),
                                         LHCb::Detector::FTUtils::globalModuleToLocalString( module_id ),
-                                        { 200, -2. * Gaudi::Units::mm, 2. * Gaudi::Units::mm, "X" } } {}
+                                        { 200, -2. * Gaudi::Units::mm, 2. * Gaudi::Units::mm, "X" } }
+        , UnbiasedResidualModules_permodule_eta{ owner,
+                                                 fmt::format(
+                                                     "{}_eta",
+                                                     LHCb::Detector::FTUtils::globalModuleToLocalString( module_id ) ),
+                                                 LHCb::Detector::FTUtils::globalModuleToLocalString( module_id ),
+                                                 { 100, 2, 5, "Eta" } }
+        , UnbiasedResidualModules_permodule_y{
+              owner,
+              fmt::format( "{}_y", LHCb::Detector::FTUtils::globalModuleToLocalString( module_id ) ),
+              LHCb::Detector::FTUtils::globalModuleToLocalString( module_id ),
+              { 100, 0, 2400, "y [mm]" } } {}
   };
 
   // Plots split by SciFi station
@@ -365,6 +380,10 @@ void FTTrackMonitor::fillNodeInfo( LHCb::Track const& track, FitResultType const
       m_UnbiasedResidualModules[uniqueModule] += node.unbiasedResidual();
       m_UnbiasedResidualQuarters[uniqueQuarter] += node.unbiasedResidual();
 
+      // Plot resiadials as a function of track eta
+      const double eta = track.pseudoRapidity();
+      m_residualPerEta[eta] += node.unbiasedResidual();
+
       ++m_unbiasedFTResidualLayer[{ uniqueLayer, node.unbiasedResidual() }];
       ++m_biasedFTResidualLayer[{ uniqueLayer, node.residual() }];
       ++m_residualPerModule[{ uniqueModule, node.residual() }];
@@ -374,9 +393,9 @@ void FTTrackMonitor::fillNodeInfo( LHCb::Track const& track, FitResultType const
       if ( m_verboseMode.value() ) {
         auto& histos_modules = m_histograms_modules.at( chan.globalModuleIdx() );
         ++histos_modules.UnbiasedResidualModules_permodule[node.unbiasedResidual()];
-        if ( node.errResidual2() > TrackParameters::lowTolerance ) {
-          ++histos_modules.RMSResidualModules_permodule[residualRms];
-        }
+        histos_modules.UnbiasedResidualModules_permodule_eta[eta] += node.unbiasedResidual();
+        histos_modules.UnbiasedResidualModules_permodule_y[fabs( state( node ).position().y() )] +=
+            node.unbiasedResidual();
       }
 
       // plots per layer