diff --git a/src/metrics/collection_data.cpp b/src/metrics/collection_data.cpp
index 915f570..11ef1b0 100644
--- a/src/metrics/collection_data.cpp
+++ b/src/metrics/collection_data.cpp
@@ -84,8 +84,8 @@
 
         if (timestamp > duration.t)
         {
-            readings.front().first = std::max(readings.front().first,
-                                              timestamp - duration.t);
+            readings.front().first =
+                std::max(readings.front().first, timestamp - duration.t);
         }
     }
 
@@ -122,10 +122,9 @@
     std::vector<ReadingItem> readings;
 };
 
-std::vector<std::unique_ptr<CollectionData>>
-    makeCollectionData(size_t size, OperationType op,
-                       CollectionTimeScope timeScope,
-                       CollectionDuration duration)
+std::vector<std::unique_ptr<CollectionData>> makeCollectionData(
+    size_t size, OperationType op, CollectionTimeScope timeScope,
+    CollectionDuration duration)
 {
     using namespace std::string_literals;
 
@@ -136,10 +135,11 @@
     switch (timeScope)
     {
         case CollectionTimeScope::interval:
-            std::generate_n(std::back_inserter(result), size,
-                            [cf = makeCollectionFunction(op), duration] {
-                return std::make_unique<DataInterval>(cf, duration);
-            });
+            std::generate_n(
+                std::back_inserter(result), size,
+                [cf = makeCollectionFunction(op), duration] {
+                    return std::make_unique<DataInterval>(cf, duration);
+                });
             break;
         case CollectionTimeScope::point:
             std::generate_n(std::back_inserter(result), size,
@@ -148,8 +148,8 @@
         case CollectionTimeScope::startup:
             std::generate_n(std::back_inserter(result), size,
                             [cf = makeCollectionFunction(op)] {
-                return std::make_unique<DataStartup>(cf);
-            });
+                                return std::make_unique<DataStartup>(cf);
+                            });
             break;
     }
 
