# Channels and marketing attribution

> Channel capacity and marginal CAC, a break-even cost that values the invitees a paid user brings, marketing attribution through the stores' privacy frameworks, and incrementality from a geo holdout.

- Course: [Product Analytics: From Data to Decisions](https://productovi.com/courses/product-analytics.md)
- Module: How will we grow?
- Lesson 31/32, ~33 min
- Source: https://productovi.com/courses/product-analytics/channels

## Marginal CAC: where does the next dollar go?

**Alex Tutor:** Theo ran a budget experiment at Halves in August, and now he wants your reading of it. Today: marginal CAC, marketing attribution and what ads really add.

**Theo:** I could put up to \$4,000 a week into paid social. In August I raised the budget week by week to see what happens.

**Alex Tutor:** Good experiment. Every channel has a **channel capacity**: the cheapest users come first, so each extra dollar buys fewer. Look past the average and ask what the *last* \$1,000 bought.

![Low fruit on a tree is picked by hand, while the higher fruit needs ever taller ladders.](https://productovi.com/courses/product-analytics/inline/channels-illustration-2.webp)

*Each extra dollar in a channel buys fewer users than the last.*

**Dataset (CSV):** [Paid-social budget ramp, August 2026](https://productovi.com/datasets/product-analytics/channels/halves-paid-social-ramp.csv)

One week at each spend level; installs as reported by attribution.

- `week`: A week of August 2026
- `weekly_spend_usd`: Paid-social spend that week, USD
- `paid_social_installs`: Installs attributed to paid social that week

**Sofia:** Average CAC goes from 87 cents at \$1,000 to \$1.49 at \$4,000. That doesn't look too bad.

**Alex Tutor:** The average hides the edge. The step from \$3,000 to \$4,000 added only 392 installs. That's the **marginal CAC**: extra spend divided by extra installs.

> **Exercise:** In August Halves raised its paid-social budget week by week, from \$1,000 to \$4,000 a week. What was the **marginal CAC** of the last step of this ramp, from \$3,000 to \$4,000 a week? Round to cents.

## What may a user cost?

**Alex Tutor:** Now compare cost with value. Paid-social users make \$1.46 of gross profit in their first 12 months, less than Halves's average, because fewer of them subscribe.

**Theo:** So \$1.46 is my ceiling per install?

**Alex Tutor:** Not quite. Each paid user also sets off a chain of invites: 0.31 + 0.31² + … = 0.31 ÷ 0.69, about 0.45 invited users over all generations. And don't assume what those are worth: the M7 cohorts split by channel show invite users made \$1.52 of gross profit in 12 months, a little more than paid-social users.

![A newcomer walks in through a door, followed by a short trail of friends holding invitation envelopes.](https://productovi.com/courses/product-analytics/inline/channels-illustration-3.webp)

*Each paid user also brings invited friends, which raises what they're worth.*

$$
\text{break-even CAC} = \text{LTV}_{12}^{\text{paid}} + \frac{k}{1 - k} \times \text{LTV}_{12}^{\text{invited}}
$$

*Invitees are valued at the measured 12-month LTV of invite users (\$1.52 against \$1.46 for paid social), not assumed equal to paid users.*

**Sofia:** And stopping at 12 months keeps it cautious. If invited users had turned out worth less, we'd plug in the smaller number.

> **Exercise:** Paid-social users' 12-month LTV is \$1.46, invite users' is \$1.52, and k is 0.31. What is the **break-even CAC** per paid install, counting the invited users it brings over all generations? Round to cents.

## Where the ramp crosses the line

**Alex Tutor:** Against \$2.14: the second \$1,000 cost \$1.50 per install, well inside the line. The third cost \$2.10, only just inside; the fourth \$2.55, above it.

![Each extra $1,000 a week on paid social bought dearer installs: $0.87, $1.50, $2.10, then $2.55, above the $2.14 break-even CAC.](https://productovi.com/courses/product-analytics/diagrams/m8-l3-marginal-cac.png)

**Theo:** Store search ads cost more per install than paid social did at \$1,000. Should I drop them?

**Alex Tutor:** Their users subscribe more, so their value is higher too. A channel fits when its marginal cost sits under **its own** users' value, not under the cheapest channel's cost.

**Sofia:** So each channel gets its own ceiling and its own curve.

> **Exercise:** In August Halves raised its paid-social budget week by week from \$1,000 to \$4,000. The break-even CAC per paid-social install, counting the invitees it brings, is \$2.14. Judged on the ramp's attributed installs and that break-even, which weekly paid-social budget does the data support?

**Alex Tutor:** Back to Theo’s question about store search ads. Two answers he could take to the budget meeting:

> **Exercise:** Store search ads cost more per install than paid social did at \$1,000 a week. Which rule should decide their budget?

## Marketing attribution: who gets the credit?

**Maya:** How do we even know those installs came from the ads?

**Alex Tutor:** On phones, **attribution** now comes from the app stores' privacy-preserving frameworks: counts per campaign, aggregated, a day or more late, with no user-level trail.

**Sofia:** So we can't join an install to that person's later payments, or build an LTV curve per ad.

**Alex Tutor:** Not per user. And attribution only says an ad came before an install, not that the install needed the ad.

> **Exercise:** Which statements about attribution through the app stores' privacy-preserving frameworks are true? Select all that apply.

## Incrementality: a geo holdout test

**Alex Tutor:** To learn what ads add, turn them off somewhere. In September paid social kept running in four regions and paused in four similar ones: a geo holdout test. Before that it ran everywhere.

![A map split into regions: ads glow in half of them, the other half stay dark, and people arrive in both.](https://productovi.com/courses/product-analytics/inline/channels-illustration-4.webp)

*Pause ads in some regions to see what they really add.*

**Dataset (CSV):** [Geo holdout test, paid social, September 2026](https://productovi.com/datasets/product-analytics/channels/halves-geo-test.csv)

Eight regions; four weeks before the test and four test weeks.

- `region`: Region
- `group`: test: ads kept on; holdout: ads paused during the test
- `installs_pre_4w`: All installs in the 4 weeks before, ads on everywhere
- `installs_test_4w`: All installs in the 4 test weeks
- `paid_social_spend_test_usd`: Paid-social spend in the test weeks, USD
- `attributed_paid_installs_test`: Installs the store frameworks attributed to paid social in the test weeks

**Sofia:** The holdout regions fell to 73% of their earlier installs. That's what the test regions would have done without ads.

**Alex Tutor:** Right. Expected installs without ads are the test regions' earlier installs times that ratio. What's left above it is the **incrementality** of the ads.

**Sofia:** And the attributed count is what the frameworks gave the ads credit for.

> **Exercise:** Use the geo test. What was paid social's **incremental CAC**: test-region spend divided by the installs above what the test regions would have had without ads (their pre-period installs × the holdout regions' test ÷ pre ratio)? Round to cents.

**Maya:** Attribution said 2,219 installs, the holdout says about 1,521. So does \$3,000 a week still hold?

**Alex Tutor:** Work it out before I answer. Take the third \$1,000 of the ramp and count only the share of installs the geo test showed to be extra.

> **Exercise:** In Halves's August paid-social ramp, raising the weekly budget from \$2,000 to \$3,000 added 476 attributed installs, a marginal CAC of \$1,000 ÷ 476. A September geo holdout found that only 1,521 of 2,219 attributed paid-social installs were incremental. If the same share holds for the ramp, what is the marginal CAC of that step **per incremental install**? Round to cents.

**Alex Tutor:** Five numbers have come up today. Before the budget call, make sure each one answers its own question.

> **Exercise:** Match each number with the question it answers.

## The budget call

**Alex Tutor:** If only 69% of attributed installs are extra at higher budgets too, the second \$1,000 costs about \$2.19 per extra user, just above the line, and the third about \$3.07, far above. The geo test ran at a lower spend, so that's a guess to test, not a fact.

**Theo:** So what do I ask for?

> **Exercise:** Write the budget recommendation for Theo, the Halves growth marketer, in 3–5 sentences: what weekly paid-social budget to run this autumn, why, and what to test next.

**Alex Tutor:** The rule: judge a channel at the margin, against its own users' value including invites, and measure what it adds with a holdout. Attribution tells you who was there; a holdout tells you who came because of it.

- Previous lesson: [Invites and viral growth](https://productovi.com/courses/product-analytics/virality.md)
- Next lesson: [Capstone: the unexplained spike](https://productovi.com/courses/product-analytics/spike-investigation.md)

---
Productovi Learning. Free, no sign-up needed to read.
