diff --git a/smoke_test/python/avg_install.py b/smoke_test/python/avg_install.py
new file mode 100755
index 0000000000000000000000000000000000000000..91ea457f8bd87e14122bf4220b0918f14158a627
--- /dev/null
+++ b/smoke_test/python/avg_install.py
@@ -0,0 +1,32 @@
+#!/usr/bin/env python3
+# run module load python/3.8.5-gcc8-static first
+from pathlib import Path
+import os
+import pandas as pd
+import time
+import datetime
+import collections
+import numpy as np
+nweek = 12
+
+modulepath = Path('/usr/local/Modules/modulefiles')
+softwares = list(modulepath.glob('*/'))
+modulefiles = [list(i.glob('**/[!.]*')) for i in softwares if i.is_dir() and os.access(i, os.R_OK)]
+lastm = {datetime.datetime.fromtimestamp(j.stat().st_mtime): j for i in modulefiles for j in i}
+today = datetime.date.today()
+week = datetime.timedelta(weeks=1)
+
+interval = np.array([today - week*i for i in range(nweek+1)][::-1])
+def quantize_week(date):
+    week = interval[:-1][(interval[:-1] <= date) & (date < interval[1:])]
+    return week.item()
+
+
+byweek = collections.defaultdict(list)
+for k, v in lastm.items():
+    mod_day = datetime.date(*k.timetuple()[:3])
+    if mod_day >= interval[0]:
+        byweek[quantize_week(mod_day)].append(v)
+
+avg_install = np.mean([len(i) for i in byweek.values()])
+print(avg_install)