diff --git a/handbook/troggle/trogmermaid.html b/handbook/troggle/trogmermaid.html
new file mode 100644
index 000000000..cb3e341c6
--- /dev/null
+++ b/handbook/troggle/trogmermaid.html
@@ -0,0 +1,73 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<title>Handbook Troggle Data Model</title>
+<link rel="stylesheet" type="text/css" href="../../css/main2.css" />
+  <script src="https://cdn.jsdelivr.net/npm/mermaid/dist/mermaid.min.js"></script>
+  <script>mermaid.initialize({startOnLoad:true});</script>
+</head>
+<body><style>body { background: #fff url(/images/style/bg-system.png) repeat-x 0 0 }</style>
+<h2 id="tophead">CUCC Expedition Handbook - troggle</h2>
+<h1>Troggle Data Model (python)</h1>
+<p>Asking ChatGPT to read our data model and produce a Mermad-style diagram produces something it has hallucinated. This is NOT troggle.
+<p><em>Can you look at the data model at https://expo.survex.com/handbook/troggle/datamodel.html and generate the data model in mermaid script in html</em> 
+  <div class="mermaid">
+    graph LR
+    Cave --"1"--> Survey
+    Cave --"1"--> Map
+    Cave --"0..*"--> Expedition
+    Cave --"0..*"--> SurveyTeam
+    Cave --"0..*"--> Entrance
+    Cave --"0..*"--> Passage
+    Survey --"0..*"--> SurveyHeader
+    Survey --"0..*"--> SurveyStation
+    Survey --"0..*"--> SurveyFix
+    Survey --"0..*"--> SurveyFlag
+    Survey --"0..*"--> SurveyTeam
+    Survey --"0..*"--> SurveyInstrument
+    Survey --"0..*"--> SurveyCenterline
+    Survey --"0..*"--> SurveyShot
+    Survey --"0..*"--> SurveyCalibration
+    Survey --"0..*"--> SurveyExtra
+    Survey --"0..*"--> SurveyEquate
+    Expedition --"1"--> ExpeditionLeader
+    Expedition --"0..*"--> ExpeditionMember
+    Expedition --"0..*"--> ExpeditionEquipment
+    Entrance --"1"--> EntrancePosition
+    Passage --"0..*"--> PassagePoint
+    Passage --"0..*"--> PassageSection
+  </div>
+
+
+  <div class="mermaid">
+    graph LR
+    SurveyFile --"1"--> SurveyHeader
+    SurveyFile --"1"--> SurveyStation
+    SurveyFile --"1"--> SurveyFix
+    SurveyFile --"1"--> SurveyFlag
+    SurveyFile --"1"--> SurveyTeam
+    SurveyFile --"1"--> SurveyInstrument
+    SurveyFile --"1"--> SurveyCenterline
+    SurveyFile --"1"--> SurveyShot
+    SurveyFile --"1"--> SurveyCalibration
+    SurveyFile --"1"--> SurveyExtra
+    SurveyFile --"1"--> SurveyEquate
+    SurveyHeader --"1"--> SurveyCenterline
+    SurveyHeader --"1"--> SurveyTeam
+    SurveyHeader --"1"--> SurveyInstrument
+    SurveyHeader --"0..*"--> SurveyExtra
+    SurveyStation --"1"--> SurveyFix
+  </div>
+</body>
+</html>
+
+<hr />
+Return to: <a href="trogarch.html">Troggle architecture</a><br />
+Return to: <a href="trogintro.html">Troggle intro</a><br />
+Troggle index: 
+<a href="trogindex.html">Index of all troggle documents</a><br />
+
+<hr />
+</body>
+</html>
\ No newline at end of file