Atribu
Concepts

Attribution Models

5 attribution models: last touch, first touch, linear, time decay, and last non-direct

Atribu supports 5 attribution models that determine how conversion credit is distributed across marketing touchpoints. Each model answers a different question about your customer journey.

How attribution works — all 5 models explained

How attribution works

Loading diagram...

Models at a glance


Last Touch

All credit goes to the last touchpoint before conversion.

Best for: Understanding what closes deals and drives the final decision.

API value: last_touch

Ad Click -> Email -> Blog Visit -> [Purchase]
  0%          0%        100%

First Touch

All credit goes to the first touchpoint that started the customer journey.

Best for: Understanding what drives initial awareness and brings people in.

API value: first_touch

Ad Click -> Email -> Blog Visit -> [Purchase]
  100%        0%        0%

Linear

Credit distributed equally across all touchpoints in the conversion path.

Best for: Fair representation of every step in the customer journey.

API value: linear

Ad Click -> Email -> Blog Visit -> [Purchase]
  33.3%      33.3%     33.3%

Time Decay

More credit to touchpoints closer to the conversion. Uses exponential decay from first to last touch.

Best for: Short sales cycles where recent interactions matter most.

API value: time_decay

Ad Click -> Email -> Blog Visit -> [Purchase]
  10%         30%       60%

Last Non-Direct

All credit to the last touchpoint that isn't "Direct" traffic. If a customer clicks an ad, then later types your URL directly, the ad gets credit.

Best for: Removing noise from direct visits to identify the real marketing driver.

API value: last_non_direct

Ad Click -> Email -> Direct Visit -> [Purchase]
  0%          100%       0% (ignored)

Using models in the API

Pass the model parameter to any endpoint that supports attribution:

Request
curl -H "Authorization: Bearer atb_live_YOUR_KEY" \
  "https://www.atribu.app/api/v1/overview?date_from=2026-03-01&date_to=2026-03-25&model=time_decay"
Request
const response = await fetch(
  "https://www.atribu.app/api/v1/overview?date_from=2026-03-01&date_to=2026-03-25&model=time_decay",
  {
    headers: {
      Authorization: "Bearer atb_live_YOUR_KEY",
    },
  }
);
const data = await response.json();
Request
import requests

resp = requests.get(
    "https://www.atribu.app/api/v1/overview",
    headers={"Authorization": "Bearer atb_live_YOUR_KEY"},
    params={
        "date_from": "2026-03-01",
        "date_to": "2026-03-25",
        "model": "time_decay",
    },
)
data = resp.json()

Valid model values

last_touch (default) first_touch linear time_decay last_non_direct


Attribution windows

Attribution windows define how far back in time a touchpoint can receive credit for a conversion. These are configurable per profile.

WindowDefaultDescription
Click window30 daysHow long after a click can a conversion be attributed
View-through window24 hoursHow long after an ad impression (no click)
First-touch window90 daysMaximum lookback for first-touch attribution

Window behavior

If a customer clicks an ad on March 1 and converts on March 28, the click is within the default 30-day window and receives credit. If they convert on April 5 (35 days later), the click falls outside the window and is excluded from attribution.


Revenue and ROAS

ROAS uses cash revenue only

Only revenue_type = 'cash' (confirmed Stripe and MercadoPago payments) is used for ROAS calculations. GHL pipeline values (closed_won, appointment_booked) are tracked separately as pipeline value -- they are projections, not confirmed revenue. See Revenue Types for details.

The revenue and roas fields in API responses always reflect attributed cash revenue. Pipeline values appear in conversion counts but are never included in ROAS math.

On this page