diff --git a/util.py b/util.py
index 3209df47435b3899871efa36208288e5bc66b9a3..a99954cb5c5a93b474b1de1dd542b9663386e5cc 100644
--- a/util.py
+++ b/util.py
@@ -63,6 +63,8 @@ class BaseCheckList:
         return frame
 
     def compute(self, frame):
+        # Filter bad records from previous level
+        filtered_frame = frame.ix[frame.qc_percent < 1].copy()
         for check in self.checks:
-            frame = check(frame, self.parameters)
-        return self.update_qc_percent(frame)
+            filtered_frame = check(filtered_frame, self.parameters)
+        return self.update_qc_percent(frame.combine_first(filtered_frame))