# Revenue attribution guide

> How Attrifast links every paid order to the marketing channel that drove it — the model, the setup, and where the numbers show up.

Last updated: 2026-07-17
Canonical: https://attrifast.com/docs/revenue-attribution-guide

Traffic numbers tell you what's popular. Revenue attribution tells you what *pays*. Attrifast joins your payments to your visitor sessions so every order carries the channel — and, for AI traffic, the exact engine — that brought the buyer.

## Set up in three steps

<Steps>
<Step title="Install the tracker">

[Add the snippet](/docs/install) to your site (or [connect Shopify](/docs/shopify), which injects it for you). Attribution works forward from the moment tracking starts — sessions recorded before a purchase are what the purchase gets attributed to.

</Step>
<Step title="Connect your payment provider">

Connect [Stripe](/docs/stripe) (onboarding step 3, "Attribute revenue") or [Shopify](/docs/shopify) (onboarding step 2, the Shopify tab). Both are Pro features (7-day free trial).

</Step>
<Step title="Watch revenue land on your dashboard">

No further setup: as payments come in, they appear across the dashboard already attributed. See [where the numbers show up](#where-revenue-shows-up) below.

</Step>
</Steps>

## The attribution model

Attrifast uses **last non-direct click with a 7-day lookback**, computed once when the payment arrives:

1. The order is linked to a visitor (via the visitor ID your checkout carries — see the [Stripe](/docs/stripe) and [Shopify](/docs/shopify) pages for how each provider does this).
2. Attrifast finds that visitor's **most recent session whose channel isn't Direct**, started within the **last 7 days**.
3. That session's channel becomes the order's attributed channel. If no qualifying session exists, the order is **Direct**.

Two properties of this model worth knowing:

- **Direct never steals credit.** A visitor who found you via ChatGPT on Monday and typed your URL on Wednesday is attributed to AI, not Direct.
- **Recency wins among marketing channels.** If a buyer came via Paid Search yesterday and via AI three days ago, the order goes to Paid Search — there is no multi-touch weighting.

Sessions are classified from referrer and UTM parameters into these channels: Organic Search, Paid Search, Social, Paid Social, Email, **AI**, Referral, Affiliate, Display, and Direct.

### AI revenue: last-click and influenced

AI traffic gets two separate revenue readings:

- **AI last-click** — orders whose winning session was an AI visit. These orders also carry the specific engine (ChatGPT, Perplexity, Claude, Gemini, Copilot, Meta AI, Grok, DeepSeek, Mistral, You.com, or Phind), so you see revenue *per engine*.
- **AI-influenced (any touch, 30 days)** — orders where the buyer had *at least one* AI session in the 30 days before paying, regardless of which channel won last-click. This catches the common pattern where an AI answer starts the journey and search or direct finishes it.

Both figures sit side by side on the AI Visibility page, next to citation data per engine.

## Where revenue shows up

| Dashboard surface | What you see |
| --- | --- |
| KPI row | Revenue ("attributed to traffic"), conversion rate (visitors who paid), revenue per visitor |
| Trend chart | Daily revenue alongside visitors and pageviews |
| Channels panel | Revenue, orders, revenue/visitor, and conversion rate per channel; AI rows carry per-engine revenue badges |
| Customers panel | Every paid order as a row: customer, source channel, amount, time to convert |
| Goals panel | Conversions and conversion rate per [goal](/docs/goals) |
| AI Visibility → Citations → revenue | Per-engine citations joined with sessions, conversions, and revenue; AI last-click vs AI-influenced chips |

## Honest limitations

- **Revenue is gross.** Refunds, cancellations, and disputes are not subtracted yet.
- **Attribution is not retroactive.** Payments made before you connected a provider aren't imported, and an order's attribution is computed once — it doesn't change if data arrives later.
- **Windows are fixed** — 7-day last non-direct click and 30-day AI influence are not configurable per site yet.
- **Amounts are summed as-is** across currencies, without FX conversion. Single-currency stores are unaffected.
