{
  "$format": "thethinkloop.template/v1",
  "slug": "churn-risk",
  "title": "Churn risk",
  "decides": "How likely a customer is to leave, based on what they wrote.",
  "question": {
    "name": "decision",
    "type": "score",
    "instructions": "How likely is this customer to churn?",
    "levels": [
      {
        "label": "Low",
        "description": "Satisfied or neutral. No sign of leaving."
      },
      {
        "label": "Elevated",
        "description": "Frustrated or disengaged, but no stated intent to leave."
      },
      {
        "label": "High",
        "description": "States or strongly implies an intent to cancel, not renew, or switch."
      }
    ]
  },
  "evidenceChecks": [
    {
      "name": "factor_1",
      "label": "Cancellation intent",
      "type": "predicate",
      "instructions": "The customer says they intend to cancel or not renew."
    },
    {
      "name": "factor_2",
      "label": "Competitor mentioned",
      "type": "predicate",
      "instructions": "The customer mentions a competitor or evaluating alternatives."
    },
    {
      "name": "factor_3",
      "label": "Negative sentiment",
      "type": "predicate",
      "instructions": "The customer expresses frustration or dissatisfaction."
    }
  ],
  "inputs": [
    {
      "name": "message",
      "type": "string",
      "required": true,
      "description": "The customer's message, verbatim. Include the subject line if there is one."
    },
    {
      "name": "renewal_date",
      "type": "string",
      "required": false,
      "description": "Upcoming renewal date, so risk can be read in context."
    }
  ],
  "expectedOutput": "A score from 0 to 2, a probability for each level, and a confidence value, plus one probability per evidence check.",
  "examples": [
    {
      "title": "Evaluating alternatives before renewal",
      "input": "We're evaluating alternatives because the reporting module is still broken after three tickets. Honestly we're frustrated, and unless this improves we won't renew in March.",
      "expected": "High"
    },
    {
      "title": "Expanding and asking for more",
      "input": "Loving the new dashboards. We just added 20 more seats for the EMEA team. Is there a way to schedule reports weekly?",
      "expected": "Low"
    }
  ],
  "startingPolicy": {
    "automateAt": 0.8,
    "abstainBelow": 0.5,
    "note": "A starting point for exploration, not a recommendation. Calibrate against your own labeled examples."
  }
}
