diff --git a/lts/lts-triage.py b/lts/lts-triage.py
index 5432c90..10c1d4b 100644
--- a/lts/lts-triage.py
+++ b/lts/lts-triage.py
@@ -64,7 +64,18 @@
 CPU_ERRATA_TOKEN = r'^report_errata ERRATA_'
 DOC_PATH_TOKEN = r'docs/design/cpu-specific-build-macros.rst'
 DOC_ERRATA_TOKEN = r'^^-\s*``ERRATA_'
-SAMPLE_SIZE = 20
+# REBASE_DEPTH is number of commits from tip of integration branch that we need
+# to check to find the commit that the current patch set is based on
+REBASE_DEPTH = 50
+# MAX_PATCHSET_DEPTH is the maximum number of patches that we expect in the current
+# patch set. for each commit in the patch set we will look at past REBASE_DEPTH commits
+# of integration branch. if there is a match we'd know the current patch set was based
+# off of that matching commit. This is not necessarily the optimal method but I'm not
+# familiar with gerrit API. If there is a way to do this better we should implement that.
+MAX_PATCHSET_DEPTH = 50
+CHECK_AGAINST = 'integration'
+TO_CHECK = 'to_check'
+
 
 ## TODO: for case like 921081049ec3 where we need to refactor first for security
 #       patch to be applied then we should:
@@ -79,8 +90,6 @@
 def main():
     parser = argparse.ArgumentParser(prog="lts-triage.py", description="check patches for LTS candidacy")
     parser.add_argument("--repo", required=True, help="path to tf-a git repo")
-    parser.add_argument("--branch", help="branch to check. default = integration", default="integration")
-    parser.add_argument("--sample_size", help="how many patches to scan. default = 20", default=SAMPLE_SIZE)
     parser.add_argument("--debug", help="print debug logs", action="store_true")
 
     args = parser.parse_args()
@@ -88,12 +97,24 @@
     global_debug = args.debug
 
     repo = git.Repo(args.repo)
-    cnt = int(args.sample_size)
 
-    # TODO: make sure that by iter_commits() we are traversing correctly in case of merge commits.
-    for cmt in repo.iter_commits(args.branch):
+    # collect the integration hashes in a list
+    rebase_hashes = []
+    for cmt in repo.iter_commits(CHECK_AGAINST):
+        rebase_hashes.append(cmt.hexsha)
+        if len(rebase_hashes) == REBASE_DEPTH:
+            break
+
+    cnt = MAX_PATCHSET_DEPTH
+    for cmt in repo.iter_commits(TO_CHECK):
         score = 0
 
+        # if we find a same commit hash among the ones we collected from integration branch
+        # then we have seen all the new patches in this patch set, so we should exit.
+        if cmt.hexsha in rebase_hashes:
+            debug_print("## stopping because found sha1 common between the two branches: ", cmt.hexsha)
+            break;
+
         # don't process merge commits
         if len(cmt.parents) > 1:
             continue
