Metrivo
Example using demo data. All IDs, amounts, and timestamps below are fictional.
Examples/Unattributed Stripe revenue

Unattributed Stripe revenue

Not every payment can be linked to a session. This example shows how Metrivo handles a Stripe checkout that arrives without metadata or a matching email, and why the result is labeled Unknown rather than guessed.

The webhook (demo payload)

{
  "id": "evt_demo_3f8a",
  "type": "checkout.session.completed",
  "data": {
    "object": {
      "id": "cs_demo_77c2",
      "amount_total": 4900,
      "currency": "usd",
      "customer_email": "buyer@example.test",
      "metadata": {}
    }
  }
}

The metadata object is empty, so there is no metrivo_visitor_id or metrivo_session_id to match. The email buyer@example.test was never observed by the tracking script because the buyer paid directly without signing up first.

What Metrivo does

Unknown confidenceSource: UnknownAmount: $49.00

The payment is recorded under unattributed revenue. Metrivo does not assign it to any traffic source because nothing in the payload or database supports a link.

How to reduce unattributed revenue

  • Pass metrivo_visitor_id (and optionally metrivo_session_id) in Stripe Checkout metadata when creating the session.
  • Capture the customer email through the tracking script during signup or trial, so a later checkout email hash can match.
  • Use named UTM tags on outbound links so the source survives even if the referrer is stripped.
  • Accept that some payments will always remain Unknown — that is an honest answer, not a bug.

Read more about attribution confidence.

Try this with your own data

Connect Stripe and see how much of your revenue is currently unattributed — and how much you can recover with metadata.