Revenue reporting · Marketers and marketing leaders

Revenue Attribution: Connect Marketing Activity to Recorded Sales

Revenue attribution connects a payment or closed deal to the recorded marketing interactions before it, then applies a rule to share credit. For an online business, that means joining website visits with payment records so you can compare sources, campaigns and pages by sales. The result depends on which interactions were recorded and which payments could be matched.

Emerald and blue channels carry coins toward a matching gate and receipt ledger, with separate unmatched and return paths.

What does revenue attribution help you decide?

Your newsletter gets clicks. Search brings visitors. Your payment provider records sales. The missing connection is often the one you need for a budget meeting: which recorded marketing paths were behind those payments? Revenue attribution makes that connection visible, with a stated rule for assigning credit.

Imagine someone clicks a newsletter on Monday, returns through search on Wednesday and buys for $120. A first-touch view credits the first recorded source. A last-touch view credits the last. A linear view shares credit across the recorded touches. These are different answers about one sale; they are not three additional sales. Our attribution-model guide walks through the same journey under each rule.

Start with a decision you can act on: which campaigns deserve a closer review, which landing pages appear in buying journeys, or where payment matching breaks. Attribution describes recorded credit. To establish whether extra spending caused extra sales, you need an appropriate experiment or other causal analysis alongside the report.

Which records need to connect?

  1. A website visit: when it happened, the website and the page involved.
  2. A source: the available referrer or campaign labels, such as an external newsletter link.
  3. A matching reference: a supported way to connect the payment with a recorded visitor or known customer.
  4. A payment record: its status, amount, currency and identifier, with later supported refunds handled consistently.

These records can arrive separately. Stripe's webhook documentation describes how payment and subscription events reach a server. Its delivery guidance also explains duplicate events and event ordering. Your implementation needs to handle those details so a retried notification does not become another sale. A marketer can ask for one reconciled example without having to build that connection personally.

Example ledger: a matched $120 payment minus a $40 refund leaves $80 source credit; an unmatched $80 payment remains separate; total net receipts are $160.
Example: keep the payment, its refund and its source match connected. An unmatched payment still belongs in the reconciliation.

In this example, two payments total $200. One $120 payment matches a recorded Google Ads journey and later receives a $40 refund. The other $80 payment has no matching visit. Net receipts are $160: $80 connected to that journey and $80 still unmatched. Assigning the unmatched amount to Google Ads would make the source look better without adding evidence.

Choose the setup that fits how customers buy

How the sale finishesUseful starting pointWhat still needs checking
Online checkout or subscriptionWebsite visits joined to supported payment recordsExact checkout flow, visitor match, renewals and refunds
Salesperson closes a dealCRM journey and deal-stage reporting, reconciled with invoices or paymentsBooked value versus collected cash; lead and deal identity
A few manually managed salesA small reconciliation sheet and a consistent source questionMissing records, duplicates and self-reported versus observed discovery
Custom checkout or several business systemsA documented server integration or data pipelineIdentifiers, deduplication, permissions and someone to maintain it

Use systems you already have when they answer the question. GA4 supports purchase and refund events when ecommerce tracking is configured. Check those events before assuming another tool must replace it. Google documents the required ecommerce implementation separately from the attribution models used to assign credit; two tools can disagree because they received different records or applied different rules.

For a longer sales cycle, CRM reporting may be the better starting point. HubSpot, for example, distinguishes contact, deal and revenue attribution reports, with availability depending on the subscription. Decide whether your question concerns lead creation, a won deal or money received before selecting the report. A closed deal's stated amount is not automatically the amount collected in your bank account.

For an agency with several clients, agree the same definitions with each client before consolidating anything. Keep an online store's collected payments separate from a consultancy's booked pipeline. A clear client revenue report should state which business outcome it measures and who can reconcile it.

Build a revenue view in Attriboo

Attriboo brings recorded website activity and connected payment information into one place. Start with one website and one known payment path. The goal of the first check is simple: can you locate the visit, the payment and their expected connection? Broader channel comparisons become useful after that foundation works.

  1. Add the correct website, install the tracking script once and publish the change. Check a permitted first visit on the published site.
  2. Open the payment-connection guide and choose your provider. Current connections include Stripe, Polar, Lemon Squeezy, Shopify, Paddle, PayPal and WooCommerce.
  3. Confirm that your exact payment flow is supported. Authorize the connection using its guide; a logo on an integration page does not connect your account.
  4. Check one known payment against the provider's status, amount, currency and dates. Investigate a missing visit or an unmatched sale before assigning source credit.
  5. Choose consistent reporting dates and an attribution model, then compare a channel or source in the revenue timeline.

Check history limits before promising a retrospective report. Shopify and WooCommerce start with new supported records. Stripe's current import covers eligible Checkout payments and invoices from the previous 90 days, capped at 1,000 of each, and does not import historical refunds. Custom Stripe PaymentIntents outside the supported Checkout and Billing paths are not covered by that native flow. The individual integration pages explain the differences.

