Back to blog
Revenue analytics

Why is Stripe revenue unattributed? A diagnostic guide

Find the common causes of unattributed Stripe revenue, distinguish missing payments from missing source links, and fix future attribution coverage.

By Graytower team

TL;DR

Unattributed Stripe revenue means the payment is known, but the data cannot reliably connect it to a tracked visitor and acquisition source. First confirm the payment imported. Then check visitor identity at checkout, the visitor’s recorded sessions, and the tracking mode. Keep the payment in total revenue while you repair the missing link.

First, is the payment missing or only its source?

These are different problems. If a Stripe payment does not appear in total revenue, investigate the Stripe connection, payment eligibility, synchronization, and refund status. If it appears in total revenue but under unattributed, the payment was found; the missing part is its reliable visitor or source link.

Graytower does not assign a likely campaign to fill that gap. Its missing revenue troubleshooting guide covers import problems, while the unattributed revenue guide covers source coverage.

Where does the attribution chain break?

Inspect one payment rather than starting with a channel chart. The chain is payment → visitor → session → source. Find the first link you cannot verify.

CheckSymptomNext action
Payment importedPayment absent from total revenueVerify the Stripe connection and eligible payment state
Visitor matchedPayment present, no reliable visitorPass the visitor ID into Stripe metadata or use supported user identity
Session recordedVisitor matched, no usable visitVerify the tracker ran on the relevant domain and before checkout
Source recordedVisit exists but source is direct or unknownReview UTM tags, referrers, redirects, and the source rule

A visitor match is strongest when it is based on an explicit identifier passed into checkout. Graytower also supports identified users and a checkout_started link for certain flows. The latter records a checkout attempt, so payment success must still come from Stripe. See the matching recipes before changing your integration.

Common causes in a SaaS checkout

Checkout loses visitor context. Your marketing site tracks the visit, but the server that creates the Stripe session does not receive the visitor ID. Add the supported identifier when constructing checkout, then test the full path from a tagged landing page through a completed payment.

The customer pays on another device. An anonymous desktop visit and a phone purchase can be two unrelated visitors unless your application supplies a supported signed-in identity. Do not join them by assumption.

A visit was never recorded. The tracker may have been blocked, installed only on some pages, or configured for the wrong registered domain. Verify tracking on the deployed site and inspect the collector request. The tracking verification guide gives a concrete checklist.

The Website uses cookieless mode. Stripe totals still import, but the browser has no persistent anonymous Graytower identity and browser checkout signals are disabled. Long-range anonymous payment matching is therefore limited. Read cookieless analytics and revenue attribution before choosing this mode for an attribution goal.

The source itself is unknown. Even a matched visitor may have no usable acquisition source. Direct visits may be legitimate; redirects and stripped UTM parameters can also obscure campaign context. “Unknown” should remain visible in the report.

A short repair workflow

  1. Select a recent payment and verify its amount, currency, and refund status in Stripe and Graytower.
  2. Check whether the payment has a supported visitor or user match. If not, instrument checkout metadata or a supported identity path.
  3. Confirm the matched visitor has a recorded session and inspect its source. Test a visit with explicit UTM parameters.
  4. Repeat with a new test payment. Compare matching coverage over time, not just attributed dollars.

Keep historical expectations realistic. Adding metadata now improves future checkouts; it does not invent an old identifier that was never captured. For the full model, start with how SaaS revenue attribution works.

Frequently asked questions

Why does Stripe revenue show as unattributed?

The payment was imported, but it cannot be reliably linked to a tracked visitor with a recorded acquisition source. Missing checkout metadata, identity gaps, absent sessions, and cookieless tracking are common causes.

Is unattributed revenue lost revenue?

No. The payment remains in total eligible revenue. Unattributed describes a missing source link, not a missing Stripe payment.

Can I repair historical attribution after adding checkout metadata?

New metadata improves future matches. A past payment cannot gain a visitor link that was never recorded, although existing delayed data or supported identity links may still reconcile.