How SaaS LTV is calculated
When account expansion is zero, the standard SaaS LTV formula multiplies average revenue per account by gross margin, then divides by the churn rate:
LTV = (ARPA × Gross Margin) ÷ Churn Rate The division by churn rate isn't arbitrary — if a customer has a constant c% chance of churning every month, their expected lifetime works out to exactly 1÷c months. A 5% monthly churn rate means an average customer lifetime of 20 months, so a $50/month account at 80% gross margin is worth $50 × 0.80 × 20 = $800 over its lifetime with no account expansion — the same answer the formula above gives directly.
Monthly vs. annual calculation
The same model can be expressed in monthly or annual terms. Switch to Annual and ARPA, churn, expansion, lifetime, and the breakdown table all operate on annual figures instead. If you already know your annual churn or expansion rate, enter it directly; no conversion needed.
If instead you only know a monthly rate and want its annual equivalent, resist the urge to multiply by 12 — churn and expansion compound, so the true annual rate is smaller (for churn) or larger (for expansion) than the naive multiplication suggests:
Annual churn = 1 − (1 − Monthly churn)12 Annual expansion = (1 + Monthly expansion)12 − 1 5% monthly churn compounds to 45.96% annual — not 60% (5% × 12) 2% monthly expansion compounds to 26.82% annual — not 24% (2% × 12) The Monthly and Annual options use the same mathematical model, but they operate at different time resolutions. The monthly model updates survival and ARPA every month, while the annual model updates them once per year. Therefore, switching between periods is not intended to reproduce exactly the same underlying customer path; use the period that matches the rates you actually know or want to model.
Account expansion
Real SaaS accounts often don't stay flat — they add seats, upgrade plans, or buy add-ons over time. Account Expansion models this as a percentage increase to ARPA each period a customer remains active, compounding from one period to the next. A percentage is useful for modeling expansion because upsells, additional seats, plan upgrades, and add-ons can scale with the size of an account rather than adding the same fixed dollar amount to every account.
ARPA $50/mo, 80% gross margin, 5% monthly churn, no expansion → LTV $800 Same inputs, +2% monthly account expansion → LTV $1,290 The month-by-month breakdown below the results shows exactly how this builds up — survival probability compounding downward each month as customers churn, ARPA compounding upward each month as accounts expand, and the running total climbing toward the full LTV.
Why expansion has a ceiling
Compounding growth against compounding decay creates a real mathematical
limitation: if account expansion is high enough relative to churn, ARPA grows
faster than the customer base shrinks, and lifetime value stops converging to a
finite number at all — it grows without bound the further out you project.
The exact boundary is expansion < churn ÷ (1 − churn).
At the default 5% monthly churn, that's about 5.263% — below it, LTV is
finite; at or above it, this calculator will tell you rather than show a number
that looks plausible but isn't mathematically meaningful.
LTV:CAC ratio
Customer Acquisition Cost (CAC) is optional, but pairing it with LTV is one of the most common ways to sanity-check a SaaS business model: if CAC exceeds the customer's modeled gross-profit LTV, the acquisition economics are negative before considering other operating costs. A ratio of 3:1 or higher is a commonly cited rule of thumb for a healthy SaaS business, though the "right" number varies by stage, market, and how quickly you need to recover CAC in cash.
Frequently asked questions
Why does churn rate need to be greater than zero?
Because the formula divides by it. A 0% churn rate means the model assumes customers never leave. Without churn, there is no finite expected customer lifetime, so the infinite-horizon LTV is undefined/infinite. With account expansion, the model also cannot converge to a finite LTV when churn is zero.
Why did I get a message saying my expansion rate is "too high"?
Because compounding growth was outpacing compounding decay. Account Expansion grows ARPA every month; churn shrinks the surviving customer base every month — when expansion is high enough relative to churn, the growing side wins the race, and projected lifetime value increases without bound the further out you calculate rather than settling on a finite number. The exact cutoff is expansion < churn ÷ (1 − churn); reducing the assumed expansion rate, or using a higher churn rate if your actual data supports it, brings the model back under that line.
Should I use gross margin or just revenue?
Gross margin, if you want LTV to reflect gross profit rather than revenue. Revenue is the amount collected from the customer, while gross margin accounts for the direct costs of serving that revenue, such as hosting, support, or payment processing where those costs are included in your gross-margin calculation. Using raw revenue instead of gross margin can overstate the economic value of a customer.
Why does the period-by-period table not add up to the full LTV shown above?
The table is intentionally cut off at 60 months (or sooner, once survival drops below 0.5%) to keep it readable — showing every month out to where survival probability rounds to zero would mean hundreds of rows for low-churn businesses. The LTV total above uses the exact underlying formula, not a sum of the visible rows, so it correctly includes the "tail" of unlikely-but-nonzero months beyond what's shown. The footnote states exactly what percentage of the total the visible table accounts for.