Skip to main content
Glama

calculate_churn_rate

Calculate net revenue retention (NRR), gross revenue retention (GRR), revenue churn and implied customer lifetime from one period's MRR movements. Also reports the NRR-minus-GRR spread, which reveals how much churn is being masked by expansion revenue.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
churned_mrrNoMRR lost to full cancellations.
starting_mrrYesMRR at the start of the period, in any single currency unit.
expansion_mrrNoMRR gained from upgrades and expansion within the existing base. Excludes new customers.
contraction_mrrNoMRR lost to downgrades (customer retained).

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed8 schema fields changed
    • addedInput schema / properties / churned_mrr
      Added value: +{
      +  "description": "MRR lost to full cancellations.",
      +  "type": "number"
      +}
    • addedInput schema / properties / contraction_mrr
      Added value: +{
      +  "description": "MRR lost to downgrades (customer retained).",
      +  "type": "number"
      +}
    • removedInput schema / properties / ending_mrr
      Removed value: -{
      -  "type": "number"
      -}
    • removedInput schema / properties / expanded_mrr
      Removed value: -{
      -  "type": "number"
      -}
    • addedInput schema / properties / expansion_mrr
      Added value: +{
      +  "description": "MRR gained from upgrades and expansion within the existing base. Excludes new customers.",
      +  "type": "number"
      +}
    • removedInput schema / properties / lost_mrr
      Removed value: -{
      -  "type": "number"
      -}
    • addedInput schema / properties / starting_mrr / description
      Added value: +"MRR at the start of the period, in any single currency unit."
    • changedInput schema / required
      Previous value: -[
      -  "starting_mrr",
      -  "ending_mrr"
      -]New value: +[
      +  "starting_mrr"
      +]
  2. First observed

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It discloses what the tool calculates but does not mention any behavioral traits such as side effects, edge cases (e.g., zero starting MRR), data requirements beyond parameters, or how missing parameters affect results. Minimal behavioral disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no superfluous words. First sentence states the core purpose and outputs. Second sentence highlights the added value of the NRR-minus-GRR spread. Front-loaded and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, so the description should explain return values. It lists outputs (NRR, GRR, etc.) but does not specify format (percentages, numbers) or units for implied lifetime. Given the tool produces multiple metrics, the description is incomplete and leaves ambiguity about what the agent will receive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds little beyond listing outputs; it does not explicitly map parameters to metrics or provide additional meaning beyond the schema descriptions. The schema descriptions are adequate for churned, expansion, and contraction MRR.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific metrics calculated (NRR, GRR, revenue churn, implied customer lifetime, and NRR-minus-GRR spread) using a precise verb ('Calculate') and resource ('one period's MRR movements'). It distinguishes itself from sibling tools which focus on concentration, LTV, zombie MRR, scoring bands, and health scoring.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context that the tool is for calculating retention metrics from MRR movements, but it does not explicitly state when to use this tool over siblings like calculate_ltv or detect_zombie_mrr, nor does it mention any prerequisites or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.