# Attribution modelling

Attribution answers one question: which channels and campaigns get the credit for a conversion?
Kontala answers it by building a journey for every conversion, then sharing that conversion's credit between the journey's touchpoints by an attribution model.

You read the result on the **Attribution: which channel gets credit?** dashboard, and you can build your own charts on the **Attribution** explore.
The **Campaigns** explore credits campaigns from the same journeys, so the two always agree.

## Conversions

A conversion is one of five things a visit did:

| Conversion | What counts |
| --- | --- |
| Purchase | An Order confirmation page view |
| Trial start | A form sent with a Start trial click |
| Demo request | A form sent with a Request demo click |
| Newsletter signup | A form sent with a Newsletter signup click |
| Lead | A Form confirmation page view |

Each kind counts once a visit, exactly as the Visits explore counts **Conversions**.
A visit that made a purchase and signed up to the newsletter ends two journeys, one for each kind, and each is credited on its own.
Use the **Conversion** dimension to look at one kind at a time.

A conversion is dated by the start of the visit it happened in, under every model.
See [Revenue and campaigns](/docs/data-capture/revenue-and-campaigns) for how orders and revenue are captured.

## Channels

Every touchpoint is sorted into one of 10 channels by the same rules as the Visits explore's **Channel**:

Paid Search, Paid Social, Email, AI Assistants, Organic Search, Organic Social, Other Campaign, Direct, Internal and Referral.

A visit keeps the channel it arrived by everywhere in Kontala.
Attribution is the one place that also looks at what reached the visitor later in a visit, as described below.

## Touchpoints

A touchpoint is a moment a channel reached the visitor.
There are two kinds.

- **A visit's entrance:** how the visit arrived, such as a click on a Google ad or a link in an email.
  Every visit has exactly one.
- **A mid-visit touch:** a campaign that reached the visitor after their visit began, such as a retargeting ad opened in a new tab while they were still browsing.

A visit only ends after 30 minutes without activity, never because a new campaign arrived, so a mid-visit touch does not start a new visit.
Instead, it becomes a touchpoint of its own, and the conversions after it can be credited to it.
GA4 credits key events the same way.

A later page view counts as a mid-visit touch only when all of these are true:

- It carries a campaign tag (`utm_` parameters or `utm_id`) or an ad click id, such as `gclid` or `fbclid`.
- It did not come from your own site.
  A banner on your own site tagged with UTMs is not a touch, which protects your credit from a common tagging mistake.
- Its campaign differs from the touchpoint before it in the visit, so a reload or a second click on the same ad is not counted twice.
- It is on an origin your property allows.

A mid-visit touch always carries a campaign, so it is never Direct or Internal.
In the converting visit itself, only touches that happened before the conversion count.

## Journeys

A conversion's journey is every touchpoint of the same visitor in the 90 days up to it:

- the entrances of the visitor's earlier visits that started up to 90 days before the converting visit, and their mid-visit touches,
- the converting visit's own entrance,
- and the converting visit's mid-visit touches that happened before the conversion.

Touchpoints are numbered from 1 in the order they happened.
The first one **opens** the journey and the last one **closes** it.

Earlier conversions do not cut a journey short.
If a visitor signed up to your newsletter and bought a month later, the newsletter signup's visit is still part of the purchase's journey.

### What a visitor is

A journey belongs to one visitor, which today means one device, identified by a first-party cookie.
Two things follow from that:

- A visit by the same person on another device starts a separate journey.
- Safari clears the cookie after 7 days without a visit.
  On Safari, a journey with a longer gap splits in two, so its first touch looks later than it really was and **Days to convert** reads short.

Bot traffic, visitors who declined consent and origins your property does not allow are left out.

## The three models

Every model hands out each conversion exactly once.
Summed over every channel, each model's conversions equal the total **Conversions**.
They differ only in who gets the credit.

| Model | Who gets the credit | Good for |
| --- | --- | --- |
| Last touch | All of it goes to the touchpoint that closed the journey | Which channels finish the job, and day-to-day campaign optimisation |
| First touch | All of it goes to the touchpoint that opened the journey | Which channels bring new demand in |
| Linear | It is split in equal shares between every touchpoint | A balanced view of every channel that played a part |

Last touch is the default credit in the **Campaigns** explore, where it is called **Credited conversions**.
Revenue is credited the same way: each model has its own revenue metric, and linear splits a purchase's revenue in the same shares as the conversion.

### A worked example

A visitor converts after four touchpoints over 12 days:

| Touchpoint | Channel | Kind |
| --- | --- | --- |
| 1 | Organic Search | Entrance of visit 1 |
| 2 | Email | Entrance of visit 2 |
| 3 | Paid Social | Mid-visit touch in visit 2 |
| 4 | Paid Search | Entrance of visit 3, which made a £120 purchase |

Each model credits the purchase like this:

| Channel | Last touch | First touch | Linear |
| --- | --- | --- | --- |
| Organic Search | 0 | 1 (£120) | 0.25 (£30) |
| Email | 0 | 0 | 0.25 (£30) |
| Paid Social | 0 | 0 | 0.25 (£30) |
| Paid Search | 1 (£120) | 0 | 0.25 (£30) |

