Skip to main content
Glama

SaaS Metrics & Valuation

valuation_saas
Read-onlyIdempotent

Calculate SaaS unit economics and valuation metrics like LTV, CAC, MRR, ARR, net revenue retention, and revenue multiples. Select a method to compute values for subscription software.

Instructions

SaaS unit economics and valuation: LTV, CAC, MRR, ARR, net revenue retention, magic number, Rule of 40, CAC payback, and ARR revenue-multiple valuation. Method selects the metric. Use for subscription software; for marketplace GMV metrics use valuation_marketplace and for payments/lending use valuation_fintech. Parameters apply per method: ltv needs arpu + gross_margin + churn_rate; cac needs sales_marketing_expense + new_customers; arr needs subscription_values; nrr needs starting_revenue + ending_revenue; revenue_multiple needs arr + revenue_multiple. Not for company-level pre-revenue value — for that use valuation_core. Only method is required; other parameters are method-dependent, so supply those named for the selected method and omit the rest (documented defaults apply where defined). Returns an object with value, method, inputs, assumptions, chapter, formula_number and calculation steps. Pure arithmetic: no I/O and no external calls, and numeric results are returned rounded to 2 decimals. No authentication, credentials, or rate limits apply. Supplying an unknown method, or leaving unset a parameter that the chosen method requires, returns an error instead of a value.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
arrNoAnnual recurring revenue, currency units.
cacNoCustomer acquisition cost per customer, currency units.
arpuNoAverage revenue per user per month, currency units.
methodYesFormula to apply. Options: ltv = LTV = ARPU × gross margin / churn.; cac = CAC = S&M expense / new customers.; mrr = MRR = ARR / 12 (reverse of ARR).; arr = ARR = Σ monthly subscriptions × 12.; nrr = NRR = (start + expansion) / start, net of churn.; magic_number = Magic Number = net new ARR / prior-quarter S&M.; rule_of_40 = Score = growth rate + profit margin.; cac_payback = Months to recover CAC from gross profit.; revenue_multiple = Valuation = ARR × multiple.
arr_valueNoAnnual recurring revenue, currency units.
churn_rateNoPeriodic churn rate as a decimal (0.02 = 2% per month).
growth_rateNoRevenue growth rate as a decimal (0.40 = 40%).
net_new_arrNoNet new ARR added in the period, currency units.
gross_marginNoGross margin as a decimal (0.80 = 80%).
new_customersNoNumber of customers acquired in the period.
profit_marginNoProfit margin as a decimal (0.15 = 15%).
ending_revenueNoRevenue from the same cohort at period end, currency units.
mrr_per_customerNoMonthly recurring revenue per customer, currency units.
revenue_multipleNoSaaS revenue multiple (e.g. 8 for 8x ARR).
sm_expense_priorNoSales & marketing expense in the prior period, currency units.
starting_revenueNoRevenue from the cohort at period start, currency units.
expansion_revenueNoExpansion revenue from the cohort in the period.
subscription_valuesNoMonthly subscription revenue per customer (summed x12 for ARR).
sales_marketing_expenseNoSales & marketing spend for the period, currency units.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
errorNoError message when the call fails.
stepsNoIntermediate steps for traceability.
valueYesComputed valuation or metric.
inputsNoEcho of the normalised inputs used.
methodNoFormula / method name that produced the result.
chapterNoSource textbook chapter.
assumptionsNoModelling assumptions applied.
formula_numberNoSource textbook formula number (e.g. '3.1').

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already declare readOnly, idempotent, non-destructive, closed-world; the description goes well beyond by stating this is pure arithmetic with no I/O or external calls, no auth/credentials/rate limits, results rounded to 2 decimals, and that invalid method or missing method-required params return an error rather than a value. That is the operational detail an agent needs before invoking.

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?

Front-loaded with the metric list followed by routing, per-method parameter requirements, and output/behavioral notes. Very dense with no filler, though the single paragraph runs long and the per-method parameter inventory is the kind of detail some agents would prefer tabulated; still, every sentence carries information.

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

Completeness5/5

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

An output schema exists and the description still names the return shape (value, method, inputs, assumptions, chapter, formula_number, calculation steps). Combined with the method-selection rule, parameter dependency map, and error behavior, an agent has everything needed for a 19-parameter, method-dispatch tool.

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

Parameters5/5

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

Schema coverage is 100% and the enum documents each formula, but the description adds the crucial cross-parameter mapping that the schema cannot express: which parameters each method consumes (ltv→arpu+gross_margin+churn_rate, cac→sales_marketing_expense+new_customers, etc.) and that unlisted params should be omitted.

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?

States a specific domain (SaaS unit economics and valuation) and enumerates the exact metrics computed (LTV, CAC, MRR, ARR, NRR, magic number, Rule of 40, CAC payback, revenue multiple). The sibling differentiation is explicit: marketplace GMV → valuation_marketplace, payments/lending → valuation_fintech, pre-revenue company-level → valuation_core.

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

Usage Guidelines5/5

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

Explicitly routes the agent: 'Use for subscription software; for marketplace GMV metrics use valuation_marketplace and for payments/lending use valuation_fintech' plus 'Not for company-level pre-revenue value — for that use valuation_core.' It also states the error condition when an unknown method is passed or a required method parameter is omitted.

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