Forecast a SaaS business
saas_forecast_computeUse 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
| Name | Required | Description | Default |
|---|---|---|---|
| inputs | No | The model inputs. Send only what differs from the defaults; anything left out takes its default. |