diff --git a/Trigger/TrigSteer/TrigOutputHandling/src/DecisionSummaryMakerAlg.cxx b/Trigger/TrigSteer/TrigOutputHandling/src/DecisionSummaryMakerAlg.cxx
index d409eb5b4c240b4de37c14346916f2f30ef74d71..fd12b2d5064e376811bb1cfd1d89ddad64030095 100644
--- a/Trigger/TrigSteer/TrigOutputHandling/src/DecisionSummaryMakerAlg.cxx
+++ b/Trigger/TrigSteer/TrigOutputHandling/src/DecisionSummaryMakerAlg.cxx
@@ -146,7 +146,11 @@ StatusCode DecisionSummaryMakerAlg::execute(const EventContext& context) const {
 
   // Set the algorithm's filter status. This controlls the running of finalisation algs which we only want to execute
   // in events which are accepted by one ore more chains.
-  setFilterPassed( allPassingFinalIDs.size() > 0, context );
+  bool filterStatus = true;
+  if (m_setFilterStatus) {
+    filterStatus = (allPassingFinalIDs.size() > 0);
+  }
+  setFilterPassed(filterStatus, context );
 
   return StatusCode::SUCCESS;
 }
diff --git a/Trigger/TrigSteer/TrigOutputHandling/src/DecisionSummaryMakerAlg.h b/Trigger/TrigSteer/TrigOutputHandling/src/DecisionSummaryMakerAlg.h
index 5041d00c02a400fdb57d4339c52fcda1a9e8b843..96e4bd9b4b76dbff314c16c228e59bb6debc0eaf 100644
--- a/Trigger/TrigSteer/TrigOutputHandling/src/DecisionSummaryMakerAlg.h
+++ b/Trigger/TrigSteer/TrigOutputHandling/src/DecisionSummaryMakerAlg.h
@@ -47,6 +47,10 @@ private:
   Gaudi::Property<bool> m_doCostMonitoring{this, "DoCostMonitoring", false, 
     "Enables end-of-event cost monitoring behavior."};
 
+  Gaudi::Property<bool> m_setFilterStatus{this, "SetFilterStatus", false, 
+    "Enables chain-passed filter. This will cause the downstream EDMCreator to not run if no chains pass, saving CPU in rejected events. "
+    "Cannot be used in jobs producing RDO output."};
+
   std::map<std::string, TrigCompositeUtils::DecisionIDContainer> m_collectionFilter;
 
 };