Skip to main content
Glama

Forecast a SaaS business

saas_forecast_compute
Read-only

Use when the user wants a SaaS or subscription revenue forecast: subscribers, MRR and ARR, new, renewed, churned and reactivated MRR, billings and deferred revenue under annual or multi-month contracts and billing, marketing spend, LTV to CAC and CAC payback. Takes new subscribers and their growth, churn, reactivation, contract and billing months, ARPU, gross margin, CAC and retention cost, and opening subscribers and deferred revenue. Retention is either overall (retentionApproach "Overall churn", the default: the churn rate applies to every subscriber at each renewal) or by cohort: set retentionApproach to "Cohort curve" and pass cohortRetentionCurve, the share of a month's new subscribers still subscribed by month since they started (month 1 is usually 1; 0.8 in month 13 means 80% are left after an annual renewal; up to 120 values, missing months are 0). Each monthly cohort then follows that curve, reactivation is off, and the churn rate applies only to the opening subscribers. Use the cohort curve whenever the user describes retention by cohort or month by month. Returns each line by month plus totals and ending ARR. Runs the same math as Hemrock's SaaS Forecasting Tool spreadsheet, checked against the workbook. Send inputs with only what the user gave you; everything else takes the model's defaults, and the result echoes every input used, so tell the user which defaults mattered. Set months (12 to 120, default 48) for the length of the forecast; monthly results are arrays with one value per month, month 1 first, and the totals cover the same months. LTV counts at most ltvMonths months of a customer's life (1 to 120, default 60), whatever the forecast length. The result includes webUrl: give it to the user, because it opens this exact model in Hemrock's web version, where they can change any input and download the live Excel workbook. Free: signed in it uses no calculations; without an account it counts toward a few free runs a day.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "saas_forecast_compute"
  }
}

Input Schema

NameRequiredDescriptionDefault
inputsNoThe model inputs. Send only what differs from the defaults; anything left out takes its default.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.5/5.0
Behavior5/5

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

Annotations only say readOnlyHint/openWorldHint; the description adds real behavioral context: it runs the same math as Hemrock's spreadsheet and was checked against the workbook, the result echoes every input used, results are monthly arrays with month 1 first, and reactivation is disabled under the cohort curve. It also discloses the quota model (no calculation when signed in; a few free runs a day otherwise) and that the response includes a webUrl to hand to the user.

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

Conciseness4/5

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

Structure is deliberate and front-loaded: trigger, then inputs, then the two retention approaches, then outputs, then webUrl and pricing. It is long for a description, but the tool has 17 nested inputs and two modeling modes. Some sentences restate schema defaults (months 12–120 default 48; ltvMonths 1–120 default 60), which is mild redundancy.

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

Completeness4/5

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

With no output schema and a deeply nested single `inputs` object, the description carries the burden well: it covers required inputs, both retention modes, forecast length, and roughly what comes back (each line by month, totals, ending ARR, webUrl). The return shape is described at a summary level rather than by field, and error behavior is left to the schema's Error definition.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds cross-parameter meaning the schema cannot: under "Cohort curve" churn applies only to opening subscribers, reactivation is off, and the curve is indexed by months since a cohort started (month 1 usually 1, 0.8 at month 13, up to 120 values, missing months 0). It also clarifies that ltvMonths caps LTV regardless of forecast length, a distinction the schema states only faintly.

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 first sentence names a specific verb and resource — forecast SaaS/subscription revenue — and enumerates the outputs (subscribers, MRR/ARR, churn/reactivation MRR, billings, deferred revenue, LTV:CAC, CAC payback). That specificity alone separates it from ecommerce_forecast_compute, unit_economics_compute and fund_economics_compute without opening any schema.

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

Usage Guidelines4/5

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

It opens with "Use when the user wants a SaaS or subscription revenue forecast" and gives an explicit routing rule inside the tool: "Use the cohort curve whenever the user describes retention by cohort or month by month." It also instructs sending only what the user supplied and flagging defaults. It stops short of naming when NOT to use it (e.g. e-commerce or generic unit economics, which have sibling tools).

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.

Resources