--- name: orphex-customer-cohort-ltv-review description: "Compare acquired-customer cohorts at a common observed horizon using defined revenue, retention, and CAC; separate observed value from lifetime forecasts." license: MIT metadata: version: "2.0.0" --- # Orphex Customer Cohort & LTV Review Review customer cohort value, repeat behavior and acquisition economics at a common observed horizon. A skill title containing LTV does not make a finite observation a lifetime estimate. ## Align cohorts before comparing Define new/acquired customer membership, acquisition date, attribution and cost allocation, unique identity rules, product/business model, currency, revenue/cost basis, snapshot, and per-customer follow-up. Use the same elapsed horizon from acquisition for every eligible customer; a monthly cohort's average age or earliest member age cannot certify maturity for the whole cohort. Exclude right-censored periods from an equal-horizon comparison or disclose a valid censoring-adjusted method rather than extrapolating automatically. Net/gross revenue, collected cash, recognized revenue, ARR and contribution are different numerators. For SaaS, a booked annual contract or ARR is not observed recognized cash over 60 days. Define repeat purchasers, active/subscription retention, renewals or churn against the original eligible denominator; do not mix transaction count with unique repeat customers. For repeat metrics, preserve customers with zero subsequent activity when still observable. Consent/deletion or identity gaps are missingness limits, not churn evidence. ## Calculate supported value Observed horizon value per acquired customer = matching cohort value / unique acquired customers. CAC = scoped acquisition cost / those customers. Aggregate from sums, preserve currencies, and avoid zero-denominator ratios. Label revenue-to-CAC separately from contribution-to-CAC; neither is company ROI without the full cost definition. Payback requires cumulative contribution/cash by elapsed time; it cannot be inferred from a revenue multiple alone. A lifetime forecast needs an explicitly supplied/validated retention or survival model, horizon, cost path, discounting assumptions when applicable, calibration and uncertainty. Do not invent a retention multiplier, claim a younger cohort's ultimate value, or bid to a forecast from these aggregates. Use the optional calculator only for common-horizon arithmetic, not survival modeling. Deliver observed horizon coverage, weighted value/CAC/repeat metrics, economic definition, uncertainty and a next cohort check. Acquisition attribution is not causal lift; budget or bidding changes remain bounded proposals. ## Portable inputs and examples - Read [the input contract](references/input-contract.md) when mapping a new export or checking the example's scope and definitions. Copy [the header-only CSV template](assets/input-template.csv) when preparing data; equivalent supplied exports remain acceptable. - Read [the reusable business context](references/business-context.md) only for business facts or constraints this task needs. Reuse user-supplied facts with their source/date; the template contains no default targets. - Inspect [the complete fictional input](assets/example-input.csv) with [its example output](references/example-output.md) when learning the output and calculation boundaries. Never use fictional values for a real account. State whether the result is complete, partial, or blocked for the requested decision. Link material findings to actual supplied rows/sources and separate observed metrics, hypotheses, and estimates. Lead with a short business conclusion, then evidence, uncertainty, and the next measurable check. A data export or installed skill does not authorize account changes. For the supported arithmetic only, optionally run [the bundled calculator](scripts/marketing_math.py) with Python 3: `python3 scripts/marketing_math.py cohort < calculation.json`. Read its input mapping in the input contract before preparing JSON. It reads JSON, not CSV directly. If Python or the requested method is unavailable, show a reproducible alternative calculation or mark it unsupported; do not report an uncomputed result as verified.