diff --git a/lib/xmet/series.py b/lib/xmet/series.py
new file mode 100644
index 0000000..d7b15d2
--- /dev/null
+++ b/lib/xmet/series.py
@@ -0,0 +1,24 @@
+from typing import Self
+
+from xmet.util import cmp
+from xmet.list import nearest
+
+class Series(dict):
+    def __init__(self):
+        super().__init__()
+
+    def intersect(self, series: Self):
+        pairs = nearest(sorted(self.keys(),   reverse=True),
+                        sorted(series.keys(), reverse=True))
+
+        sign_last = None
+
+        for pair in pairs:
+            v1, v2 = self[pair[0]], series[pair[1]]
+
+            sign = cmp(v1, v2)
+
+            if sign == 0 or (sign_last is not None and sign_last != sign):
+                return pair[0]
+
+            sign_last = sign