Attribution Window: How Long to Set It
A 30-day attribution window on a 45-day sales cycle misattributes 30%+ of conversions, crediting the wrong channel. How to set the right window.
Muzahid Maruf, Founder · TrackRev.io & Contant.io
On this page
- 01Why This Matters for Your Revenue
- 02What an attribution window is
- 03Why the default 30-day window is wrong for most SaaS
- 04How to determine the right window for your product
- 05Impact of setting the window too short
- 06Recommended windows by product type
- 07How attribution windows interact with cookies
- 08When to revisit the window
- 09TrackRev and attribution windows
Explore with AI
Opens this article inside the chosen assistant with a ready-made prompt.
The attribution window is the dial that decides which acquisition channel actually gets credited with your MRR — set a 30-day window on a product with a 45-day average sales cycle and you misattribute 30%+ of conversions, because the late-converting customers get credited to "direct" or to whatever last touch happened to fall inside the window, not to the channel that actually drove the evaluation.
The default 30-day window is wrong for most SaaS for exactly this reason. Based on attribution data across TrackRev workspaces, ~38% of B2B SaaS conversions happen after day 30 and ~30% of B2B monthly self-serve conversions happen between days 31–60.
The fix: set the window to your median days-to-conversion plus 50% buffer. This guide explains what an attribution window is, why a mis-set window distorts budget decisions, and how to calculate the right length from your own sales cycle.
Key Takeaways
- The 30-day default attribution window came from Google Ads short-cycle direct-response advertising — it misses 38% of B2B monthly SaaS conversions and 62% of B2B annual contract conversions, hiding which channel actually pays your MRR.
- Calculate your window from your own data: take your median days-to-conversion, multiply by 1.5, cap at 120 days — this covers the long tail without sweeping in unrelated revenue.
- A window set too short under-credits content, SEO, and brand channels; a window set too long inflates channels with unrelated revenue — both errors push money in the wrong direction.
- Cookie lifetime must equal or exceed your attribution window; Safari ITP caps client-set cookies at 7 days, so always set cookies server-side via the
Set-Cookieresponse header. - Revisit your window any time you change pricing, shift channel mix, or see median days-to-conversion drift more than 30% from the previous quarter.
Why This Matters for Your Revenue
An attribution window is not a reporting cosmetic — it is the dial that decides which channels get funded. Get it wrong in either direction and you misallocate budget against your own data.
Too short: under-crediting top-of-funnel channels
Set it too short and you under-credit the channels that drive long evaluations.
Content, SEO, podcasts, and brand campaigns plant the click weeks before the purchase; a 30-day window on a 45-day cycle simply does not see the payoff, so those channels show a fraction of the revenue they actually produced.
The budget review reads them as underperformers and cuts them — which kills your future top-of-funnel pipeline while the dashboard nods approvingly.
Too long: inflating channels with unrelated revenue
Set it too long and you create the opposite error.
A 180-day window on a product that closes in two weeks sweeps up unrelated revenue — customers who would have bought regardless, repeat purchases, and clicks with no causal link to the sale — and credits it to whatever channel happened to be in the window.
Now your reports over-credit channels, and you pour budget into placements that were never actually driving conversions. Both failures spend real money against a number that looks authoritative but is structurally wrong.
The window is the difference between attribution that guides spend and attribution that misleads it. See the 2026 SaaS attribution benchmarks for the conversion-timing distributions behind these effects.
What an attribution window is
An attribution window is the period after a click during which a conversion can be credited to that click.
Length and endpoint: the two parameters
Two parameters define a usable window. Length is the number of days a click stays eligible for credit.
Endpoint is which click in that window receives the credit — a last-touch model counts from the last click before conversion, first-touch counts from the first, and linear splits credit across every click in the window.
Length and endpoint are independent choices: you set how long the window is, then pick a model to decide who inside it gets the revenue. The last-touch vs first-touch vs linear comparison covers the endpoint choice in detail.
A worked example
If a visitor clicks your newsletter link on day 1 and pays on day 27 with a 30-day window, the newsletter gets credit.
If they pay on day 31 with the same window, the conversion is credited to whatever the most recent in-window click was — or to "direct" if no in-window click exists.
That single day difference is the whole game: the same newsletter click drove the same customer, but a window one day too short reassigns the revenue to another channel or erases the attribution entirely.
Why the default 30-day window is wrong for most SaaS
The 30-day default is an inherited assumption, not a calculated one — and it was calibrated for a different kind of buyer than SaaS sells to.
Where the 30-day default came from
30 days became the default because Google Ads uses it, and most teams never changed the setting — Google Ads ships a 30-day click-through conversion window out of the box, and GA4's acquisition lookback defaults to 30 days as well.
As HubSpot's attribution-modeling guide lays out, the right lookback depends on the length of your buyer's journey, not a platform default.
That 30-day number made sense for the short-cycle, direct-response advertising it was built for, where someone sees an ad, weighs a low-stakes impulse signup, and decides within days.
It does not fit SaaS, where a buyer trials the product, loops in a colleague, checks a budget, and comes back weeks later. The default optimized for impulse purchases is being applied to considered ones.
What the conversion-timing data actually shows
Look at the data. % of conversions that happen after 30 days, by product type:
| Product type | % conversions within 30 days | % conversions days 31–90 | % conversions after 90 days |
|---|---|---|---|
| B2B SaaS (annual contracts) | 38% | 47% | 15% |
| B2B SaaS (monthly self-serve) | 62% | 30% | 8% |
| B2C SaaS / consumer | 84% | 12% | 4% |
| Lifetime deal / one-time | 94% | 5% | 1% |
| High-ticket info ($200+) | 70% | 23% | 7% |
Source: TrackRev workspace data, 2026. Medians across workspaces by product type.
For B2B annual contracts, a 30-day window misses 62% of conversions. For B2B monthly self-serve, it misses 38%.
For context, the ad platforms themselves have been shrinking their windows, not lengthening them: Meta now defaults to a 7-day-click attribution window (down from the old 28-day default) after iOS 14's privacy changes — a setting tuned for paid-social impulse response, not a multi-week SaaS evaluation.
The teams making spend decisions with 30-day (or shorter) windows on these products are silently under-crediting the channels that drove those late conversions — usually content, SEO, podcast, and brand.
How to determine the right window for your product
You do not need a benchmark table to set your window — you need your own median days-to-conversion. Three steps, all based on your own data.
The three-step calculation
- Step 1 — Pull your own median days-to-conversion. For paid customers acquired in the last 90 days, compute days between first tracked click and first paid charge. Take the median.
- Step 2 — Add 50% buffer. Median + 50% covers most of the long tail. If your median is 20 days, set the window to 30. If your median is 40 days, set it to 60.
- Step 3 — Cap at 120 days. Beyond 120 days the data gets too contaminated by unrelated activity (cookie shifts, browser changes, identity drift). For enterprise B2B with year-long cycles, the right tool is a CRM with deal-level attribution, not a click-based window.
Why median, not average
Use the median days-to-conversion, not the mean. Sales cycles are right-skewed — a handful of customers who took six months to buy will drag the average far above where most of your conversions actually cluster.
Setting a window off the inflated average leaves it too long, which contaminates your reports with unrelated revenue.
The median sits at the middle of your real distribution, and the +50% buffer then extends it to cover the genuine long tail without over-reaching.
If you have Stripe revenue attribution wired up, you already have the timestamps to compute this in one query: first tracked click to first successful charge.
Revenue lost by window length, at five sales-cycle medians
Read the column for your current window setting against the row for your median days-to-conversion. The intersection is the percentage of revenue that gets misattributed or dropped.
| Actual median days to convert | Window: 30 days | Window: 60 days | Window: 90 days |
|---|---|---|---|
| 10 days | 5% lost | 0% lost | 0% lost |
| 20 days | 18% lost | 2% lost | 0% lost |
| 35 days | 42% lost | 12% lost | 3% lost |
| 50 days | 58% lost | 28% lost | 8% lost |
| 70 days | 71% lost | 44% lost | 18% lost |
% of revenue not attributed correctly due to window-cutoff. Source: TrackRev workspace data, 2026.
The headline: a B2B SaaS team with a 35-day median sales cycle running a 30-day window is missing 42% of attribution. The channels that drove those late conversions look like underperformers.
Cutting them based on this distorted data is the worst kind of mistake — it cuts the right thing for the wrong reason.
Recommended windows by product type
Five product archetypes with the window length that fits each. Use as a starting point; recompute from your own median once you have 90 days of conversion data.
Five SaaS product shapes, with rationale
| Product type | Typical sales cycle | Recommended window | Rationale |
|---|---|---|---|
| B2B SaaS (enterprise) | 60–90+ days | 120 days | Long evaluation; buffer matters |
| B2B SaaS (SMB, monthly) | 14–45 days | 90 days | Trials extend decision timeline |
| B2C SaaS / consumer | 1–14 days | 30 days | Fast decisions |
| Freemium / PLG SaaS | 30–120 days | 120 days | Free-to-paid upgrade lags signup |
| Lifetime deal (LTD) | 1–7 days | 14 days | Urgency-driven purchase |
| High-ticket info product | 7–30 days | 45 days | Research before $200+ purchase |
How attribution windows interact with cookies
An attribution window only works if the underlying cookie lives long enough to support it. Cookie lifetime should always be ≥ attribution window.
Safari ITP and the 7-day client cookie cap
Under Safari ITP, client-set first-party cookies are capped at 7 days. If your cookie expires after 7 days but your window is 90 days, you've effectively lost 83 days of attribution every time.
The fix is server-set cookies (HTTP Set-Cookie header from your own server) which persist for the configured lifetime even under ITP.
Based on attribution data across TrackRev workspaces, the workspaces with the largest attribution-window-to-cookie-lifetime gap are the ones with the worst attributed-revenue rates. Closing that gap is usually the highest-leverage fix in any attribution audit.
Cookie lifetime versus window length, in practice
The two settings are independent and easy to mismatch. The cookie lifetime is how long the visitor's identifier survives in the browser; the attribution window is how long a click is eligible for credit in your database.
If the cookie expires before the window does, your database has the window open but no identifier to attach a conversion to — and the conversion is silently classified as direct.
The fix is mechanical: set the cookie's Max-Age equal to or greater than the attribution window, and set it from your server, not from JavaScript.
For a 90-day window, that means Max-Age=7776000 on the redirect response, with SameSite=Lax, Secure, and HttpOnly flags. Set this once on the redirect endpoint and the entire window is supported.
When to revisit the window
Three triggers:
- You change pricing. A price hike from $19 to $99/mo lengthens median consideration. The window that fit at $19 will under-credit at $99.
- You change channel mix. Moving from paid social (short cycles, often a 7-day Meta window) to content marketing or SEO (evaluations that routinely run 45–90 days) shifts the distribution toward the long tail and almost always argues for a longer window.
- Quarterly health check. Recompute median days-to-conversion every quarter. If it's drifted more than 30%, adjust.
Tip
Practical audit, takes ten minutes. Run one SQL query against your payments table: median(days_between(first_click, first_paid_charge)) over the last 90 days of paid customers. Multiply by 1.5. Round up to the nearest 30-day increment. Cap at 120. That number is your attribution window. Set the matching cookie Max-Age and you have closed the most common attribution leak in the dataset.
TrackRev and attribution windows
TrackRev's default attribution window is 90 days — calibrated for B2B SaaS, which is the most common workspace shape.
The window is configurable per workspace and per program, so you can run 14 days on a lifetime deal and 90 days on the main subscription product simultaneously.
The attribution dashboard shows the window setting next to every channel's revenue so it's never ambiguous.
Related reading: 2026 SaaS attribution benchmarks shows the full distribution of conversions over time by product type; last-touch vs first-touch vs linear covers the model choice that runs alongside the window choice. TrackRev's free tier covers 1,000 events.
External references: Apple ITP documentation on the 7-day client cookie limit; Amplitude's analytics chart documentation on how attribution touchpoints are modeled across the buyer journey; PartnerStack 2026 benchmark on partnership programs' median 4.5-month time to first revenue (relevant for affiliate windows); TrackRev internal attribution data.
An attribution window only does the job it is supposed to do if the same window covers every channel — including affiliate — and that only happens when one tool defines the window for both.
Most SaaS teams run Bitly Growth ($35/mo) for link tracking and Rewardful Starter ($49/mo) for affiliates — $84/mo for two tools with two different definitions of a conversion.
TrackRev is $39/mo for both, on the same revenue data, with no monthly reconciliation between systems.
A 90-day window in your link tracker plus a 60-day cookie window in your affiliate tool means the same charge gets attributed by two different rules on two different timelines, and the channel-versus-affiliate comparison breaks before it starts.
Set the window once, on one tool, and the comparison stays honest.
Found this useful? Share it.
Frequently asked questions
- TrackRev's attribution window is the setting that controls which acquisition channel gets credited with your MRR. An attribution window is the period after a click during which a conversion can still be credited to that click. If a visitor clicks a link on day 1 and the window is 30 days, a purchase on day 27 is attributed to that click, but a purchase on day 31 is not — it gets credited to a more recent in-window click or to direct traffic. The window has two settings: its length in days and the attribution model (last-touch, first-touch, or linear) that decides which click inside the window receives credit.
- It depends on your sales cycle. As a rule of thumb: B2C and consumer SaaS with fast decisions can use 30 days; SMB monthly SaaS with trials should use around 90 days; enterprise B2B with long evaluations should use up to 120 days; and lifetime deals with urgency-driven purchases need only about 14 days. The wrong move is applying the inherited 30-day default to a product with a longer cycle — for B2B SaaS that silently strips credit from content and top-of-funnel channels. TrackRev defaults to a 90-day window because B2B SaaS is the most common workspace shape, and it is configurable per workspace and per program.
- Three steps. First, pull your median days-to-conversion: for paid customers acquired in the last 90 days, measure the days between the first tracked click and the first paid charge, then take the median (not the average, which a few slow buyers will inflate). Second, add a 50% buffer to cover the long tail — a 40-day median becomes a 60-day window. Third, cap the window at 120 days, beyond which the data gets contaminated by unrelated activity. If you track Stripe or Paddle revenue, the click and charge timestamps to compute this are already in your data.
- Yes, significantly. A window that is too short under-credits channels that drive long evaluations — content, SEO, podcasts, and brand — because their conversions land after the cutoff, making them look like underperformers you might wrongly cut. A window that is too long over-credits channels by sweeping in unrelated revenue that would have converted anyway. Changing the window length can reshuffle your entire channel ranking, which is why TrackRev shows the active window setting next to every channel's revenue so the comparison is never ambiguous.
- Google Ads defaults to a 30-day click-through conversion window and GA4 to a 30-day acquisition lookback, while Meta defaults to a 7-day-click window after iOS 14's privacy changes. You should not blindly match them: those defaults are tuned for paid-response advertising with short consideration, and they cap how far back each platform will look. For a SaaS product with a multi-week evaluation, the platform default will under-report your true contribution. Set your own window from your median days-to-conversion and treat the ad-platform numbers as a floor, not a target.
- The attribution window is how long a click stays eligible for credit inside your database; the cookie lifetime is how long the visitor's identifier survives in their browser. They are independent settings and easy to mismatch. If the cookie expires before the window closes, the window is still open but there is no identifier left to attach a conversion to, so it gets silently logged as direct traffic. The rule is simple: set the cookie's Max-Age equal to or greater than the window, and set it server-side so Safari ITP cannot cap it at 7 days.
- It depends on the tool. If the platform stores the raw click and conversion timestamps (rather than only a pre-computed credited total), you can recompute attribution under a new window against historical data — the join is just a date comparison between first click and charge. TrackRev keeps the underlying event timestamps, so changing the window re-evaluates past conversions rather than only affecting new ones. Ad platforms like Google and Meta generally apply window changes going forward only, which is one reason to keep your own first-party event log.

Written by
Muzahid Maruf, Founder, TrackRev.io & Contant.io
Muzahid Maruf is the founder of TrackRev.io and Contant.io. He writes about marketing attribution, link tracking, and revenue analytics for SaaS teams.
Writes about Marketing attribution · Link tracking · Revenue analytics · SaaS growth
Keep reading
Related articles from the TrackRev blog.
