# Churn calculator

- Human page: https://happytails.ai/en/calculators/churn-calculator/
- Markdown: https://happytails.ai/en/calculators/churn-calculator.md
- Structured JSON: https://happytails.ai/agents/en/calculators/churn-calculator/index.json
- Visibility: public

## Tool capabilities

| Property | Value |
| --- | --- |
| Tool ID | `churn-calculator` |
| Category | calculators |
| Implementation | Registered implementation. Registration alone is not a production-quality guarantee. |
| Browser execution | Use the visible action or interactive controls. |
| Browser processing | Browser; see tool notes for network behavior. |
| HTTP API | Not callable through HTTP. |
| Browser-agent interface | run_current_tool |

### Implementation notes

Use values for the same period and opening customer group. Enter amounts using a decimal point or your language’s decimal separator, without a currency symbol or thousands separators. Currency is a label, not a conversion. Results use the supplied assumptions and round ratios to six decimal places. Processing stays on your device.

### Inputs and settings

No free-text input is required. Use the file inputs and/or settings below.

| Setting | Meaning | Control type | Default | Constraints |
| --- | --- | --- | --- | --- |
| `mode` | Churn measure | select | "both" | Allowed: customers, revenue, both |
| `startingCustomers` | Opening customers | number | 100 | min=1 max=1000000000 step=1 |
| `lostCustomers` | Lost opening customers | number | 5 | min=0 max=1000000000 step=1 |
| `startingRevenue` | Revenue from opening customers | text | "10000" |  |
| `expansion` | Expansion from opening customers | text | "2000" |  |
| `contraction` | Revenue lost to downgrades | text | "500" |  |
| `churnedRevenue` | Revenue lost to departing customers | text | "1000" |  |
| `currency` | Currency code | text | "USD" |  |

### Browser-agent workflow

1. Open the human page in a browser that supports WebMCP.
2. Discover the interface exposed by that page; use its actual schema.
3. Select files on the page first when the tool requires files.
4. Call `run_current_tool` with valid input and settings.
5. Inspect the returned result or error and the displayed output. Retrieve files from the displayed download links.

Calls do not automatically copy or download results. Browser permissions still apply. Interface availability alone is not proof of successful execution.

### Planning specification

Enter amounts in one currency with a decimal point and at most six decimal places. Each input amount may be up to 1,000,000,000,000. Counts are whole numbers up to 1,000,000,000. Results use the supplied inputs and assumptions.

This describes intended requirements. Use the implementation notes, interface schema and observed output to determine current support.

### Complete machine-readable capability record

```json
{
  "id": "churn-calculator",
  "category": "calculators",
  "built": true,
  "requirements": "Enter amounts in one currency with a decimal point and at most six decimal places. Each input amount may be up to 1,000,000,000,000. Counts are whole numbers up to 1,000,000,000. Results use the supplied inputs and assumptions.",
  "implementation": {
    "fields": [
      {
        "key": "mode",
        "label": "Churn measure",
        "value": "both",
        "type": "select",
        "values": [
          "customers",
          "revenue",
          "both"
        ],
        "labels": {
          "customers": "Customer churn",
          "revenue": "Revenue churn",
          "both": "Customer and revenue churn"
        }
      },
      {
        "key": "startingCustomers",
        "label": "Opening customers",
        "value": 100,
        "type": "number",
        "min": 1,
        "max": 1000000000,
        "step": 1,
        "showWhen": {
          "mode": [
            "customers",
            "both"
          ]
        }
      },
      {
        "key": "lostCustomers",
        "label": "Lost opening customers",
        "value": 5,
        "type": "number",
        "min": 0,
        "max": 1000000000,
        "step": 1,
        "showWhen": {
          "mode": [
            "customers",
            "both"
          ]
        }
      },
      {
        "key": "startingRevenue",
        "label": "Revenue from opening customers",
        "value": "10000",
        "type": "text",
        "inputMode": "decimal",
        "maxLength": 25,
        "showWhen": {
          "mode": [
            "revenue",
            "both"
          ]
        }
      },
      {
        "key": "expansion",
        "label": "Expansion from opening customers",
        "value": "2000",
        "type": "text",
        "inputMode": "decimal",
        "maxLength": 25,
        "showWhen": {
          "mode": [
            "revenue",
            "both"
          ]
        }
      },
      {
        "key": "contraction",
        "label": "Revenue lost to downgrades",
        "value": "500",
        "type": "text",
        "inputMode": "decimal",
        "maxLength": 25,
        "showWhen": {
          "mode": [
            "revenue",
            "both"
          ]
        }
      },
      {
        "key": "churnedRevenue",
        "label": "Revenue lost to departing customers",
        "value": "1000",
        "type": "text",
        "inputMode": "decimal",
        "maxLength": 25,
        "showWhen": {
          "mode": [
            "revenue",
            "both"
          ]
        }
      },
      {
        "key": "currency",
        "label": "Currency code",
        "value": "USD",
        "type": "text",
        "maxLength": 3,
        "autoCapitalize": "characters",
        "showWhen": {
          "mode": [
            "revenue",
            "both"
          ]
        }
      }
    ],
    "input": false,
    "presentation": "metrics",
    "note": "Use values for the same period and opening customer group. Enter amounts using a decimal point or your language’s decimal separator, without a currency symbol or thousands separators. Currency is a label, not a conversion. Results use the supplied assumptions and round ratios to six decimal places. Processing stays on your device.",
    "experience": {
      "automatic": false,
      "single": false,
      "inputMaxLength": 1000000,
      "inputMode": "text",
      "label": "Your text",
      "placeholder": "Type or paste your input…",
      "help": "Up to 1,000,000 characters. Review the settings before running.",
      "action": null
    },
    "mode": "explicit",
    "interactive": false
  },
  "execution": "Browser interface",
  "api": null,
  "browser_agent": {
    "supported": true,
    "name": "run_current_tool",
    "discovery": "WebMCP on the human page in a supporting browser",
    "verification": "See audit/API-AUDIT.md; availability is not verification"
  }
}
```

## Page guide

Calculate customer churn and gross or net revenue churn separately for a consistent opening customer group.

How can we improve this tool?

Report a problem or share an idea.

Please leave out private information. Your message and the tool name go to our team via PostHog.

### How to use Churn calculator

1. Choose customer churn, revenue churn or both.
2. Use the opening customer group and enter losses, plus expansion for net revenue churn.
3. Review the separate churn measures and download the complete report.

## Useful next steps

- [Net revenue retention calculator](https://happytails.ai/en/calculators/net-revenue-retention-calculator/) ([Markdown](https://happytails.ai/en/calculators/net-revenue-retention-calculator.md))

- [Customer acquisition payback calculator](https://happytails.ai/en/calculators/customer-acquisition-payback-calculator/) ([Markdown](https://happytails.ai/en/calculators/customer-acquisition-payback-calculator.md))

## Customer loss and revenue loss answer different questions

Customer churn divides lost opening-cohort customers by the opening customer count. Revenue churn uses revenue lost from that same cohort. Losing one large customer and one small customer affect customer counts equally but can affect revenue very differently.

### Negative net churn is possible

Gross revenue churn includes contraction and churn losses. Net revenue churn subtracts expansion from those losses. Expansion can exceed losses, making net revenue churn negative even when some customers leave. New-customer revenue is not included.
