You can’t decide from a single attribution number. Deciding which channel to scale requires seeing the same purchases through first-touch, last-touch, and a resolved model at once — because where those three disagree is exactly where your budget decision lives. You also need to see which channels assist without ever closing, how long the journey really takes, and how much revenue your reporting failed to match to anything at all.
Most attribution tooling is built to produce a number. The harder and more useful job is producing a decision. This article covers why channel-level clarity is so rare, what a decision-ready attribution report actually contains, and the single distortion — traffic collapsing into “Direct” — that quietly misprices more budget than any other.
Why can’t you tell which channel to scale?
Because every platform reports its own victory, and nothing reconciles them.
Meta’s dashboard says Meta drove the sale. Google’s dashboard says Google did. Both are describing the same purchase, both are using their own attribution window and their own view of the journey, and neither knows the other exists. Add them together and you get more conversions than you had customers. This isn’t dishonesty — each platform can only see the part of the journey it participated in.
So teams reach for a single blended number instead: one tool, one model, one truth. That fixes the double-counting and creates a subtler problem — it hides the disagreement, and the disagreement is the information.
Consider a purchase that begins with an organic search, passes through a paid ad, and closes on a direct visit a week later. Under first-touch, organic gets the credit. Under last-touch, direct does. Under a model that resolves the whole journey, the paid ad in the middle may be the piece that actually moved the buyer. Each model is arithmetically correct and each implies a different budget decision. A tool that surfaces only one has quietly made the decision for you, using an assumption you probably didn’t choose.
There’s a third failure that’s less discussed: the purchases that never get attributed at all. They sit in a bucket labelled Direct, or Unmatched, or simply don’t appear — and because they’re absent rather than wrong, nobody investigates. Every dollar of revenue in that bucket is budget you can’t allocate.
What should a decision-ready attribution report show?
Six things. Most reports show one or two.
1. The same purchases under multiple models, side by side. First-touch, last-touch, and a resolved model that reconciles the full journey — displayed together, each with its own purchase count and channel split. When all three agree, you can scale with confidence. When they diverge, that divergence tells you whether a channel is opening relationships or closing them, which are different jobs deserving different budgets.
2. What was recovered, and by which mechanism. Recovery claims are easy to make and hard to trust. A report that says “we recovered revenue your pixel missed” should itemise how — ad clicks re-linked after iOS stripped them, sessions with no campaign tag that a classifier resolved to a real channel, buyers matched to a session that never completed a form. Named mechanisms with counts attached are auditable; a single “recovered” total is a claim.
3. Assists, not just closers. Some channels rarely close and consistently appear earlier in winning journeys. Under last-touch they look worthless and get cut — which is how teams accidentally defund the top of their own funnel. An assists view shows how often a channel participates in journeys it doesn’t finish, and what revenue those journeys produced.
4. How long the journey actually takes. Two distributions, not one: touches-per-purchase (how many interactions before buying) and days-to-purchase (how long the decision takes). If most purchases are same-day single-touch, your attribution window barely matters and your creative does. If a meaningful share take weeks and four-plus touches, short attribution windows are silently discarding your best-performing campaigns.
5. First-touch versus last-touch timing, separately. The gap between when someone first encountered you and when they converted measures the whole journey. The gap on the converting visit measures the decision. Long journeys with short final visits mean your remarketing is doing the persuading. Short journeys with long final visits mean the landing page is where the thinking happens. Different problems, different fixes.
6. What the report failed to match. The most honest number in any attribution tool: what share of revenue couldn’t be tied to a session at all. If that figure is missing from your reporting, it isn’t zero — it’s just invisible. A report that shows matched versus unmatched revenue is telling you the size of its own blind spot, which is the prerequisite for trusting anything else on the page.
Why does “Direct” eat your attribution?
Because “Direct” is not a traffic source. It’s the bucket everything falls into when the campaign tag is missing.
A visitor arrives with no utm_source and no click ID and gets filed as Direct. But almost none of those people typed your URL from memory. They came from a link in an email client that stripped the parameters, a messaging app, a browser that removed tracking parameters for privacy, a redirect chain that dropped the query string, an iOS environment that limited what could be passed along — or from a genuine ad click whose identifier didn’t survive the trip.
When Direct is one of your largest revenue “channels,” that’s rarely brand strength. It’s a measurement failure wearing a channel’s name. And it’s expensive in a specific way: that revenue isn’t missing, it’s misfiled — sitting in a bucket you can’t scale, subtracted from channels you could have.
The fix isn’t a better guess. It’s resolving what the session actually was from the signals that did survive — the referrer, the landing page, the click identifiers present elsewhere in the visitor’s history, and prior sessions belonging to the same person. A session with no campaign tag that arrived from a search engine and shares an identity with an earlier ad-click session isn’t Direct. It’s that ad click, finishing.
In practice this reclassification is usually the largest single source of recovered attribution — bigger than iOS rescue, bigger than partial-lead recovery. Reclaiming it moves real revenue out of the unscalable bucket and back onto the channels that earned it.

