Cohort Window Length Distorts Channel LTV:CAC Comparisons

Metricuno
May 29, 2026
6 min read
Quick answer

Mismatched cohort windows silently inflate organic LTV:CAC and punish paid channels. Here's how to normalize maturity so the comparison is honest.

Quick answer

If your Meta cohort has 6 months of revenue accrued and your organic cohort has 24 months, organic will look 3-4x more profitable purely because it had more time to repurchase. Lock every channel to the same post-acquisition window (typically 12 months) before computing LTV:CAC, or use a maturity curve to project shorter cohorts forward.

Definition
Attribution & Measurement

Cohort Window Length Distortion in Channel LTV:CAC

A measurement error where channels are compared using unequal post-acquisition time windows, making older channels look more profitable than they are.

Cohort window length distortion happens when you compute LTV:CAC for two acquisition channels using different observation periods — for example, 6 months of repeat revenue for a Meta cohort acquired this year against 24 months for an organic cohort acquired two years ago. Because LTV accrues over time, the older window will almost always show a higher ratio, even if the underlying customer quality is identical or worse. The fix is to normalize: pick one fixed post-acquisition window (M3, M6, M12) and measure every channel at that same point in customer life.

Also known as
cohort maturity bias
LTV window mismatch
uneven cohort accrual

This is the quiet error behind most "paid is subsidizing organic" claims. The paid cohort hasn't had time to repurchase; the organic cohort has. You're not comparing channels, you're comparing calendar exposure.

Why the distortion happens

LTV is a cumulative metric. Every additional month a cohort is observed, more second and third orders land — especially in apparel, beauty, and supplements where the repeat curve climbs steeply through month 9.

Channels rarely launch at the same time. A Shopify store that ran organic and email for three years before scaling Meta now has organic cohorts with 36 months of accrual and Meta cohorts with 4. Pulling "all-time LTV by channel" into one table compares those head-to-head as if the clock were the same.

The dashboard tell

If your LTV:CAC dashboard shows organic at 5.8 and Meta at 1.4, check the cohort age column before you cut Meta spend. Nine times out of ten the organic cohort is 18+ months old and the Meta cohort is under 6.

How to detect it in your own data

Add an "average cohort age" column next to channel LTV in every report. If the spread between channels is more than 3 months, the comparison is already distorted and needs window normalization before anyone makes a budget call.

A second signal: pull the same channel's LTV:CAC at M3, M6, and M12 for a single cohort. If the ratio doubles between M6 and M12, your channel comparisons need to be locked to one of those windows — not whatever each channel happens to have accrued.

Benchmark

Same customer quality, different observation windows — how the LTV:CAC ratio drifts (apparel store, €65 AOV)

Post-acquisition windowMeta cohort LTV:CACOrganic cohort LTV:CACRatio gap
M3 (90 days)1.11.40.3
M6 (180 days)1.62.20.6
M12 (365 days)2.43.51.1
M24 (730 days)3.14.81.7
Mixed (6mo vs 24mo)1.64.83.2 (distorted)

How to fix it: three normalization approaches

Option one — fixed window truncation. Pick M12 as your reporting standard. For any cohort younger than 12 months, exclude it from channel comparisons or show it in a separate "immature" table. This is the cleanest and what most channel LTV:CAC benchmarks for €1M-€15M stores assume.

Option two — maturity curve projection. Fit a repeat-rate curve on your matured cohorts (24+ months) and use it to project where a 4-month Meta cohort will land at M12. Requires clean historical data — a GA4 import covering 2+ years is usually enough to fit the curve.

Option three — same-vintage comparison. Only compare cohorts acquired in the same month or quarter. A Q1 2024 Meta cohort against a Q1 2024 organic cohort, both measured at M9. Eliminates calendar bias entirely but throws away a lot of data.

Recommended default

Lock channel LTV:CAC comparisons to a 12-month window. Report M3 and M6 as leading indicators with explicit "immature cohort" labels. Never roll up all-time LTV by channel without an age column — that single rollup causes more bad spend decisions than any other report in DTC analytics.

Experiment ideas to validate the fix

Re-run last quarter's channel mix decision using window-normalized LTV:CAC. If the recommendation flips — Meta now looks viable, organic looks less dominant — you've quantified how much budget the mismatch was misallocating. Most stores find 15-30% of paid budget was being throttled for the wrong reason.

A second test: hold Meta spend flat for 90 days and re-measure the M3 LTV:CAC of that cohort against a same-vintage organic cohort. If the gap is under 0.5, the channels are roughly equivalent at equal maturity and your earlier "organic is 4x better" report was a window artifact, not a channel truth.

Frequently asked

Frequently asked questions

M12 (12 months post-acquisition) is the default for most DTC categories. Apparel and beauty have most repeat behavior locked in by month 9; supplements and consumables stabilize by month 6. Pick the window where your repeat curve flattens, then hold every channel to it.

Only if you have a validated maturity curve. Naïve scaling (multiply 6-month LTV by 2 to estimate 12-month) overstates because the repeat curve is concave, not linear. Use a fitted projection from your matured cohorts instead.

Yes, but less visibly. Blended LTV:CAC hides the per-channel distortion inside an average. The page on when blended LTV:CAC lies covers the structural issue; window mismatch is one of the mechanisms feeding it.

GA4's default cohort explorations let you set a fixed observation window, but most stores leave it at "all available data," which produces exactly this distortion. Set a fixed 12-week or 12-month window in the cohort exploration before exporting numbers for channel decisions.

Report it separately as "M3 leading indicator, immature." Don't compare its raw ratio to mature channels. Use the maturity curve from your established channels to estimate where it will likely land at M12, and flag it as a projection.

Yes. A Q4 cohort accrues second orders faster (gifting, repeat holiday buys) than a Q2 cohort. Compare same-vintage cohorts when possible, or use seasonally-adjusted maturity curves fit per acquisition quarter.

Yes, net of returns. For apparel especially, return windows of 30-60 days mean the M3 LTV is overstated if you measure gross. Use net revenue or contribution margin and apply it consistently across all channels in the comparison.

Payback period is itself a window measurement, so mismatched cohort ages corrupt it the same way. If you report "Meta payback = 8 months" using a 6-month-old cohort, you're projecting beyond the data. Lock payback reporting to fully matured cohorts only.

Partially. MMM uses calendar-aligned spend and revenue, so it's less vulnerable to cohort age mismatch. Last-click LTV reports compare unequal windows by default. Disagreement is often the window error, not the attribution model.

Add two columns to every channel LTV report: average cohort age in months, and post-acquisition window used. If those don't match across rows, the table isn't comparable. That single discipline catches 80% of the misreads before they become budget decisions.

Track CAC, channels, and funnel conversion in one place

Metricuno connects ad spend, funnel events, and revenue so you can see CAC by channel, cohort, and campaign — without stitching together five tools.