If you run paid traffic, you already know the problem. Meta claims one order, Google claims the same order, and your Klaviyo flow swears it closed the sale. Each platform grades its own homework, and a weighted attribution model is the attempt to stop any one of them from taking all the credit.
This guide walks the weighted models with real operating numbers, shows how each one rewrites the budget story for the same month of sales, and ends with the one check that keeps attribution from lying to you. For the full map of how these pieces fit together, start with our attribution and tracking guide.
What is a weighted attribution model?
A weighted attribution model distributes the credit for a conversion across multiple touchpoints as fractions that add up to one order. It is the opposite of single-touch models like first-touch attribution, which give 100% to one interaction.
The whole family lives under the umbrella term multi-touch attribution. The question shifts from "which click caused this sale?" to "what did each touch contribute?"
Model choice only matters in proportion to how long your buyer's journey is. A commonly cited average sits around eight to ten touchpoints before purchase (ReferralCandy). For a one-session impulse buy, first and last touch are often the same event and the model barely changes the answer.
The weighted models, and the bias baked into each
Every model has a bias. Your job is not to find the "right" one — it is to know which way each one lies.
Linear
Linear splits credit equally across every recorded touch. If a buyer hit five touchpoints, each gets 20%.
It is simple and feels fair, but it treats a three-second video view and the branded search that closed the sale as equals. It flatters channels that appear often and move nothing.
Position-based (U-shaped and W-shaped)
Position-based (U-shaped) is the classic weighted model: roughly 40% to the first touch, 40% to the last, and 20% spread across the middle (ReferralCandy). It keeps both discovery and closing visible at once.
W-shaped extends the idea to three emphasis points. Salesforce describes it as 30% each to three key milestones with the remaining 10% split across the rest (Salesforce). W-shaped is built for lead-based B2B funnels, so for a short ecommerce journey U-shaped is the more honest fit.
Time-decay
Time-decay weights credit toward the touches closest in time to purchase. The retargeting ad from yesterday outscores the prospecting ad from two weeks ago.
Its bias is predictable: it systematically talks you out of upper-funnel spend, because awareness touches always sit early in the journey. Use it when you genuinely believe recency equals influence — and distrust it when it quietly starves the channels that fill the funnel.
Data-driven attribution
Data-driven attribution (DDA) is GA4's default. A machine-learning model learns the split from your own conversion paths, so one order might land as 0.4 / 0.35 / 0.25 across three channels.
It is less arbitrary than a fixed rule, but it is a black box you cannot audit, and it needs volume to be stable. A commonly cited practitioner threshold is around 300 or more conversions per month before DDA output settles (ReferralCandy). Below that, the fractions wobble with noise.
A worked example: how the model changes the budget story
Say your store does 340 orders a month at a $31 average order value, with $2,800 a month in Meta spend. One buyer's path: a Meta prospecting ad (first touch), a Google branded search in the middle, then a Klaviyo email that closed it (last touch).
Here is how four models credit that single order:
- Last-click: 100% to the Klaviyo email. Meta and Google get nothing.
- Linear: 33% each to Meta, Google, and email.
- Position-based (U-shaped): 40% Meta, 20% Google, 40% email.
- Time-decay: most of the credit to the email, a sliver to Meta.
Look at what just happened. Under last-click, your prospecting ad looks dead and you cut it. Under position-based, that same ad earned 40% of the order and you keep funding discovery. Same sale, same dollars, opposite budget decision — driven entirely by the lens.
Now scale it. If branded search and email keep harvesting credit that prospecting created, a last-click report tells you to pour budget into the bottom of the funnel until the top runs dry and new orders quietly fall off. That is the single most expensive mistake weighted models exist to prevent.
The number every attribution model hides: profit
Here is the trap. Every attribution model argues about revenue credit, and not one of them tells you whether the order made money.
Take that $31 order. Say the blank from Printify costs $12, Shopify and payment fees run about $1.20, and the order carried $8.24 of ad spend ($2,800 ÷ 340 orders). Your per-order profit is $31 − $12 − $1.20 − $8.24 = $9.56.
Attribution can spend a week deciding whether Meta or Klaviyo "deserves" that order. It will never once mention that the order barely cleared ten dollars — and that a small cost bump or a discount code would push it underwater. A channel can win every attribution model and still lose you money on every sale it drives.
This is the gap PodVector AI's Victor closes. Victor sees every order, every ad dollar, and every supplier cost from Printify, Printful, and Gelato together, so he computes the true per-order profit on each product — not just the revenue a model happened to assign.
And Victor acts on it. He pauses the losing ad set in Meta Ads, shifts budget toward the Google campaigns that actually clear profit, reprices the thin-margin SKUs in Shopify, and builds the Klaviyo flow that re-engages buyers — then delivers the profit report to your Google Drive. Victor is not a dashboard you read; he is an AI employee who does the work across Shopify, Meta Ads, Google Ads, and Klaviyo.
Put Victor to work on your store's true per-order profit.
Where your tools already sit (and why they disagree)
You are not choosing a weighted model from scratch — your tools already picked defaults, and they fight each other. Knowing each one's default explains most of the chaos.
- Shopify defaults to last non-direct click on a 30-day lookback window (WeltPixel). It walks back past direct visits to the most recent tagged source.
- GA4 defaults to data-driven. It removed first-click, linear, time-decay, and position-based models in November 2023, so you literally cannot pick those weighted models in GA4 anymore (Google Analytics Help; Collective Measures).
- Meta Ads Manager and Google Ads each report their own self-credited conversions on their own windows — not a multi-touch model at all.
That means Shopify, GA4, and the ad platforms are asking three different questions of the same order. Their channel rows will never match, and no setting exists to force them to.
Privacy changes widened the gaps. After iOS 17's Link Tracking Protection, Apple strips click IDs like fbclid and gclid in Mail, Messages, and Safari Private Browsing — but UTM parameters survive (Klaviyo). That makes disciplined UTM tagging the durable layer under every weighted model; our guide to Klaviyo UTM tracking walks the tagging that keeps your email credited correctly.
The exposure is real for a US store. The opt-in rate for app tracking sat around 35% as of Q2 2025 (Adjust), and Safari accounts for roughly 55% of US mobile sessions (Backlinko). Half your mobile traffic lives where click tracking degrades.
How to actually budget when the models disagree
Model shopping is a losing game — switching to the model that flatters your favorite channel changes credit allocation, not revenue. Here is the sequence that works instead.
Fix the self-inflicted layer first. Audit your UTMs for case drift, inconsistent vocabulary, and untagged paid links. Most "mystery direct" traffic is a tagging problem, and this fix is free.
Give each tool one honest job. Shopify tells you how many orders and how much revenue actually landed. The ad platforms are useful for comparing campaign A against campaign B inside the same platform. GA4 shows cross-channel journey shape. Never use one platform's self-credited number to compare across platforms.
Then anchor on blended reality. Total ad spend ÷ total new customers is your blended CAC, and total revenue ÷ total ad spend is your blended return — both computed from Shopify plus your ad invoices, and neither can be gamed by any attribution model. In the worked example, blended return is $10,540 ÷ $2,800 = 3.76x. If your weighted-model numbers improve while that blended figure stays flat, credit is being reshuffled, not created.
FAQs
What is the best weighted attribution model for ecommerce?
There is no single best one — that is a malformed question. Position-based (U-shaped) is the most defensible default for a store with a multi-step journey because it keeps both discovery and closing visible. But the real answer is to triangulate across models and anchor every budget call on blended return, which no model can distort.
Is data-driven attribution more accurate because it uses machine learning?
It is less arbitrary than a fixed rule, but not objective. DDA trains on observable click paths, so it inherits every blind spot of click tracking and adds opacity you cannot audit. It also needs volume — roughly 300 or more conversions a month before its fractions stabilize (ReferralCandy). Below that, treat its splits as noise.
Why do Shopify, GA4, and Meta show different numbers for the same sale?
Because each uses a different model on a different window. Shopify defaults to last non-direct click over 30 days (WeltPixel), GA4 defaults to data-driven (Google Analytics Help), and the ad platforms report their own self-credited conversions. They are answering three different questions, so their rows cannot reconcile.
Does a weighted attribution model tell me if a channel is profitable?
No. Every attribution model argues about revenue credit, never cost. A channel can win every model and still lose money per order once product cost, fees, and ad spend come out. You need true per-order profit for that, which is exactly the number Victor computes across your Shopify, ad, and supplier data.
Did iOS updates kill weighted attribution?
No — they degraded click-based tracking, not weighted models themselves. iOS 17 strips click IDs like fbclid and gclid in Apple apps, but UTM parameters survive (Klaviyo). That makes clean UTM tagging more important, not obsolete, because UTMs are now the most durable input feeding any model.