Where to find itDashboard → Follow the money → channel filters and revenue summary

Find this timeline below the four revenue cards. The overview keeps the whole graph, its legend and axes visible; the outlined controls and summary are enlarged below.

Select the overview to open the full screenshot.

Enlarged detail of the outlined area

Example: use the filters above Follow the money to narrow the graph, then read sales, refunds and net for that same chart selection.
  1. Filter the chart

    Use Paid ads or AI search for a quick comparison. Channel and Source above provide more choices. These controls filter the chart; the cards above retain the wider reporting view.

  2. Read refunds with sales

    The summary row shows sales, refund deductions and net for the selected chart. A zero refund amount means none are recorded in that view; it does not prove that the provider has never issued one.

Start tracking your revenue free

Use Paid ads or AI search for a quick chart comparison, or select a specific source. Keep the chart's filter scope separate from the overall cards above it. To inspect individual rows, use the standalone revenue report and its date controls. A change in credit can reflect a different filter or model as well as a change in recorded business activity.

Plan the next step for your sales process

Use this planner to turn the setup choices into a short task list. Choose what you have actually checked. If your business sells through a salesperson and collects payment later, keep both stages in view. Attriboo's booked-deal CSV ledger is separate from attributed payment revenue; importing a won deal does not manufacture an earlier website journey.

Audit gaps before making a budget decision

Keep a small reconciliation sheet with the payment identifier, expected status, observed match and the next action. Avoid copying customer details into campaign URLs or shared screenshots. Give the person investigating enough information to locate an authorized record in the relevant system.

  • Payment missing: check the supported event type, connection and reporting dates against the provider.
  • Visit missing: check the published script, website selection and permitted tracking coverage. A payment import cannot recreate an unrecorded visit.
  • Visit exists but source is unclear: inspect the original campaign link and available referrer. Direct traffic and an unmatched payment need different checks.
  • Totals differ: compare currencies, time boundaries, refunds, renewals and attribution rules. Do not add amounts in different currencies as if they were one total.

AI traffic needs the same discipline. A crawler request, a human referral from an AI service and a payment associated with a recorded journey are separate observations. Crawl tracking can help you inspect the first signal. A crawler hit alone does not establish that an AI answer cited your page or caused a purchase.

What should you check before choosing revenue-attribution software?

Evaluate the task you need to complete. Ask whether the tool supports your actual checkout, provides the history you need, keeps unmatched payments visible and lets you reconcile refunds. Check the billing unit and what your expected usage costs. A long integration list is less useful than one connection that handles your real buying path.

Try a known journey and review its records with the person responsible for payments. Include a refund or renewal where the supported test flow allows it. Then decide how you want to use the report: directly in the dashboard, through the API in an existing workflow, or through a compatible assistant using MCP. API access needs a maintained integration; an assistant's explanation still depends on the underlying records.

Start with one useful question and repeat the same review. For example: which recorded sources brought payments this month, what remains unmatched, and what should we test next? When costs and margin enter that decision, calculate ROAS and ROI using an agreed cost basis. Revenue credit is an input to the decision, not the entire business case.

Common questions

How is revenue attribution different from conversion tracking?

Conversion tracking records an action, such as a purchase or successful enquiry. Revenue attribution connects a revenue outcome to recorded marketing touches and assigns credit under a model. A business can record purchases correctly while still lacking the visit or source connection needed to explain where those payments came from.

Can revenue attribution show every marketing touch?

No. Offline conversations, different devices, restricted tracking and missing referrers can leave gaps. Report the interactions actually recorded and matched. Keep an optional customer discovery question separate from observed click history, and do not fill missing touches with assumptions.

How should refunds and subscription renewals appear?

Keep each supported refund linked to its payment and review renewals under the tool's documented rules. Check whether the report uses the payment date, refund date or another reporting basis. Import coverage differs by provider, so reconcile a known example before using historical net revenue in a budget report.

Do I need Google Analytics to use Attriboo?

No. Attriboo uses its own website script and supported payment connections. If you already use GA4, its ecommerce reports can be a complementary check. Compare definitions and collected records before expecting totals to agree; adding a second analytics product does not repair missing instrumentation by itself.

Does a won CRM deal count as collected revenue?

A won deal usually represents an agreed commercial outcome in the CRM. Payment may arrive later, in installments, or not at all. Use the invoice or payment system to establish collected cash, and reconcile it with the deal. Keep Attriboo's optional booked-deal ledger separate from payment revenue.

Which attribution model should a small business start with?

Choose a model that matches the question and apply it consistently. First-Touch asks about the first recorded source, Last-Touch about the last, and Linear shares credit across recorded touches. Compare views to understand sensitivity. No one model proves which activity caused the sale.

Jay Kang, founder of Attriboo
Written by Jay Kang

Ten years in SEO, building products and helping clients connect marketing work to business results. Founder of Attriboo.

Get to know Jay · Follow on LinkedIn