[{'Text': 'Edited point-topic-mcp/gbs_cheatsheet.md:\n\n```diff\n@@ -3,6 +3,28 @@\n > A living document. Each time you use `read_gbs`, capture what you learn.\n > Patterns, edge cases, useful pipelines, and data quirks.\n \n+## Available Tools\n+\n+| Tool | Purpose |\n+|------|---------|\n+| `read_gbs(pipeline_json)` | Run any read-only aggregation pipeline. Explore, debug, answer any question. |\n+| `add_statistic(...)` | Insert a pending Statistics record. Validates inputs, checks dupes, returns admin URL. |\n+| `create_source(...)` | Create a Source record linking data to its origin. Optional S3 archival. |\n+\n+## Always Provide the Admin URL\n+\n+After calling `add_statistic`, the response already includes the admin URL to the operator\'s statistics page:\n+\n+```\n+https://pt-research-app.vercel.app/operators/{operator_id}/statistics\n+```\n+\n+This is the first place the associate will go to review what was entered. Make sure it\'s visible.\n+\n+If for any reason the URL isn\'t in the response, construct it yourself:\n+```\n+Admin: https://pt-research-app.vercel.app/operators/{operator_id}/statistics\n+```\n ## Current State\n \n | What | Value |\n@@ -25,7 +47,56 @@\n \n ## Useful `read_gbs` Pipelines\n \n-### 1. See recent data entry activity\n+### 0. Resolve the current period (first thing every session)\n+\n+```json\n+[\n+  {"$match": {"isCurrent": true}},\n+  {"$project": {"currentStatsPeriod": 1, "currentTariffsPeriod": 1}}\n+]\n+```\n+\n+### 1. Country-level coverage overview (replaces old get_status country view)\n+\n+```json\n+[\n+  {"$match": {"country": "United Kingdom", "isArchived": {"$ne": true}}},\n+  {"$lookup": {\n+    "from": "Statistics",\n+    "let": {"oid": "$_id"},\n+    "pipeline": [\n+      {"$match": {"$expr": {"$eq": ["$operatorId", "$$oid"]}}},\n+      {"$match": {"period": "2026Q1", "type": "broadband"}}\n+    ],\n+    "as": "stats"\n+  }},\n+  {"$addFields": {"statCount": {"$size": "$stats"}}},\n+  {"$project": {"name": 1, "statCount": 1}},\n+  {"$sort": {"statCount": -1}}\n+]\n+```\n+\n+### 2. Operator drill-down with full state/period summary (replaces old get_status operator view)\n+\n+Two-step: first get the OID, then query their stats.\n+\n+```json\n+[\n+  {"$match": {"operatorId": {"$oid": "662ff7a3f9d5751ffbf300f6"}, "period": "2026Q1"}},\n+  {"$project": {"tech": 1, "channel": 1, "domain": 1, "subscribers": 1, "state": 1}}\n+]\n+```\n+\n+Then also check the previous period for gap analysis:\n+\n+```json\n+[\n+  {"$match": {"operatorId": {"$oid": "662ff7a3f9d5751ffbf300f6"}, "period": "2025Q4"}},\n+  {"$group": {"_id": null, "techs": {"$addToSet": "$tech"}}}\n+]\n+```\n+\n+### 3. See recent data entry activity\n \n ```json\n [\n@@ -35,7 +106,7 @@\n ]\n ```\n \n-### 2. Check 2026Q1 progress (all operators with data)\n+### 4. Check current period progress (all operators with data)\n \n ```json\n [\n@@ -50,7 +121,36 @@\n ]\n ```\n \n-### 3. Full period history for any operator (via ObjectId)\n+### 5. Find which countries have/haven\'t been started this quarter\n+\n+Countries with data:\n+```json\n+[\n+  {"$match": {"period": "2026Q1", "type": "broadband"}},\n+  {"$group": {"_id": "$country", "count": {"$sum": 1}, "operators": {"$addToSet": "$operator"}}},\n+  {"$sort": {"count": -1}}\n+]\n+```\n+\n+Countries with no data (operators exist but no current-period stats):\n+```json\n+[\n+  {"$match": {"country": "France", "isArchived": {"$ne": true}}},\n+  {"$lookup": {\n+    "from": "Statistics",\n+    "let": {"oid": "$_id"},\n+    "pipeline": [\n+      {"$match": {"$expr": {"$eq": ["$operatorId", "$$oid"]}}},\n+      {"$match": {"period": "2026Q1"}}\n+    ],\n+    "as": "stats"\n+  }},\n+  {"$match": {"stats": {"$size": 0}}},\n+  {"$count": "operators_without_data"}\n+]\n+```\n+\n+### 6. Full period history for any operator (via ObjectId)\n \n ```json\n [\n@@ -60,7 +160,7 @@\n ]\n ```\n \n-### 4. Get any operator\'s ObjectId\n+### 7. Get any operator\'s ObjectId\n \n ```json\n [\n@@ -69,7 +169,7 @@\n ]\n ```\n \n-### 5. Gap analysis: which techs had data in previous period but not current\n+### 8. Gap analysis: techs present in previous period but missing in current\n \n ```json\n [\n@@ -77,6 +177,37 @@\n   {"$group": {"_id": null, "techs": {"$addToSet": "$tech"}}}\n ]\n ```\n+\n+### 9. State summary (pending vs published) for current period\n+\n+```json\n+[\n+  {"$match": {"period": "2026Q1", "type": "broadband"}},\n+  {"$group": {"_id": {"state": "$state", "createdBy": "$createdBy"}, "count": {"$sum": 1}}},\n+  {"$sort": {"_id.state": 1}}\n+]\n+```\n+\n+### 10. Full operator status (aggregated — all periods, all techs)\n+\n+```json\n+[\n+  {"$match": {"name": "BT Group", "country": "United Kingdom"}},\n+  {"$lookup": {\n+    "from": "Statistics",\n+    "let": {"oid": "$_id"},\n+    "pipeline": [\n+      {"$match": {"$expr": {"$eq": ["$operatorId", "$$oid"]}}},\n+      {"$group": {"_id": "$period", "count": {"$sum": 1}, "techs": {"$addToSet": "$tech"}}},\n+      {"$sort": {"_id": -1}}\n+    ],\n+    "as": "period_summary"\n+  }},\n+  {"$project": {"name": 1, "technologies": 1, "period_summary": 1}}\n+]\n+```\n+\n+This returns a compact period-by-period summary table — exactly what the old `get_status` *should* have done.\n \n ## Data Model Notes\n \n\n```'}]