How does PartialLeads make attribution decidable?
The Attribution Report is built around a single idea: show the operator enough to make a budget decision, including the parts that are uncomfortable.
Three models, side by side, always. First-touch, last-touch, and PartialLeads’ resolved model appear together, each with its own purchase count and per-channel split. You are never handed one number and asked to trust it — you see where the models agree (scale confidently) and where they diverge (investigate before moving budget). The resolved model can legitimately show more purchases than first- or last-touch, because it recovers journeys the simpler models lose entirely.
Recovery is itemised by mechanism, not asserted as a total. The report breaks recovered revenue into named causes — ad clicks re-linked after being lost, sessions reclassified by the session classifier when no campaign tag existed, and revenue from buyers whose session never completed a form — each with its own purchase count and affected channels. You can audit the claim rather than accept it.
Channels carry the numbers a media buyer actually decides on. Revenue, purchases, AOV, average lag from touch to purchase, visitors, visitor-to-lead rate, and ROAS — with the same first/last/resolved toggle applied, and paid channels expandable to their individual campaigns. Scale decisions get made at campaign level, so that’s where the report lets you look.
Assists are separated from closes. The paths view shows real journey sequences and how often each occurs, alongside an assisting-channels table that credits participation distinctly from closing. Channels that quietly open journeys stop looking like dead weight.
Journey shape is explicit. Touches-per-purchase and days-to-purchase distributions sit alongside a first-touch-versus-last-touch timing comparison, so you can see whether your buyers decide in minutes or deliberate for weeks — and whether your attribution windows are long enough to contain them.
The blind spot is on the page. A match-quality breakdown shows revenue split across partial-captured, submit-completed, and unmatched — the report telling you, in its own numbers, how much it couldn’t tie to a session. Paired with a match-rate KPI compared against the prior period, the reliability of the report is itself a visible metric.
And the journey is visible on every lead — without opening anything. This is the part that changes daily behaviour rather than quarterly reporting. In the leads list itself, each person carries a small journey ribbon: one badge per touch, left to right, in the channel’s own brand mark. A grey dot marks a session whose source couldn’t be determined. A green square marks the conversion. Visual weight reflects how confident the attribution is, so a strongly-tagged campaign click looks different from a weak signal at a glance.
The practical effect is that a row reads like a sentence. Six Google touches, then converted. Meta, then a gap, then Meta again, then bought. Direct, unmatched — the honest version, rather than a channel name invented to fill the space. You can scan fifty leads and see the shape of your demand without clicking into a single record, and the same row carries the status, the revenue, and which conversion APIs that lead was dispatched to.
That matters because aggregate reports and individual records get used by different people for different decisions. The attribution report tells a media buyer which channel to scale. The journey ribbon lets a salesperson see that the lead they’re about to call has been back six times — or settles an argument about whether a specific customer really came from paid.
One detail worth noticing: AI assistants now appear as first-class traffic sources in the channels table, converting alongside search and paid social. As buying research shifts into AI answer engines, that traffic shows up as a measurable, scalable channel rather than disappearing into Direct.

Honest boundaries. No attribution system sees everything. Purchases with no recoverable identity stay unmatched — which is precisely why the unmatched figure is displayed rather than hidden. Resolved attribution is a model, not a metaphysical truth: it’s a reasoned reconstruction from captured signals, shown next to the simpler models so you can judge it rather than inherit it. And some conversion metrics need a warm-up period after a fresh install before visitor-level rates are meaningful.
Deciding where to scale, in one view:
| The decision you’re making | What the report shows | What it tells you |
|---|---|---|
| Is this channel opening or closing sales? | First-touch vs last-touch split, side by side | Divergence means different jobs — fund both accordingly |
| Is a low-credit channel actually worthless? | Assisting channels: assists, assisted revenue, closes | Participation without closing is still contribution |
| Is my attribution window long enough? | Days-to-purchase and touches-per-purchase distributions | Long tails outside the window are invisible conversions |
| Is “Direct” really direct? | Recovered attribution, itemised by mechanism | Reclassified sessions return revenue to real channels |
| Can I trust this report at all? | Match rate + matched vs unmatched revenue | The report’s own blind spot, quantified |
| Which campaign specifically? | Paid channels expanded to campaign level, with ROAS | The grain scale decisions are actually made at |
Setup is one tag. The free tier includes the Attribution Report, so you can see your own channel splits — and your own unmatched number — before paying anything.
Tell us what's broken. We'll fix your tracking — free.
Describe the tracking/attribution problem you're stuck on and we'll map it to a fix: server-side conversions to Meta, Google, TikTok and Pinterest, plus first-party tracking that survives Safari. No code required.
Sources
- Google Analytics Help — Attribution models overview: https://support.google.com/analytics/answer/10596866
- Meta Business Help — About attribution settings: https://www.facebook.com/business/help/2198119873776795
- Google Ads Help — About attribution models: https://support.google.com/google-ads/answer/6259715
- Google Analytics Help — Direct traffic and unassigned sessions: https://support.google.com/analytics/answer/6205762