diff --git a/docs/elements.md b/docs/elements.md
new file mode 100644
index 0000000000000000000000000000000000000000..d4340c308c55d41c0caed68645d75983e2d853dc
--- /dev/null
+++ b/docs/elements.md
@@ -0,0 +1,129 @@
+# Geomagnetic Elements
+
+
+
+## Obsrio
+Elements generated by observatories running the Obsrio data acquisition system.
+
+### Acquired elements
+
+- 10Hz volt + bin
+  - U, V, W
+
+- 1Hz engineering units
+  - F, T1-4
+
+### Derived variation
+
+- 1Hz engineering units
+
+  - U, V, W
+
+    uses instrument metadata from `geomagio.Metadata.get_instrument` to convert volt+bin to engineering units.
+
+    uses `geomagio.algorithm.FilterAlgorithm` to filter from 10Hz to 1Hz.
+
+- 1 minute engineering units
+
+  - T1-4
+
+    uses `geomagio.algorithm.FilterAlgorithm` to filter from 1Hz to 1 minute.
+
+
+## PCDCP
+Elements generated by observatories running the PCDCP data acquisition system.
+
+### Acquired elements
+
+- 1Hz legacy engineering units
+
+  - H, E, Z, F
+
+  - H, E, Z volt + bin
+
+- 1 minute legacy engineering units
+
+  - T1-4
+
+  - H, E, Z, F
+
+  - instrument battery voltage
+
+### Derived variation
+
+- 1Hz engineering units
+
+  - U, V, W, F copied from legacy engineering units
+
+- 1 minute engineering units
+
+  - T1-4 copied from legacy engineering units
+
+
+## Common
+
+Derived elements calculated for all observatories.
+
+### Derived variation
+
+- 1Hz engineering units
+  - D, X, Y
+
+    uses `geomagio.algorithm.XYZAlgorithm` to rotate coordinates from observatory (U,V) to observatory D and geographic (X,Y).
+
+  - G
+
+    uses `geomagio.algorithm.DeltaFAlgorithm` to generate delta F from U,V,W,F.
+
+- 1 minute/hour/day engineering units
+
+  - U, V, W, F, T1-4
+
+    uses `geomagio.algorithm.FilterAlgorithm` to filter from 1Hz to 1 minute or 1 minute to 1 hour/day.
+
+  - D, X, Y
+
+    uses `geomagio.algorithm.XYZAlgorithm` to rotate coordinates from observatory (U,V) to observatory D and geographic (X,Y).
+
+  - G
+
+    uses `geomagio.algorithm.DeltaFAlgorithm` to generate delta F from U,V,W,F.
+
+  - H_SQ, H_SV, H_Dist
+
+    uses `geomagio.algorithm.SqDistAlgorithm` to produce  solar quiet(SQ), secular variation(SV) and
+    magnetic disturbance(Dist) at 1 minute interval.
+
+### Derived adjusted
+
+- 1Hz engineering units
+  - X, Y, Z, F
+
+    uses `geomagio.algorithm.AdjustedAlgorithm` with per-observatory matrices stored in filesystem.
+
+  - H, D
+
+    uses `geomagio.algorithm.XYZAlgorithm` to rotate coordinates from geographic (X,Y) to magnetic (H,D).
+
+  - G
+
+    uses `geomagio.algorithm.DeltaFAlgorithm` to generate delta F from X,Y,Z,F.
+
+- 1 minute/hour/day engineering units
+
+  - X, Y, Z, F
+
+    uses `geomagio.algorithm.FilterAlgorithm` to filter from 1Hz to 1 minute or 1 minute to 1 hour/day.
+
+  - H, D
+
+    uses `geomagio.algorithm.XYZAlgorithm` to rotate coordinates from geographic (X,Y) to magnetic (H,D).
+
+  - G
+
+    uses `geomagio.algorithm.DeltaFAlgorithm` to generate delta F from X,Y,Z,F.
+
+  - H_SQ, H_SV, H_Dist
+
+    uses `geomagio.algorithm.SqDistAlgorithm` to produce  solar quiet(SQ), secular variation(SV) and
+    magnetic disturbance(Dist) at 1 minute interval.
\ No newline at end of file