Mobile LTV & ROAS Modeler

Fit a retention curve from D1-D30, project LTV & ROAS to D720, and reverse-solve the early ROAS you need to break even. No JavaScript libraries, and nothing you enter leaves your browser.

Part of the UA suite · Lift Lab

Quick start (load a profile)

Retention (%)

Monetization & UA

Model

Growth models payer concentration: survivors' ARPDAU often rises over a cohort's life.

Long-horizon anchor (optional)

Pin the tail with a real D60 / D90 / D180 retention point so the curve isn't extrapolating blind. Leave empty to fit on D1-D30 only.
D30 LTV
-
D180 LTV
-
D360 LTV
-
Payback day
-

Retention curve: fitted (line) vs your inputs (dots)

━ fitted   ● D1 to D30 anchors   ● long-horizon anchor

Cumulative LTV vs eCPI: break-even where the curve crosses the dashed line

LTV / ROAS table

DayCum. active daysLTVROAS

Reverse solver: what do I need to break even?

Required early ROAS comes purely from curve shape (LTV-unlock ratio), independent of eCPI or ARPDAU level.

Project from a live campaign

Scales your observed early ROAS by the model's maturation multiple: ROAS(Y) = ROAS(X) × LTV(Y)/LTV(X).
Model & assumptions: read before trusting a D720 number

Retention fit. Anchor points D1/D3/D7/D14/D30 (plus an optional long-horizon point) are fit by ordinary least squares in log space. Power-law: R(d) = A·d^b (log-log regression). Exponential: R(d) = A·e^(b·d) (semi-log). Blended averages the two predicted curves. Day 0 (install day) retention = 1.0.

Active days. ActiveDays(N) = 1 + Σ R(d) for d = 1…N (sum of fitted daily retention, plus the install day).

LTV. LTV(N) = Σ ARPDAU(d)·R(d), where ARPDAU(d) = ARPDAU₀·(1+g)^(d/30) and g is the growth/30d input (0 = constant ARPDAU).

ROAS. ROAS(N) = LTV(N) / eCPI × 100%. Payback day = first day LTV ≥ eCPI.

Reverse solver. Required ROAS at day E to hit target T% by day H: T × LTV(E)/LTV(H). Required ARPDAU: ARPDAU₀ × (eCPI·T/100) / LTV(H). Max viable eCPI: LTV(H)·100/T.

Campaign projection. Projected ROAS at day Y from an observed ROAS at day X: ROAS_obs × LTV(Y)/LTV(X) (assumes the modeled curve shape matches the live cohort).

Caveat. Without a long-horizon anchor the fit is built on ≤30 days, so D360/D720 are pure extrapolation. Real long-tail retention can decay more slowly than the fit, and ARPDAU can drift up. Add a real D60/D90/D180 point, use the growth input, and treat far-horizon numbers as a band, not a point.

Single file, no JavaScript libraries, and nothing you enter leaves the browser. Built for game producers & UA teams.