Conversion Lag: Why Yesterday's ROAS Is a Lie Until Thursday
The 60-second version
Same-day and next-day conversion numbers are provisional, not final. Here is how much they typically move, and how to report on them honestly.
- What a conversion lag curve looks like
- Why "today's ROAS" is structurally wrong to trust
- How many days of lag is normal, by platform
On Monday morning your dashboard says last week's ROAS was 2.1x, and the growth chat is drafting uncomfortable questions. By Thursday the same week reads 3.4x and nobody changed anything — no new creative, no budget shift, no optimisation. The week did not improve. It matured.
Every conversion number you read in the first days after spend is provisional, because purchases arrive on a delay. Someone clicks on Monday, thinks, compares, and buys on Friday; the platform then backdates or drip-credits that purchase into Monday's cohort over the following days. This delay is conversion lag, and until the lag curve has mostly played out, "yesterday's ROAS" is a partial count wearing the costume of a final number.
This post shows what a lag curve looks like, why same-day reads are structurally wrong, how much lag is normal per platform, and the reporting convention that stops your team reacting to numbers that are still moving.
What a conversion lag curve looks like
A lag curve answers one question: of all the conversions a day's clicks will eventually produce, what share has arrived by day N? It is cumulative, it rises steeply then flattens, and its shape is a property of your price point and consideration cycle more than your ads:
| Days since click | Share of eventual conversions arrived (typical ₹1,500–₹5,000 AOV) | What the dashboard shows |
|---|---|---|
| Day 0 (same day) | 25–35% | Roughly a third of the final number — the impulse slice |
| Day 1 | 45–55% | About half; "yesterday's ROAS" is half a measurement |
| Day 3 | 65–75% | Getting readable, still missing a quarter or more |
| Day 7 | 85–92% | Mature enough for optimisation decisions |
| Day 14 | 95–99% | Effectively final for most catalogues |
Read the table from the buyer's side and it is obvious: same-day buyers are the minority. The majority needs days — payday timing, salary cycles, a second conversation with a spouse, a size exchange resolved before reordering. A dashboard that reports Monday's ROAS on Tuesday morning is reporting the impatient third of your customers as if they were all of them.
The structural error: lag bias always points the same direction — early reads understate performance. Every premature "ROAS collapsed" alarm is the same statistical artefact: you measured a partial cohort against full spend. Spend is booked instantly; revenue arrives over weeks.
Higher AOV stretches the curve — a ₹25,000 furniture order's day-1 share can sit under 30%, while a ₹499 impulse SKU may be 70% complete on day 1. Compute your own curve from warehouse data (first click to order timestamps you captured yourself) rather than borrowing a benchmark; the shape is a fingerprint of your catalogue.
Why "today's ROAS" is structurally wrong to trust
Three mechanisms combine to make fresh numbers unreliable, and all three resolve with waiting:
- Click-to-purchase delay. The buyer journey takes calendar time. Nothing in your stack can observe a purchase before the buyer makes it, so any same-day number is definitionally a lower bound, not an estimate.
- Platform ingestion delay. Even after the purchase happens, the event must travel — pixel to platform, Conversions API batching, SKAN timers on iOS, offline import schedules — and then be attributed back to the click day. iOS-attributed conversions in particular arrive in batches days late; this is a data freshness constraint, not a bug.
- Restatement. Platforms revise history as late conversions arrive. Monday's number on Tuesday and Monday's number on Friday are two different observations of the same cohort, and the platform will quietly update the past underneath your report. Any screenshot younger than the maturity window is already stale.
The paused winner that was just young
How many days of lag is normal, by platform
Normal lag differs by platform because each platform's traffic buys on a different consideration cycle and each has its own ingestion delays:
- Meta (prospecting): 5–9 days to maturity. Discovery placements catch early-journey attention; the click often precedes the purchase by most of a week. Retargeting cohorts mature faster (2–4 days) — segment them before judging.
- Google Search (branded + high intent): 1–4 days. The buyer arrived with intent; lag is short. Non-brand discovery and Performance Max behave more like 4–7 days, closer to social.
- YouTube / Display / video: 7–14 days. View-driven journeys convert slowest, and view-through attribution windows keep crediting late arrivals the longest. Never judge video on a 1-day read.
- iOS / SKAN-reported: add 2–4 days on top. Privacy timers batch and delay reporting by design. An iOS-heavy account's blended curve always matures slower than its Android slice — split by OS before setting expectations.
The operational takeaway: there is no single maturity window for the account. Branded search can be read at day 3; video prospecting needs day 10+. A blended account-level ROAS read is only as mature as its slowest meaningful component.
A reporting convention that avoids the trap
The fix is a convention, not a tool: never let a fresh number and a mature number share the same font size. Split every report into two reads with explicit maturity labels:
The Two-Read Convention
Data JourneyFlash read
Spend pacing only. Are we deploying budget at the planned rate? No efficiency judgement, no kill/scale actions, numbers shown greyed or marked provisional.
Mature read
Efficiency judgement lives here. ROAS, CAC, and budget shifts are computed only on cohorts past the maturity window, when 85%+ of conversions have arrived.
The bridge
Divide the flash number by the expected maturity share from your lag curve (e.g. day-1 revenue ÷ 0.5) to nowcast the final. A forecast, labelled as one — never presented as observed.
Concretely: Monday's report shows last Monday's cohort as the efficiency read (7-day mature) and this weekend's spend as the pacing read (provisional, greyed). The one time you break the convention — sale periods, when waiting seven days means missing the event — use the bridge explicitly: "day-2 revenue is ₹6.2L; at 60% maturity that nowcasts ≈₹10.3L final." Everyone sees the arithmetic and nobody mistakes a forecast for a fact.
Show query
Frequently asked questions
My ROAS always "recovers" a few days later. Is my tracking broken?
No — that recovery is the lag curve playing out, and it is the healthiest sign in this post. A cohort that reads 1.6x on day 1 and 3.3x on day 7 is behaving exactly like the table above. Worry if cohorts stop recovering (flat from day 1 to day 7 means demand actually fell), never because young numbers look low.
Should I lengthen attribution windows to capture more lag?
Lengthening the window captures later conversions but also admits more coincidental credit — a 28-day window on impulse SKUs mostly adds noise. Match the window to your measured lag curve: if 90% of conversions arrive by day 7, a 7-day click window sees nearly everything real. Let the curve set the window, not optimism.
How do sales and festive spikes change the curve?
Spikes compress it — urgency pulls purchases forward, so day-0/day-1 shares run 10–20 points above normal during Diwali-week-style events, then stretch out again after. Do not recalibrate your standing maturity convention on sale-week shapes; annotate the period and revert expectations the week after.
Can I optimise intraday during a big sale if I must?
Yes, with guardrails: pace on spend, judge efficiency only via the bridge (flash ÷ maturity share), and widen kill thresholds — require a cohort to miss its nowcast by 30%+ before acting. Intraday platform numbers during a sale are the least mature reads of the year; treat them as weather reports, not verdicts.
The summary
- Every fresh conversion number is a partial count against full spend — spend books instantly, revenue arrives over days. Early reads always understate performance.
- A typical mid-AOV lag curve delivers ~50% of conversions by day 1, ~70% by day 3, and ~90% by day 7. Measure your own curve from first-click-to-order timestamps.
- Normal maturity differs by surface: branded search 1–4 days, Meta prospecting 5–9, video 7–14, iOS-heavy cohorts slower still. No single window fits the account.
- Split reporting into a flash read (days 0–3, pacing only, marked provisional) and a mature read (day 7+, efficiency and budget calls), bridged by an explicit nowcast when speed matters.
- Never take kill/scale actions on cohorts younger than the maturity window — the paused winner that was just young is the most expensive mistake lag produces.
Budget Pacing Calculator
Project whether a campaign will land under, on, or over its monthly budget, based on spend-to-date and days elapsed.
Chinmay Raibagkar
About author →Founder of DataLens AI. He helps non-technical teams read their ad and database numbers with confidence — which number to trust, what to do next, and what to ignore.