Its path reads Organic Search → Email → Paid Social → Paid Search, and every one of the four channels **took part in** it.

### Choosing a model

No model is correct on its own, and comparing them is often more useful than picking one.

- When a channel scores much higher on first touch than on last touch, it brings people in that other channels go on to convert.
- When it scores much higher on last touch, it mostly closes journeys that started elsewhere, such as brand search or retargeting.
- **Models disagree on** shows the share of conversions first touch and last touch credit to different channels.
  When it is low, most journeys are short and the model you pick matters little.

## The Organic and Direct/Internal switches

The Attribution dashboard has two switches that decide which channels a journey is allowed to hold.
They change the path and the credit together, under every model.

| Switch | Channels | Default |
| --- | --- | --- |
| Organic | Organic Search, Organic Social, Referral and AI Assistants | Included |
| Direct/Internal | Direct and Internal | Excluded |

A touchpoint a switch leaves out is removed from the whole journey: it is not on the path, it gets no credit and it plays no part in assists.

The defaults mean a visitor who clicks a paid ad and comes back days later by typing your address credits the conversion to the paid ad, not to Direct.
Direct and Internal visits only get credit when nothing else touched the journey.
Switch Organic to **Excluded** to see how your paid and owned channels perform on their own.

### Credited by fallback

If the switches leave nothing of a journey, the conversion is credited to its own visit's entrance, whatever its channel.
That is why an Organic or Direct conversion can still show credit with its switch set to Excluded.
**Share credited by fallback** shows how much credit this keeps; a high share means many conversions had no other touchpoint.

The switches also apply to the Campaigns explore's credit, so a dashboard and the Campaigns explore set the same way give the same numbers.

## Assists and roles

Every touchpoint has a **Role** in its journey:

| Role | Meaning |
| --- | --- |
| Opened | The first of several touchpoints |
| Mid-journey | Between the first and the last |
| Closed | The last of several touchpoints |
| Only touch | The single touchpoint of its journey |

An **assisted conversion** is one a channel had a touchpoint in before the last one, as Universal Analytics counted assists.
A channel can assist a conversion and close it too.

**Assists per close** divides a channel's assisted conversions by its last-touch conversions.
Above 1, the channel mostly opens and carries journeys.
Below 1, it mostly closes them.

## Paths

A **path** is a journey's channels in the order its touchpoints came, such as Organic Search → Email → Paid Search ×2.
Consecutive touchpoints from one channel are one step, and a path of more than five steps shows its first two and last two steps around how many it leaves out.
Only the channels the switches keep are on a path.

The **Paths** tab of the dashboard also shows:

- **Converted on the first visit:** the share of conversions whose touchpoints are all in one visit.
- **Median days to convert:** from a journey's first touchpoint to the visit it converted in, at most 90.
- **Journeys of 5+ visits:** the share of long, considered journeys.

## Reading the numbers

Attribution counts in two different ways, and knowing which one a metric uses avoids most surprises.

- **Conversions** counts each conversion once, on the touchpoint that closes its journey.
  Grouped by Channel, it is the conversions each channel closed, which is last touch.
- **Took part in** counts the conversions a channel had any touchpoint in.
  Grouped by Channel it adds up to more than the total, on purpose, because a journey can have several channels.
- **First-touch**, **Last-touch** and **Linear conversions** each add up to Conversions over every channel.

One row of the Attribution explore is one touchpoint of one journey, so a conversion has as many rows as its journey has touchpoints.
Use the model metrics rather than counting rows.

There is no Channel filter on the dashboard, because filtering touchpoints by channel would cut journeys apart.
To focus on one channel, group by **Channel** and read its row instead.

## How it compares with ad platforms

Ad platforms each count the conversions they touched, often over view-throughs and their own lookback windows, so their totals usually add up to more than your real conversions.
Kontala credits each conversion exactly once across every channel, from your own site's data, so the numbers will not match a platform's own reporting.
That difference is expected: use Kontala to compare channels with each other, and the platforms to tune inside each one.

To compare credit with what you spent, upload your ad spend and use the **Campaigns** explore for cost per conversion and return on ad spend.

## Limits today

- Journeys are per device, not per person, so cross-device journeys are split.
- The lookback is fixed at 90 days.
- The models are first touch, last touch and linear.
  Position-based, time-decay and data-driven models are not available.
- Kontala maintains the Attribution dashboard: publishing replaces it, so use **Duplicate** to keep your own edited copy.

## Related

- [Dashboards](/docs/analytics/dashboards): the ready-made dashboards, including Attribution.
- [Explores, metrics and the semantic layer](/docs/analytics/semantic-layer): what each explore holds.
- [Metrics](/docs/analytics/metrics): how metrics are calculated and combined.
- [Revenue and campaigns](/docs/data-capture/revenue-and-campaigns): conversions, campaign parameters, channels and ad spend.
