{% extends "core/base.html" %}{% load cohortly %} {% block title %}Unit economics{% endblock %} {% block content %}

Unit economics {{ currency }}

Export CAC CSV
ARPA
{{ econ.arpa|money:2 }}
MRR per active customer
Logo churn / month
{{ econ.logo_churn_monthly|pct:2 }}
{{ econ.logo_churn_annual|pct }} annualized
Revenue churn / month
{{ econ.revenue_churn_monthly|pct:2 }}
{{ econ.revenue_churn_annual|pct }} annualized
Customer lifetime
{{ econ.lifetime_months|num:1 }} mo
cap {{ cfg.ltv_cap_months }} months
LTV
{{ econ.ltv|money }}
ARPA x {{ cfg.gross_margin|pct:0 }} GM x lifetime
{% if econ.blended %}
Blended CAC
{{ econ.blended.cac|money }}
LTV/CAC {{ econ.blended.ltv_cac|num:1 }}x
{% endif %}

Churn is pooled over the last {{ cfg.churn_window }} months. Gross margin, LTV cap and windows are set under Settings.

{% if econ.blended %}

CAC by channel last {{ cfg.cac_window }} months

{% for c in econ.channels %}{% endfor %} {% with c=econ.blended %}{% endwith %}
ChannelSpendNew customersAvg new MRRCACLTV / CACPayback (months)
{{ c.channel }}{{ c.spend|money }}{{ c.new_customers }}{{ c.avg_new_mrr|money:2 }}{{ c.cac|money }}{{ c.ltv_cac|num:1 }}{{ c.payback_months|num:1 }}
{{ c.channel }}{{ c.spend|money }}{{ c.new_customers }}{{ c.avg_new_mrr|money:2 }}{{ c.cac|money }}{{ c.ltv_cac|num:1 }}{{ c.payback_months|num:1 }}

Channels without recorded spend (for example organic) have zero CAC, so LTV/CAC is not defined. Blended CAC divides all spend by all new customers.

{% else %}

CAC needs unfiltered marketing spend, so it is hidden while a segment or country filter is active.

{% endif %} {% if econ.concentration %}

Customer concentration

Top-10 share {{ econ.concentration.top10_share|pct }} · HHI {{ econ.concentration.hhi|num:0 }} (10,000 = one customer)

{% for c, mrr, share in top %}{% endfor %}
#CustomerSegmentMRRShare
{{ forloop.counter }}{{ c.name }}{{ c.segment }}{{ mrr|money }}{{ share|pct:2 }}
{% endif %} {% endblock %}