Skip to content
All case studies
B2B SaaS Marketing attribution ABM

Which marketing actually moved pipeline

Marketing's OKRs were vague and its impact unprovable. Built the account-based attribution model that ties campaigns to pipeline and reports reach, engagement and penetration on agreed definitions.

3

ABM metrics, each on one agreed definition

1

model: campaign → account → pipeline

T1-3

target-account coverage, tracked all year

Influenced

pipeline marketing is now judged on

The client

A B2B SaaS company running account-based marketing to a defined list of target accounts across several business units and regions.

The problem

Marketing's OKRs were vague. "Reach 60% of target accounts" had no agreed definition - reach by what, over what window, counted how, matched how? And nobody could show which campaigns moved pipeline, so spend was defended with activity while outcomes stayed invisible.

How it ran

Definitions first, then a model that ties every campaign back to a target account and a deal.

Step 1

Pin the definitions

Turned each fuzzy OKR into one precise rule: what counts as a touch, the lookback window, multi-channel de-duplication, account matching.

Step 2

Target-account spine

A clean tiered account list from the CRM (tier, business unit, region), de-duplicated and stripped of deleted records.

Step 3

Touch model

Campaign members → contacts → accounts, so any account's reach is one auditable yes/no for the year.

Step 4

Engagement & depth

Layers for engagement and penetration - how deep a touch goes, and the share of an account's contacts reached.

Step 5

Campaign → pipeline

Campaign-to-opportunity attribution, so each campaign's influenced pipeline is visible under one consistent rule.

Step 6

KPI pack

A governed explore plus the ABM metrics in the monthly KPI pack - reported the same way every month.

What I did

  • 01.Ran a definition pass with marketing - turned each fuzzy OKR into one precise rule: what counts as a touch, the lookback window, how multi-channel touches de-duplicate, how accounts are matched.
  • 02.Built the target-account spine from the CRM (tiered list, business unit, region), cleaned of deleted and duplicate records.
  • 03.Modelled marketing touches: campaign members → contacts → accounts, so any account's reach is one auditable yes/no for the fiscal year.
  • 04.Added engagement and penetration layers - depth of touch and the share of an account's contacts engaged.
  • 05.Built campaign → opportunity attribution so each campaign's influenced pipeline is visible under one consistent rule.
  • 06.Solved the messy account-matching - event attendee lists and free-text company names mapped back to the right target account.
  • 07.Exposed it as a governed BI explore so marketing can slice reach, engagement and influenced pipeline by tier, business unit and region without re-deriving anything.
  • 08.Put the ABM metrics into the monthly KPI pack on the agreed definitions, so the OKR is reported the same way every month.

InteractiveSwitch the model

Same campaigns - whose pipeline is it?

Sample pipeline, illustrative only

Result

What marketing and the board got out of it.

OKRs that mean one thing

Reach, engagement and penetration each have a single written definition. The monthly number is computed the same way every time, so the target is real.

Spend judged on pipeline

Every campaign now shows its influenced pipeline into target accounts. Budget conversations moved from activity counts to deals touched.

Self-serve by tier & BU

Marketing slices reach and influenced pipeline by tier, business unit and region in the BI tool, with the matching logic handled once underneath.

Account-matching solved once

The hard part - mapping event lists and free-text company names back to target accounts - is handled in the model, so every report inherits it.

Tools used

BigQuery SQL Looker Salesforce Fivetran

A similar problem in your stack?

Send me the rough shape of it. I'll figure out scope on a 30-min call.

Book a call