{
  "title": "ConvoMargin probability umbrellas",
  "summary": "Name the topic cluster before the first prompt so agents pull from one word neighborhood. Compact receipts then log whichever model actually ran.",
  "principles": [
    "Think the umbrella before the first prompt.",
    "Core chunks live under the umbrella; edge chunks only when the last run missed intent.",
    "Fewer open-ended prompts means fewer wrong probability branches and fewer billed retries.",
    "Log model, tokens, and tools on the receipt so a Cursor toggle is a new row, not a new product."
  ],
  "umbrellas": [
    {
      "id": "saas-pl",
      "label": "SaaS prompt P&L",
      "coreChunks": ["token cost", "subscriber tier", "contribution margin", "prompt sequence", "zero marginal cost"],
      "edgeCaseChunks": ["Canva unit cost", "usage tripled"]
    },
    {
      "id": "ent-roi",
      "label": "Enterprise license ROI",
      "coreChunks": ["seat fee", "cost-per-prompt", "department", "shelfware", "renewal"],
      "edgeCaseChunks": ["M365 Copilot", "Claude seat"]
    },
    {
      "id": "cs-tix",
      "label": "Support ticket economics",
      "coreChunks": ["token dollar", "multi-turn", "RAG", "free-tier", "LTV"],
      "edgeCaseChunks": ["agent loop", "deflection"]
    },
    {
      "id": "model-mix",
      "label": "Per-prompt model mix",
      "coreChunks": ["model_id", "Cursor toggle", "Grok", "router", "web tools"],
      "edgeCaseChunks": ["Headroom", "invoice vs modeled"]
    },
    {
      "id": "schema",
      "label": "Compact schema / tokenization",
      "coreChunks": ["compact key", "alias map", "1-token canon", "umbrella", "prompt overhead"],
      "edgeCaseChunks": ["verbose log", "chars/4"]
    }
  ]
}
