> ## Documentation Index
> Fetch the complete documentation index at: https://soran.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Attribution models

> How credit for a conversion is divided across touchpoints.

A customer rarely converts on the first visit. They arrive from a paid ad, come
back from an email, search for you by name, and then buy. That is one conversion
and several touchpoints, and an attribution model is the rule for dividing the
credit between them.

Soran divides each conversion so the total always adds up to one. This is the
difference between Soran's numbers and your ad platforms': each platform claims a
conversion it had any hand in, so their totals overlap and, added together,
overstate what your store actually took.

## The models

Soran builds the path from the sessions that led to the conversion, ordered by
when each session started, and keeps only those inside the attribution window.

| Model | How credit is divided |
| - | - |
| **Last touch** | All of it to the final touchpoint. This is the default. |
| **First touch** | All of it to the touchpoint that started the path. |
| **Linear** | Split evenly across every touchpoint. |
| **Time decay** | Weighted toward touchpoints nearer the conversion, on a configurable half-life. |
| **Position based** | Weighted to the first and last touchpoints, with the remainder shared by those in between. |
| **Participation** | Every distinct channel or campaign on the path is credited, counted once even if it appears several times. |
| **Direct** | Credit to the conversion's own session only. |

### Choosing between them

**Last touch** flatters whatever closes — often brand search, which was going to
happen anyway. **First touch** flatters whatever discovers. Both are single-touch
models and will disagree sharply on the same data, which is informative in
itself: a channel that looks strong on last touch and weak on first touch is
harvesting demand rather than creating it.

**Linear**, **time decay**, and **position based** are the multi-touch middle
ground. Use time decay when your buying cycle is short and recency genuinely
matters; use position based when discovery and closing are both worth naming.

**Participation** answers a different question — which channels were involved at
all — so its totals are not comparable to the others.

## Milestones

Position-based attribution anchors on the first and last touchpoints, and can
also anchor on sessions that contained a **milestone** event you have configured.
That lets a step you consider important in the journey earn a named share rather
than being averaged into the middle.

## Related

> **[Goals](/docs/concepts/goals)**
>
> Attribution is always calculated against a goal.

> **[Sessions and touchpoints](/docs/concepts/sessions-and-touchpoints)**
>
> How each touchpoint on the path is identified.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.