# Attribution models explained

> Plain-English definitions and worked examples of Ordinary's four attribution models — first-click, last-click, linear, and time-decay.

Source: https://help.tryordinary.com/concepts/attribution-models

---

An attribution model is a rule for assigning credit across the
marketing touchpoints a customer had before they bought. Different
models answer different business questions; no one model is "right."

Ordinary supports four, two on every plan and two on Starter and
higher.

## The four models

### First-click *(all plans)*

Give 100% of the credit for the order to the **first** touch the
customer had with your brand.

- Answers: "Which channel introduces new customers to my brand?"
- Best for evaluating top-of-funnel awareness channels — podcasts,
  influencers, organic content.
- Limitation: over-credits channels whose real job is "seed the
  impression" and lets the closing channels look undervalued.

### Last-click *(all plans — default)*

Give 100% credit to the **last** touch before the order.

- Answers: "Which channel closes sales?"
- Best for evaluating performance channels — paid search, retargeting,
  email reactivation.
- Limitation: under-credits awareness; 100% of credit to the channel
  that happened to be last makes "direct" wildly overweighted.

### Linear *(Starter and higher)*

Spread credit **evenly** across every touchpoint.

- Answers: "Of all my channels, which show up most often in a
  customer's journey?"
- Best when you have many touches per order and don't want either
  the first or the last to dominate.
- Limitation: treats a throwaway banner impression as equal to the
  serious last-click search ad.

### Time-decay *(Starter and higher)*

Weight **recent** touches higher than older ones. The closer a
touch was to the order, the more credit it gets.

- Answers: "Which channels drive urgency and closing?"
- Best for fast-moving categories where older sessions had little
  actual influence on the purchase.
- Limitation: still under-credits pure-awareness channels where
  influence may have been weeks ago.

## Worked example

A customer's journey, in order:

1. Day -10: clicks a Meta ad (utm_source=facebook, medium=paid)
2. Day -8: clicks an Instagram influencer link (utm_source=instagram, medium=influencer)
3. Day -3: clicks an email from you (utm_source=email, medium=email)
4. Day 0: places the order ($100)

Credit distribution by model:

| Model         | Facebook | Instagram | Email |
|---------------|----------|-----------|-------|
| First-click   | $100     | $0        | $0    |
| Last-click    | $0       | $0        | $100  |
| Linear        | $33      | $33       | $34   |
| Time-decay    | $12      | $24       | $64   |

Time-decay weights the most recent touches most heavily and decays
older touches smoothly — so a touch from this morning counts more
than one from two weeks ago.

## Which model should I use?

- **If you're starting out and spend mostly on performance** —
  Last-click (default) is probably fine.
- **If you run brand campaigns (podcasts, YouTube sponsorships,
  influencer)** — compare First-click vs. Last-click. If a channel
  is huge on First-click and tiny on Last-click, that channel is
  seeding customers who close elsewhere.
- **If you want a balanced view** — Linear.
- **If your typical customer journey is <2 weeks** — Time-decay.

Most teams end up checking two or three models for different planning
questions and settling on one for reporting consistency.

## Getting clean inputs into the model

Every model in this article relies on Ordinary being able to
identify *which* touch is "Facebook campaign X" or "Google
campaign Y" when a customer lands on your store. The
identification comes from URL parameters on the click — `utm_*`
and platform-specific click identifiers (`fbclid` for Meta,
`gclid` for Google).

Two things help the model produce numbers you trust:

1. **Use the recommended URL-tag template on Meta** — Settings →
   Meta CAPI shows a template that includes both `utm_*` and
   direct campaign / ad-set / ad identifiers. Pasted into Meta's
   "URL parameters" field, this guarantees Ordinary can attribute
   every click back to the exact ad even if the visitor's UTMs get
   mangled by a redirect.
2. **Leave Google's auto-tagging on** — Google adds `gclid` to
   every click automatically. As long as you haven't disabled
   auto-tagging, Ordinary can match Google clicks to your campaigns
   regardless of UTM hygiene.

If your attribution numbers look directionally wrong — channel
"Direct" looks too big, or paid channels look too small — bad URL
tagging is usually the cause. The
[Attribution reports § Cleaner Meta attribution with the URL-tag template](https://help.tryordinary.com/features/attribution#cleaner-meta-attribution-with-the-url-tag-template)
section walks through the fix.

## What each model does NOT model

- **View-through attribution** — someone seeing your ad without
  clicking. Ordinary is click-based only.
- **Incrementality** — whether the customer would have bought
  anyway without the ad. Attribution models assume every touch
  mattered.
- **Offline touchpoints** — TV, podcast ads, packaging inserts.
  Not on the Ordinary pixel path.

For incrementality, run an experiment — Ordinary's built-in A/B testing
(variants with a randomized control) measures the causal lift attribution
can't. See [A/B testing and experiments](https://help.tryordinary.com/features/experiments).

## Related articles

- [Attribution reports](https://help.tryordinary.com/features/attribution) — where you pick
  the model.
- [Multi-touch vs single-touch](https://help.tryordinary.com/concepts/multi-touch-vs-single-touch) —
  the broader framing.
- [Why channel and campaign totals don't add up](https://help.tryordinary.com/concepts/channel-vs-campaign-attribution) —
  the reconciliation behaviour every multi-touch tool inherits and
  most don't explain.
- [Attribution numbers don't match Shopify](https://help.tryordinary.com/troubleshooting/attribution-mismatch) —
  when your attributed revenue doesn't line up with Shopify totals.
