{
  "title": "Net revenue retention calculator",
  "human_url": "https://happytails.ai/en/calculators/net-revenue-retention-calculator/",
  "agent_url": "https://happytails.ai/agents/en/calculators/net-revenue-retention-calculator/",
  "language": "en",
  "markdown_url": "https://happytails.ai/en/calculators/net-revenue-retention-calculator.md",
  "content": "Net revenue retention calculator\nReconcile starting cohort revenue, expansion, contraction and churn to calculate net and gross revenue retention.\nHow can we improve this tool?\nReport a problem or share an idea.\nPlease leave out private information. Your message and the tool name go to our team via PostHog.\nHow to use Net revenue retention calculator\nEnter recurring revenue from the customer group present at the start of the period.\nEnter expansion, contraction and churn revenue from that same group, excluding new customers.\nCalculate net and gross retention and download the reconciliation.\nUseful next steps\nChurn calculator\nCustomer acquisition cost calculator\nFollow the same customer group\nNet retention equals opening revenue plus expansion, less contraction and churn, divided by opening revenue. New-customer revenue is excluded. With opening revenue of 10000, expansion of 2000, contraction of 500 and churn of 1000, net retention is 105%.\nKeep gross and net retention separate\nGross retention excludes expansion. In the example it is 85%, making the revenue lost before expansion visible. Contraction and churn cannot together exceed opening cohort revenue in this model. Keep the revenue definition and observation period consistent.",
  "content_format": "text/plain",
  "visibility": "public",
  "links": [
    {
      "name": "Churn calculator",
      "url": "https://happytails.ai/en/calculators/churn-calculator/"
    },
    {
      "name": "Customer acquisition cost calculator",
      "url": "https://happytails.ai/en/calculators/customer-acquisition-cost-calculator/"
    }
  ],
  "tool": {
    "id": "net-revenue-retention-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": "startingRevenue",
          "label": "Revenue from opening customers",
          "value": "10000",
          "type": "text",
          "inputMode": "decimal",
          "maxLength": 25
        },
        {
          "key": "expansion",
          "label": "Expansion from opening customers",
          "value": "2000",
          "type": "text",
          "inputMode": "decimal",
          "maxLength": 25
        },
        {
          "key": "contraction",
          "label": "Revenue lost to downgrades",
          "value": "500",
          "type": "text",
          "inputMode": "decimal",
          "maxLength": 25
        },
        {
          "key": "churnedRevenue",
          "label": "Revenue lost to departing customers",
          "value": "1000",
          "type": "text",
          "inputMode": "decimal",
          "maxLength": 25
        },
        {
          "key": "currency",
          "label": "Currency code",
          "value": "USD",
          "type": "text",
          "maxLength": 3,
          "autoCapitalize": "characters"
        }
      ],
      "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"
    }
  },
  "markdown": "# Net revenue retention calculator\n\n- Human page: https://happytails.ai/en/calculators/net-revenue-retention-calculator/\n- Markdown: https://happytails.ai/en/calculators/net-revenue-retention-calculator.md\n- Structured JSON: https://happytails.ai/agents/en/calculators/net-revenue-retention-calculator/index.json\n- Visibility: public\n\n## Tool capabilities\n\n| Property | Value |\n| --- | --- |\n| Tool ID | `net-revenue-retention-calculator` |\n| Category | calculators |\n| Implementation | Registered implementation. Registration alone is not a production-quality guarantee. |\n| Browser execution | Use the visible action or interactive controls. |\n| Browser processing | Browser; see tool notes for network behavior. |\n| HTTP API | Not callable through HTTP. |\n| Browser-agent interface | run_current_tool |\n\n### Implementation notes\n\nUse 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.\n\n### Inputs and settings\n\nNo free-text input is required. Use the file inputs and/or settings below.\n\n| Setting | Meaning | Control type | Default | Constraints |\n| --- | --- | --- | --- | --- |\n| `startingRevenue` | Revenue from opening customers | text | \"10000\" |  |\n| `expansion` | Expansion from opening customers | text | \"2000\" |  |\n| `contraction` | Revenue lost to downgrades | text | \"500\" |  |\n| `churnedRevenue` | Revenue lost to departing customers | text | \"1000\" |  |\n| `currency` | Currency code | text | \"USD\" |  |\n\n### Browser-agent workflow\n\n1. Open the human page in a browser that supports WebMCP.\n2. Discover the interface exposed by that page; use its actual schema.\n3. Select files on the page first when the tool requires files.\n4. Call `run_current_tool` with valid input and settings.\n5. Inspect the returned result or error and the displayed output. Retrieve files from the displayed download links.\n\nCalls do not automatically copy or download results. Browser permissions still apply. Interface availability alone is not proof of successful execution.\n\n### Planning specification\n\nEnter 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.\n\nThis describes intended requirements. Use the implementation notes, interface schema and observed output to determine current support.\n\n### Complete machine-readable capability record\n\n```json\n{\n  \"id\": \"net-revenue-retention-calculator\",\n  \"category\": \"calculators\",\n  \"built\": true,\n  \"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.\",\n  \"implementation\": {\n    \"fields\": [\n      {\n        \"key\": \"startingRevenue\",\n        \"label\": \"Revenue from opening customers\",\n        \"value\": \"10000\",\n        \"type\": \"text\",\n        \"inputMode\": \"decimal\",\n        \"maxLength\": 25\n      },\n      {\n        \"key\": \"expansion\",\n        \"label\": \"Expansion from opening customers\",\n        \"value\": \"2000\",\n        \"type\": \"text\",\n        \"inputMode\": \"decimal\",\n        \"maxLength\": 25\n      },\n      {\n        \"key\": \"contraction\",\n        \"label\": \"Revenue lost to downgrades\",\n        \"value\": \"500\",\n        \"type\": \"text\",\n        \"inputMode\": \"decimal\",\n        \"maxLength\": 25\n      },\n      {\n        \"key\": \"churnedRevenue\",\n        \"label\": \"Revenue lost to departing customers\",\n        \"value\": \"1000\",\n        \"type\": \"text\",\n        \"inputMode\": \"decimal\",\n        \"maxLength\": 25\n      },\n      {\n        \"key\": \"currency\",\n        \"label\": \"Currency code\",\n        \"value\": \"USD\",\n        \"type\": \"text\",\n        \"maxLength\": 3,\n        \"autoCapitalize\": \"characters\"\n      }\n    ],\n    \"input\": false,\n    \"presentation\": \"metrics\",\n    \"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.\",\n    \"experience\": {\n      \"automatic\": false,\n      \"single\": false,\n      \"inputMaxLength\": 1000000,\n      \"inputMode\": \"text\",\n      \"label\": \"Your text\",\n      \"placeholder\": \"Type or paste your input…\",\n      \"help\": \"Up to 1,000,000 characters. Review the settings before running.\",\n      \"action\": null\n    },\n    \"mode\": \"explicit\",\n    \"interactive\": false\n  },\n  \"execution\": \"Browser interface\",\n  \"api\": null,\n  \"browser_agent\": {\n    \"supported\": true,\n    \"name\": \"run_current_tool\",\n    \"discovery\": \"WebMCP on the human page in a supporting browser\",\n    \"verification\": \"See audit/API-AUDIT.md; availability is not verification\"\n  }\n}\n```\n\n## Page guide\n\nReconcile starting cohort revenue, expansion, contraction and churn to calculate net and gross revenue retention.\n\nHow can we improve this tool?\n\nReport a problem or share an idea.\n\nPlease leave out private information. Your message and the tool name go to our team via PostHog.\n\n### How to use Net revenue retention calculator\n\n1. Enter recurring revenue from the customer group present at the start of the period.\n2. Enter expansion, contraction and churn revenue from that same group, excluding new customers.\n3. Calculate net and gross retention and download the reconciliation.\n\n## Useful next steps\n\n- [Churn calculator](https://happytails.ai/en/calculators/churn-calculator/) ([Markdown](https://happytails.ai/en/calculators/churn-calculator.md))\n\n- [Customer acquisition cost calculator](https://happytails.ai/en/calculators/customer-acquisition-cost-calculator/) ([Markdown](https://happytails.ai/en/calculators/customer-acquisition-cost-calculator.md))\n\n## Follow the same customer group\n\nNet retention equals opening revenue plus expansion, less contraction and churn, divided by opening revenue. New-customer revenue is excluded. With opening revenue of 10000, expansion of 2000, contraction of 500 and churn of 1000, net retention is 105%.\n\n### Keep gross and net retention separate\n\nGross retention excludes expansion. In the example it is 85%, making the revenue lost before expansion visible. Contraction and churn cannot together exceed opening cohort revenue in this model. Keep the revenue definition and observation period consistent.\n"
}