diff --git a/environment.yml b/environment.yml
index 3287b74c3d5dda04a146e078b53e86c512da9806..ac262577a7e2388ec8ca04c4079aba4bc7a0c992 100644
--- a/environment.yml
+++ b/environment.yml
@@ -7,6 +7,7 @@ dependencies:
   - matplotlib
   - pandas
   - pip
+  - tqdm
   - flake8-docstrings
   - mypy
   - flake8
diff --git a/pyproject.toml b/pyproject.toml
index ed805ec4ea5becc2831a237eade717e3f4a7581d..de522e9e6d4e73b1852e910bcc02eed53e09653d 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -12,6 +12,7 @@ requires-python = ">=3.7"
 license = {text = "MIT"}
 dependencies = [
     "pandas",
+    "tqdm",
 ]
 
 [project.urls]
diff --git a/tsg/main.py b/tsg/main.py
index 25b7455ff21aac6d344994b20093f06a9c509a0f..29e1420e0045d559d61b024d8a691a4f3218152c 100644
--- a/tsg/main.py
+++ b/tsg/main.py
@@ -2,6 +2,8 @@ import logging
 
 import numpy as np
 import pandas as pd
+from tqdm import tqdm
+
 
 LOG = logging.getLogger(__name__)
 
@@ -288,7 +290,7 @@ def sample_transcripts(
     # Set up output file, write header once and append data in loop
     write_header(output_annotations_file)
 
-    for _, row in transcripts.iterrows():
+    for _, row in tqdm(transcripts.iterrows()):
         transcript_id = row["id"]
         transcript_count = row["count"]