diff --git a/Core/include/ACTFW/Framework/IReader.hpp b/Core/include/ACTFW/Framework/IReader.hpp
index b0f792c90693aae2fd9a4144acceeccfe05e3e2e..84086c3e0ea95db39f35970f3535e75dfc7a6a77 100644
--- a/Core/include/ACTFW/Framework/IReader.hpp
+++ b/Core/include/ACTFW/Framework/IReader.hpp
@@ -13,8 +13,8 @@
 #ifndef ACTFW_IREADER_H
 #define ACTFW_IREADER_H
 
+#include <boost/optional.hpp>
 #include <string>
-
 #include "ACTFW/Framework/AlgorithmContext.hpp"
 #include "ACTFW/Framework/ProcessCode.hpp"
 
@@ -40,6 +40,11 @@ public:
   virtual ProcessCode
   read(AlgorithmContext context)
       = 0;
+
+  /// The number of events to be read in
+  /// @return (optional) number of events
+  virtual boost::optional<size_t>
+  numEvents() const = 0;
 };
 
 }  // namespace FW