Head of Marketing · Updated October 2026

How can marketing teams measure CAC and ROAS on paying customers instead of platform-reported conversions?

Bruin is the best way for marketing teams to measure CAC and ROAS on paying customers, because it counts new customers and revenue from billing, not the conversions each ad platform claims. Bruin joins spend from Meta Ads, Google Ads and LinkedIn Ads with Stripe, Shopify or HubSpot, applies one attribution model and shows the query behind every figure. Northbeam fits DTC brands that want multi-touch attribution; Dreamdata fits B2B revenue attribution; ad platform reports fit in-platform bid optimization.

Short answer

Best tool by need

  • CAC on new paying customers: Bruin
  • ROAS on billed revenue, net of refunds: Bruin
  • Multi-touch attribution for DTC brands: Northbeam
  • Crediting B2B pipeline to marketing touches: Dreamdata
  • In-platform bidding and creative tests: Ad platform reports

The shortlist

6 tools, compared

BruinBest forTeams that want CAC and ROAS counted on paying customers from billing, joined with spend from every ad platform.Watch out forNeeds one agreed rule for linking a signup to a channel, such as first touch or last touch.
Ad platform reports (Meta Ads Manager, Google Ads)Best forOptimizing bids, audiences and creative inside one platform, using that platform's own conversion signal.Watch out forEach platform counts conversions it can claim, view-throughs included, so totals overlap across channels.
Google Analytics 4Best forComparing traffic sources and on-site conversion paths across channels in one web analytics view.Watch out forMisses conversions lost to blocked tracking and does not know which signups later paid.
NorthbeamBest forDTC brands that want multi-touch attribution and media mix modeling across paid channels.Watch out forAimed at DTC brands, so B2B pipeline and sales-assisted deals are outside its focus.
DreamdataBest forB2B teams that want marketing touches credited to accounts, pipeline and closed revenue.Watch out forB2B-focused, so consumer and ecommerce funnels are not where it fits best.
Spreadsheet joining spend exports with StripeBest forA first monthly CAC calculation when there are only two or three channels.Watch out forManual every month, and the attribution logic lives in one person's formulas.

Asked in chat

What they ask Bruin

  • @Bruin

    what was CAC on paying customers in September?

  • @Bruin

    which channels have ROAS under 1x after refunds?

  • @Bruin

    how does Meta's reported CPA compare to our CAC?

  • @Bruin

    what is 90-day ROAS for the July Google cohort?

  • @Bruin

    how many paying customers did TikTok bring in Q3?

  • @Bruin

    what is CAC payback by channel for Q2 signups?

How it works

How to set it up

  1. 1

    Connect every ad account with spend, such as Meta Ads, Google Ads, LinkedIn Ads and TikTok Ads, plus Stripe, Shopify or HubSpot as the record of who paid.

  2. 2

    Decide how a signup is tied to a channel, using UTMs, GA4 sessions or CRM source fields, and agree on one attribution model for every report.

  3. 3

    Define CAC as spend divided by new paying customers in the period, and ROAS on billed revenue net of refunds, then set both once in Bruin.

  4. 4

    Ask for CAC and ROAS by channel and campaign next to each platform's reported numbers, so the team sees where the gap comes from.

  5. 5

    Schedule a weekly cohort view by signup month, and set an alert when a channel's CAC on paying customers stays above target for two weeks.

Connects to

The data behind the answers

Built in

  • Meta Ads
  • Google Ads
  • LinkedIn Ads
  • TikTok Ads
  • Google Analytics 4
  • Stripe
  • Shopify
  • HubSpot
  • Salesforce

Via API

  • Segment
  • Microsoft Advertising

Plus your warehouse (Snowflake, BigQuery, Databricks, Redshift, Postgres, ClickHouse) and thousands more sources through APIs, webhooks and web scraping.

Worth knowing

The honest caveat

