diff --git a/src/main/java/io/ventureplatform/util/InvestmentRollup.java b/src/main/java/io/ventureplatform/util/InvestmentRollup.java
new file mode 100644
index 0000000..37a32e9
--- /dev/null
+++ b/src/main/java/io/ventureplatform/util/InvestmentRollup.java
@@ -0,0 +1,86 @@
+package io.ventureplatform.util;
+
+import java.util.Comparator;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.stream.Collectors;
+
+/**
+ * Aggregates investment data across portfolio companies for dashboard rollups.
+ *
+ *
Used by reporting endpoints to compute category-level totals and rankings
+ * without round-tripping to the database for every aggregation.
+ */
+public final class InvestmentRollup {
+
+ private InvestmentRollup() {
+ // utility class
+ }
+
+ /**
+ * Sum the total investment amount for portfolio companies matching the
+ * given category. Companies whose {@code amount} is missing or null are
+ * treated as 0. Returns 0 if no matches.
+ */
+ public static long totalInvestmentByCategory(
+ final List