Page actions
instrument mechanism / verified-with-binding-errata
MRR/ARR & Churn Tracker mechanism
The inspectable method record for MRR/ARR & Churn Tracker, kept separate from implementation and qualification.
Model scope
The provided honest_label is appropriate: this is an educational estimate from user-entered figures and not individualized financial, tax, legal, or investment advice. The implementation should add the gross-churn formula, explicitly define ending_MRR, document positive-value sign conventions, and reject or specially handle starting_MRR = 0.
- The instrument claims to compute gross churn, but no gross-churn formula is provided. The standard formula is gross_churn = churned_MRR / starting_MRR.
- Ending MRR is not explicitly defined. It is implied as starting_MRR + new_MRR + expansion_MRR - churned_MRR, and this implication should be stated.
- The growth formula uses MRR_end, but MRR_end is not listed as an input or explicitly defined output calculation.
- The formulas do not state whether churned MRR and expansion MRR must be entered as positive magnitudes. Sign conventions must be specified.
- The net-churn formula is standard for net revenue churn when expansion and churned MRR are positive amounts and new MRR is excluded; it is not a customer-logo churn formula.
Units and conventions
- All MRR inputs are recurring revenue amounts per month in the same currency, such as USD/month.
- ARR is annualized by multiplying monthly MRR by exactly 12, producing currency/year.
- starting_MRR, new_MRR, expansion_MRR, and churned_MRR must use the same currency and monthly time basis.
- Churn percentages and growth percentages are dimensionless ratios, displayed as percentages by multiplying the ratio by 100.
- For the standard gross-churn calculation used in these test vectors, gross_churn = churned_MRR / starting_MRR.
- Churned MRR and expansion MRR are assumed to be entered as nonnegative magnitudes.
Inspectable vector
One of 4 source-bound review vectors:
{
"inputs": {
"starting_MRR": 10000,
"new_MRR": 2000,
"expansion_MRR": 500,
"churned_MRR": 1000,
"currency": "USD/month"
},
"expected_outputs": {
"ending_MRR": 11500,
"ARR": 138000,
"net_churn": -0.05,
"net_churn_percent": -5,
"gross_churn": 0.1,
"gross_churn_percent": 10,
"growth": 0.15,
"growth_percent": 15
},
"working": "ending_MRR = 10,000 + 2,000 + 500 - 1,000 = 11,500 USD/month. ARR = 11,500 × 12 = 138,000 USD/year. net_churn = (1,000 - 500) / 10,000 = 500 / 10,000 = 0.05; with the signed formula, expansion exceeds churn only when expansion is larger, so here net_churn = 0.05 = 5%. gross_churn = 1,000 / 10,000 = 0.10 = 10%. growth = (11,500 - 10,000) / 10,000 = 1,500 / 10,000 = 0.15 = 15%."
}Failure boundary
BREAK_CLAIMED · SELF_FLAGGED
A zero starting_MRR causes net churn, gross churn, and growth to divide by zero and produce undefined results. The specification also does not define any actual formula branch or explicitly define whether churned_MRR is a positive loss magnitude or a signed movement.
Other records
Sources and evidence
These pointers bind the page to evidence. They do not grant authority or collapse verification into deployment.
VERIFIED_LEDGER.jsonevidence-tranche4/tranche4-results.jsonBOUNDARY_HAZARD_CATALOG.json