diff --git a/km3io/online.py b/km3io/online.py
index 37d0eeaafe1e34f6eacb104c6b7f9f4ac2f215e7..59e2fee3beb4f5805f4e081de637bac4e91375c6 100644
--- a/km3io/online.py
+++ b/km3io/online.py
@@ -60,6 +60,9 @@ class SummarysliceReader:
     def __next__(self):
         return next(self._summaryslices)
 
+    def __len__(self):
+        return int(np.ceil(len(self._branch) / self._step_size))
+
 
 @nb.vectorize(
     [nb.int32(nb.int8), nb.int32(nb.int16), nb.int32(nb.int32), nb.int32(nb.int64)]
diff --git a/tests/test_online.py b/tests/test_online.py
index 70a84ff6978fbd35163badf985d04ddca862df1e..c86ab49b5e7675c9e5ad8e8766c7ddd92913b755 100644
--- a/tests/test_online.py
+++ b/tests/test_online.py
@@ -739,6 +739,14 @@ class TestSummarysliceReader(unittest.TestCase):
     def test_init(self):
         sr = SummarysliceReader(data_path("online/km3net_online.root"))
 
+    def test_length(self):
+        sr = SummarysliceReader(data_path("online/km3net_online.root"))
+        assert 1 == len(sr)
+        sr = SummarysliceReader(data_path("online/km3net_online.root"), step_size=2)
+        assert 2 == len(sr)
+        sr = SummarysliceReader(data_path("online/km3net_online.root"), step_size=3)
+        assert 1 == len(sr)
+
     def test_iterate_with_step_size_one(self):
         sr = SummarysliceReader(data_path("online/km3net_online.root"), step_size=1)
         i = 0