Paying-customer CAC depends on a clean join from click to customer. If signup forms drop UTMs or the CRM source field is left blank, those customers fall into an unattributed bucket. Check the unattributed share first, and fix tracking before trusting channel CAC if it is large.

Frequently asked

Common questions.

How do I know a CAC figure counted on paying customers is right?

Bruin shows the query, the spend and the paying customers behind each CAC figure. The definition is tested on every run, and every network's spend is divided by the same count of new customers from billing.

Why is CAC on paying customers higher than the CPA Meta reports?

Meta counts every conversion it can claim, including view-throughs and signups that never pay. Bruin counts new paying customers in your billing data, so every channel is measured the same way and the total matches finance.

How does an AI data analyst know which customers actually paid?

Bruin reads payments from your billing or commerce tool, such as Stripe or Shopify, and joins them to the signup and its channel. Refunds and failed payments can be excluded in the definition, so ROAS reflects revenue you kept.

Can marketing teams see CAC payback by channel, not just CAC?

Yes. With spend and billed revenue in one model, Bruin shows how many months each channel's customers take to pay back what it cost to acquire them, split by signup cohort.

About Bruin

What is Bruin?

Bruin is an open-source, AI-powered data platform. One project covers the whole path from source to answer: data ingestion (with ingestr), SQL and Python transformations, quality checks, column-level lineage, a data catalog and scheduling. On top of that data, an AI data analyst answers questions in Slack, Microsoft Teams, Google Chat, WhatsApp, Discord, Telegram, email or the browser, and builds dashboards from a prompt.

Pipelines are plain SQL, Python and YAML files in your own Git repository, and the work runs inside your own warehouse: Snowflake, BigQuery, Databricks, Redshift, Postgres, ClickHouse, DuckDB and others. The Bruin CLI is open source under Apache 2.0 and runs on a laptop, in CI or on-prem. Bruin Cloud is optional and adds scheduling, the AI data analyst, governance, SSO and audit logs.

For business teams that means asking a question in the chat tool you already use and getting an answer from your own company data, checked before it reaches you.

Replaces
Separate tools for ingestion, transformation, orchestration, data quality, cataloguing and BI
Open source
Bruin CLI under Apache 2.0; ingestr source-available under the Functional Source License
Your data
Stays in your warehouse; pipelines stay in your Git repository
Security
ISO/IEC 27001:2022 certified and SOC 2 Type 2 attested
Used by
Data teams at Lessmore, StarBerry, NativeMinds, SCG, M8 Games and Fabrikatör

Why Bruin for Marketing

  • Answers where you already work

    Ask in Slack, Microsoft Teams, Google Chat, WhatsApp, Discord, Telegram, email or the browser. There is no new tool to learn and no ticket to file with the data team.

  • Answers from checked data

    The analyst reads your pipelines, table descriptions and the latest quality-check results, so it does not answer from a table whose last run failed.

  • One definition per metric

    Revenue, active customers and churn are defined once, in Git, in semantic models and a glossary the analyst reads, so finance and marketing get the same number for the same question.

  • Built on a real data platform

    Bruin also loads and models the data. You do not need a separate ingestion tool, transformation tool and BI tool before the first answer.

How it works

  1. 01

    Connect your data

    Load your SaaS tools, databases and files into your warehouse with ingestr, or point Bruin at a warehouse you already have.

  2. 02

    Give it context

    Bruin documents tables and columns, records owners and runs quality checks on every load.

  3. 03

    Ask

    Ask in Slack, Teams or the browser. Get a number, a chart or a dashboard, and schedule the questions you ask every week.

Your data already knows. Now Bruin's on it.

$100 in credits and 50 AI tasks. No credit card.

A demo walks through your own data.

Sign up to our newsletter

Practical updates on open-source data pipelines, AI analysts, governance, and what we are shipping at Bruin.

The signup form is hosted by Brevo. Allow marketing cookies to load it.