Anshruta Thakur
← All work

Which campaigns actually produced revenue?

The Salesforce and Power BI logic that ties inconsistent campaign records to signed fee, so leadership can compare channels on one definition of revenue.

Role

Sole data scientist

Company

ABGi USA

Stack

Salesforce · SQL · Power BI

Status

In production

01 — Problem

Nobody could connect spend to signed revenue.

Marketing ran email, conferences, and paid search. Sales closed clients. Both sides reported diligently, and neither report could answer the only question that mattered at budget time: which of those activities produced signed fee?

Campaign platforms knew about sends, clicks, and booth scans. Salesforce knew about accounts, opportunities, and closed-won revenue. Nothing joined the two, so channel budgets were argued from conviction rather than evidence.

Marketing performance was visible in pieces, but there was no consistent way to connect campaigns to downstream revenue.

02 — Messy data

The join was the hard part.

03 — Approach

Map campaigns to one definition, then connect them to fee.

04 — Architecture

How it fits together.

Email platform Event badge lists Paid search Salesforce Campaign mapping tags → one definition Account & opportunity signed fee, close date Marketing activity campaign · account · date Attribution logic influenced pipeline · fee Semantic model Power BI Executive report ROAS by channel
The mapping layer turns inconsistent campaign records into one comparable definition; everything downstream is a measure built on it.

05 — The report

What leadership actually opens.

A recreation of the production report, rebuilt with synthetic numbers and the same structure. Switch pages, filter by channel, and note that the Events view is deliberately different — conference spend behaves differently from everything else.

marketing-performancesynthetic data

Spend, YTD

$106K

Signed fee, YTD

$1.09M

Blended ROAS

10.3×

signed fee ÷ spend

Engaged → client

4.3%

of accounts engaged

Monthly spend vs signed fee
JanFebMarAprMayJun
spend signed fee
ROAS by channel
Conversion funnel
Monthly spend vs signed fee — trend
spend ($K) signed fee ($K)

06 — Outcome

Budget conversations changed shape.

[N]

campaigns mapped to one consistent definition

3

channels compared on the same revenue definition

5

events tracked individually, misses kept visible

No single headline number carries the project. What changed is that a claim like “email returned more per dollar than paid search” became something the report could settle, rather than something argued from conviction.

07 — Lessons

What I'd tell myself at the start.

Reconciling the definitions took most of the time. I budgeted for analysis and spent the bulk of it deciding how to map every campaign onto one consistent list; every later number depends on that step.

Next project

The revenue & invoicing engine

Read the case study →