Marketing analytics · 2025
Y.Afisha — Marketing Analytics
Which acquisition source and which device actually pay back their cost, and where should marketing spend move?
Python · Pandas · NumPy · LTV / CAC / ROMI
The question
Y.Afisha needed to know where its marketing budget was working and where it wasn't, across its traffic sources and two device types, in order to decide where to cut spend and where to double down.
The data
Three logs covering January 2017 to December 2018: session visits, orders, and marketing costs by source. Two of the sources appearing in the visit logs (6 and 7) have no matching cost records — unpaid or direct traffic — so CAC and ROMI are undefined for them and are documented as such rather than estimated.
Method, and why this method
LTV is built bottom-up by cohort: total gross profit for a (cohort, age) pair divided by the number of buyers in that cohort — never an average of per-user ratios. The same rule applies to sessions-per-user and conversion rate: totals are summed first, then divided, rather than averaging individual rates.
CAC attributes each user to the source of their first session (first-touch attribution), then divides that source's spend by the new customers it brought in. ROMI is cumulative LTV divided by CAC, tracked by cohort age so that the month each source crosses breakeven (ROMI = 1) is visible.
Findings
Traffic averaged 908 daily active users, 5,716 weekly, and 23,228 monthly, with a peak of roughly 33,000 MAU in November 2017 followed by a gradual decline through the rest of the period. Retention falls in every cohort, from roughly 6–8% in month 1 to under 3% by month 6, with no cohort recovering.
Only three sources pay for themselves within the observed window. Source 1 is the most efficient: it reaches breakeven at age 2 and closes the period at ROMI 1.49 — every US$1 invested returned US$1.49. Source 2 reaches ROMI 1.07, breakeven at age 5; source 5 reaches ROMI 1.02, breakeven at age 8. Source 3, which draws roughly 40% of the entire budget (~US$141,000), never approaches breakeven — its ROMI crawls from 0.33 to 0.38 across the twelve cohort ages and stops there, so every US$1 invested returns US$0.38 at best. It is the largest quantified waste in the portfolio. Source 4 reaches 0.86 without crossing 1.0; source 9 comes close at 0.98 by age 10 but doesn't conclude; source 10 stays flat between 0.65 and 0.69 with no growth.
Desktop outperforms touch on every metric measured: conversion (17.8% vs 10.2%), average order value (US$5.16 vs US$4.29), LTV (US$7.23 vs US$5.57) and ROMI (0.80 vs 0.62). The device-level ROMI uses the overall average CAC, since the cost data isn't split by device, so these two figures aren't directly comparable to the per-source ROMI above — but the gap between desktop and touch is itself the finding.
The decision it enables
Redirect budget out of source 3, the largest and least effective line item, toward source 1, the strongest performer. Prioritise desktop in campaign spend. Treat retention as a lever in its own right — with recurring visits this low, acquiring new customers at a high CAC is structurally inefficient until retention improves.