The attribution window that matches your buying cycle
What the numbers say
- 01
Modelled 80th percentile time to purchase is 4 days for consumables, 14 days for apparel, and 47 days for considered high-ticket categories.
Modelled on stated assumptions: three synthetic D2C time-to-purchase distributions built from typical repeat, seasonal and research-led buying patterns.
- 02
A default 7-day window captures a modelled 92% of consumable orders but only 34% of high-ticket ones.
Modelled on stated assumptions, read off the same three percentile distributions.
- 03
Running a 7-day window on a high-ticket category discards a modelled 66% of the journey before any attribution model executes.
Derived from the modelled high-ticket distribution, where the median order arrives 16 days after first session.
- 04
Extending a consumables window from 4 days to 30 adds a modelled 6 percentage points of coverage and admits a large share of already-loyal repeat buyers.
Modelled on stated assumptions about repeat purchase intervals overlapping a long lookback.
- 05
First-time and repeat customers differ by a modelled 11 days at the 80th percentile in the apparel distribution, which argues for two windows rather than one.
Modelled on stated assumptions: repeat buyers converting faster because the consideration already happened.
Almost every store runs the window its ad platform shipped with. Seven days, one day view, chosen by nobody at that store for any reason connected to how their customers buy.
The window is upstream of the attribution model, which means getting it wrong invalidates the model argument before it starts.
Why the default is wrong for almost everyone
A platform default is a compromise across every advertiser on that platform: subscription software, fast fashion, insurance, snack brands. The average of those buying cycles describes none of them.
Two failure modes follow. A window shorter than your buying cycle discards the early part of the journey, and every channel that operates there scores near zero regardless of what it did. A window longer than your repeat purchase interval sweeps in customers who were coming back anyway.
Both errors look like channel performance. Neither is.
Time to purchase across three D2C categories
Modelled distributions of days between a customer’s first recorded session and their order, for three synthetic D2C profiles.
| Percentile | Consumables | Apparel | Considered high-ticket |
|---|---|---|---|
| p50 | 1 day | 4 days | 16 days |
| p75 | 3 days | 11 days | 38 days |
| p80 | 4 days | 14 days | 47 days |
| p90 | 9 days | 26 days | 72 days |
| p95 | 18 days | 41 days | 104 days |
Consumables means refills and repeat-purchase products where the decision is largely pre-made. Apparel means a seasonal, browsing-led purchase. Considered high-ticket means furniture, appliances, or anything where a household discusses it before buying.
Note the spread at p95. The same store cannot use one number to describe both a customer who bought in a day and one who took three months, which is the reason a percentile is required rather than an average. Averages on this distribution are dragged upward by a long tail and describe nobody.
Reading the 80th percentile as the window
Take p80 as the window. Four days, fourteen days, forty-seven days for the three profiles.
The reason for p80 rather than p50 is that a window at the median discards half your orders by construction. The reason for p80 rather than p95 is diminishing returns: the last 15 percentage points of coverage cost weeks of lookback, and those weeks admit touchpoints with a weak claim to have caused anything.
The reason not to use an average at all is the tail. On the high-ticket distribution, the mean sits well above the median and produces a window nobody’s actual journey resembles.
Round to something reportable. Fourteen days rather than 13.6, because you will be explaining this number to people who did not run the calculation.
What a 7-day window costs each category
Reading the default against the same three distributions:
| Category | Orders inside a 7-day window | Journey discarded |
|---|---|---|
| Consumables | 92% | 8% |
| Apparel | 62% | 38% |
| Considered high-ticket | 34% | 66% |
For consumables the default is roughly right, and slightly generous.
For apparel it drops nearly two fifths of the journey. For high-ticket it discards two thirds, meaning the majority of orders are attributed on the basis of whatever happened in the final week of a seven-week consideration process. Retargeting and email look extraordinary in that report, and they look extraordinary because everything that created the demand happened outside the window.
This is also why first-touch and last-touch stop disagreeing on a truncated window. Both models converge on the last week, the swing between them collapses, and the diagnostic value of running both disappears, which is the comparison worked through in first-touch versus last-touch for D2C.
Why longer is not safer
The instinct after reading the table above is to set a 90-day window everywhere and stop worrying.
Longer windows are not more accurate, they are more generous, and the generosity lands unevenly. High-frequency channels appear in almost every lookback simply by volume: retargeting, email, brand search. Low-frequency channels such as a single creator post appear once or not at all.
Extend a consumables window from 4 days to 30 and modelled coverage rises about 6 percentage points while admitting a large population of repeat buyers whose purchase interval is shorter than the window. Those customers were returning regardless. Every channel they touched in the interim now takes credit for a purchase that was already going to happen.
The window should be long enough to see the journey and short enough that presence still implies something.
First-time and repeat need different windows
Run the percentile calculation separately for first-time and repeat customers and the two distributions separate immediately.
In the modelled apparel profile, repeat customers reach p80 eleven days earlier than first-time customers, because the consideration already happened once and does not need to happen again.
A single window applied to both overstates acquisition channel performance on repeat orders. If your reporting distinguishes new from returning customers, and it should, the window should follow that split.
There is a related case for narrowing on geography. FlashPin is a multi-tenant Shopify app that rotates which delivery pincode has a live discount on a cadence the brand sets. Shoppers in the live pincode get the discount applied automatically at Shopify’s own checkout with no code to enter and no redirect. Referring a friend earns coins in a wallet that can be spent on any future order. A rotating window offer compresses time to purchase inside the live zone, which means the zone’s own distribution differs from the store’s, and comparing the two is a cheap way to see the compression happening.
Setting it, and then leaving it alone
Set the window once, in every platform, to the same number, and record the date you set it.
Recalculate annually or when the catalogue changes materially, which is a real trigger: adding a high-ticket line to a consumables brand creates two populations inside one distribution and one window will fit neither.
Do not change the window because a month looked bad. A window changed mid-quarter makes every comparison across that boundary meaningless, and the change will be forgotten long before the anomaly it created is.
Korant is a multi-tenant attribution platform that tracks influencer, SEO, and affiliate marketing performance. Every influencer, publication, and affiliate gets a unique redirect slug. Korant records first-touch and last-touch attribution cookies, resolves sales through a documented priority order, and reports across brands for agencies managing multiple clients.
Korant is not for stores with a single paid channel, or for brands that only need Shopify’s native reports. With one channel, the window affects how many orders that channel claims and changes no decision, because there is nothing to compare it against.
Where the percentile method breaks down
It requires knowing the first session, which is exactly the data most vulnerable to cookie expiry and cross-device gaps. A customer who first visited on a phone eight weeks ago and bought on a laptop appears in your data as a same-day purchase, which biases the whole distribution shorter.
Expect the true tail to be longer than measured. This is an argument for treating your p80 as a floor rather than a precise answer.
The method also assumes the buying cycle is a property of the category. Discounting behaviour changes it: a brand that runs frequent sales trains customers to wait, and the resulting distribution reflects the discount calendar rather than the product. If your p80 keeps moving, look at your offer schedule before you look at your tracking.
Questions people actually ask
What is the right attribution window for ecommerce?
Whatever the 80th percentile of your own time from first session to order says. Consumables land near 4 days, apparel near 14, and considered high-ticket purchases near 47 in the modelled distributions here. A platform default is a compromise built for the average of every advertiser on that platform, which is nobody.
Why not just use the longest window available?
Because a long window credits touchpoints that had nothing to do with the purchase, and it disproportionately credits high-frequency channels like retargeting and email that appear in almost every window by volume alone. Longer is not more accurate, it is more generous, and the generosity is unevenly distributed.
Should first-touch and last-touch use the same window?
They can, and there is a case for a longer first-touch window since discovery happens earlier by definition. If you do use two, state both on every report, because a channel comparison across models with different windows is not a comparison of models at all.
How do I calculate my own time to purchase?
Export orders with the timestamp of the customer's first recorded session and the order timestamp, take the difference in days, and read the 50th, 80th and 90th percentiles. A few hundred orders is enough. Do it separately for first-time and repeat customers, because they behave differently.
Does the window matter more than the attribution model?
For long consideration cycles, yes. A window shorter than the buying cycle truncates the journey before first-touch and last-touch have anything to disagree about, so both models converge on the final week and the comparison stops being informative.