diff --git a/gen-boxplots.py b/gen-boxplots.py
new file mode 100755
index 0000000000000000000000000000000000000000..7b75caa668ba62d3f9ea26332e3e32e77e5cb557
--- /dev/null
+++ b/gen-boxplots.py
@@ -0,0 +1,71 @@
+#!/usr/bin/env python3
+
+import yaml
+import sys
+
+def parse_data(stream):
+    """Convert yamls string to dict"""
+    return yaml.safe_load(stream)
+
+TIKZ_TEMPLATE = \
+"""
+\\documentclass[crop=false]{standalone}
+\\usepackage{pgfplotstable}
+\\pgfplotsset{compat=1.17}
+\\usepgfplotslibrary{statistics}
+\\begin{document}
+\\begin{tikzpicture}
+\\begin{axis}[
+    boxplot/draw direction=y,
+    legend columns=2,
+    area legend,
+    legend style={
+        font=\scriptsize,
+        draw=none,
+        fill=none,
+        at={(0.5,-0.1)},
+        anchor=north
+    },
+]
+$PLOTS$
+\\end{axis}
+\\end{tikzpicture}
+\\end{document}
+"""
+
+PLOT_TEMPLATE = \
+"""\\addplot+[
+    boxplot prepared={{
+          lower whisker={lower_whisker},
+          lower quartile={lower_quartile},
+          median={median},
+          average={mean},
+          upper quartile={upper_quartile},
+          upper whisker={upper_whisker},
+      }},
+] coordinates{{}};
+\\addlegendentry{{{syscall}}}
+"""
+
+def generate_boxplot(data):
+    plots = ''
+    for syscall, stats in data.items():
+        plots += PLOT_TEMPLATE.format(syscall=syscall.replace('_', '-'), **stats["nanos"])
+
+    return TIKZ_TEMPLATE.replace('$PLOTS$', plots)
+
+
+if __name__ == '__main__':
+    if len(sys.argv) == 1:
+        _data = parse_data(sys.stdin)
+    else:
+        with open(sys.argv[1], 'r') as yaml_file:
+            _data = parse_data(yaml_file)
+
+    tikz = generate_boxplot(_data)
+
+    if len(sys.argv) > 2:
+        with open(sys.argv[2], 'w') as saveto:
+            print(tikz, file=saveto)
+    else:
+        print(tikz)
diff --git a/stats.c b/stats.c
index e38f2dad9c5d92465f30a6b9bb501933e4bb2b93..ba6c5d00bc926ed0a8b98d0bb3e0ed77621811fd 100644
--- a/stats.c
+++ b/stats.c
@@ -109,8 +109,8 @@ void print_desc_stats(const char* name, const char* indentation, const uint64_t*
 	printf("%s%smean: %lu\n", indentation, indentation, mean);
 	printf("%s%svar: %lu\n", indentation, indentation, var);
 	printf("%s%sstd: %lu\n", indentation, indentation, std);
-	printf("%s%sprctl_25: %lu\n", indentation, indentation, prctl_25);
-	printf("%s%sprctl_75: %lu\n", indentation, indentation, prctl_75);
+	printf("%s%slower_quartile: %lu\n", indentation, indentation, prctl_25);
+	printf("%s%supper_quartile: %lu\n", indentation, indentation, prctl_75);
 	printf("%s%slower_whisker: %lu\n", indentation, indentation, lower_whisker);
 	printf("%s%supper_whisker: %lu\n", indentation, indentation, upper_whisker);
 }