diff --git a/visualizer/data.py b/visualizer/data.py
index 3671900e1068d15eea26dc644b85a041fdfb00f0..40617edac1125d337974f4ae2184fb9924c24b09 100644
--- a/visualizer/data.py
+++ b/visualizer/data.py
@@ -1,7 +1,7 @@
 #!/usr/bin/env python3
 
 from collections import namedtuple
-from datetime import datetime, timedelta, timezone
+from datetime import datetime, timezone
 import json
 import os
 from urllib.parse import quote
@@ -59,36 +59,6 @@ def query_hourly_data(station_name, year, smooth=False):
         yield translate_api_line(api_line, api_cols)
 
 
-def smooth_batch(datapoints):
-    """Group 10-minute data into ten-to, o-clock, and ten-after trios."""
-    # Seconds and microseconds are presumed to be zero.
-    minute_marks = tuple(timedelta(minutes=x) for x in (-10, 0, 10))
-    required_mark_i = 1  # Index of o-clock in `minute_marks`
-
-    # Find the absolute hour and the minute mark `dt` belongs to.
-    def hour_of(dt):
-        for i, minute_mark in enumerate(minute_marks):
-            shifted = dt - minute_mark
-            if shifted.minute == 0:
-                return shifted, i
-        return None, None
-
-    batch = [None] * len(minute_marks)
-    batch_hour = None
-    for point in datapoints:
-        point_hour, mark_i = hour_of(point.dt)
-        if point_hour is None:
-            continue
-        if point_hour != batch_hour:
-            if batch[required_mark_i] is not None:
-                yield batch
-            batch = [None] * len(minute_marks)
-            batch_hour = point_hour
-        batch[mark_i] = point
-    if batch[required_mark_i] is not None:
-        yield batch
-
-
 def translate_api_line(api_line, api_cols):
     (date_str, time_str, *variables) = (api_line[col] for col in api_cols)
     dt_naive = datetime.strptime(f'{date_str} {time_str}', '%Y-%m-%d %H:%M')