Guth
NewsDocs
Page actions
View as Markdown ↗
Explore MCP tools ↗

instrument / verified-with-binding-errata

LTV / CAC / Payback Unit Economics

The current ledger marks this instrument verified with errata that must be applied at binding time.

Status: VERIFIED_WITH_ERRATALifecycle: verified-with-binding-errata

Inspectable records

Ledger state

The current ledger marks this instrument verified with errata that must be applied at binding time.

Area
Finance, Economics & Business (educational only — never individualized investment, tax, or legal advice)
Tranche
tranche-4
Evidence ID
t4-281
Ledger rows
1

No ledger note is attached.

Review findings

The existing honest label correctly identifies this as a simplified SaaS model, but the UI or specification must explicitly define percentage input encoding, monthly periodicity, the LTV:CAC formula, and zero-denominator behavior before release.

Formula and scope findings

  • The LTV:CAC ratio is named but no explicit formula is provided; it should be defined as LTV divided by CAC.
  • The LTV formula is valid only as a simplified perpetuity model assuming constant monthly churn, monthly ARPU, and no discounting, expansion, contraction, reactivation, or cohort variation.
  • The notation grossMargin% and churnRate is ambiguous: percentage inputs such as 80 and 5 must be converted to decimal fractions 0.80 and 0.05 before calculation.

Unit assumptions

  • ARPU is recurring revenue per customer per month.
  • Gross margin percentages are entered as percentage points and converted by dividing by 100; for example, 80 means 0.80.
  • Monthly churn percentages are entered as percentage points and converted by dividing by 100; for example, 5 means 0.05.
  • CAC and ARPU are in the same currency, and CAC is a one-time acquisition cost.
  • LTV is expressed in the same currency as ARPU and CAC; CAC payback is expressed in months.
  • LTV:CAC ratio is dimensionless and is calculated as LTV/CAC.

Boundary hardening

BREAK_CLAIMED · SELF_FLAGGED

The specification exposes no stated validation behavior for zero churn, so the formula can encounter undefined division. It also does not define any formula branch or explicitly resolve whether percentage inputs are decimal fractions or percentage points, producing a material payback discrepancy under the alternate convention.

Errata and corrections

Stress-test correction

{
  "vector_inputs": {
    "ARPU_cents_per_month": 10000,
    "gross_margin_percent": 80,
    "monthly_churn_percent": 5,
    "CAC_cents": 24000
  },
  "wrong_outputs": {
    "LTV_cents": 16000,
    "LTV_CAC_ratio": 6.6666666667,
    "CAC_payback_months": 3
  },
  "corrected_outputs": {
    "LTV_cents": 160000,
    "LTV_CAC_ratio": 6.6666666667,
    "CAC_payback_months": 3
  },
  "method": "LTV = ARPU*margin/churn = 10000*0.8/0.05 = 160000 cents; only LTV_cents was wrong, ratio/payback were already correct (self-consistent with the $-denominated vectors in the same instrument)"
}

Inspectable example

4 review vectors are recorded. One source-bound sample is shown below.

{
  "inputs": {
    "ARPU": 100,
    "ARPU_unit": "USD/month",
    "gross_margin_percent": 80,
    "monthly_churn_percent": 5,
    "CAC": 1200,
    "CAC_unit": "USD"
  },
  "expected_outputs": {
    "LTV": 1600,
    "LTV_CAC_ratio": 1.3333333333,
    "CAC_payback_months": 15
  },
  "working": "Gross margin fraction = 80/100 = 0.80. Monthly churn fraction = 5/100 = 0.05. Monthly gross-profit contribution = 100 × 0.80 = 80 USD. LTV = 80/0.05 = 1,600 USD. LTV:CAC = 1,600/1,200 = 1.3333333333. CAC payback = 1,200/80 = 15 months."
}

Related workflows

Sources and evidence

These pointers bind the page to evidence. They do not grant authority or collapse verification into deployment.

  • VERIFIED_LEDGER.json · VERIFIED_WITH_ERRATA
  • evidence-tranche4/tranche4-results.json
  • BOUNDARY_HAZARD_CATALOG.json
  • STRESS_TEST_CORRECTIONS_APPLIED.json