# Marketing Measurement Plan: [Organisation or product], [Period]

> The agreed way a marketing team measures what its spend and work
> achieve: the KPI tree from business outcome down to channel metrics,
> metric definitions, the data sources, how credit is assigned
> (attribution), how true causal lift is tested (incrementality
> experiments), how budgets are modelled across channels (marketing mix
> modelling), the UTM naming convention, privacy and consent rules,
> reporting and the decisions each number drives. Based on common
> marketing analytics practice, with privacy checks that cite EU, UK and
> US rules as dated examples. Replace every `[bracketed]` value and every
> row marked *Example*. This is a documentation format, not legal advice:
> check the current official text and ask a qualified professional.

<!--
Guidance: How to use this template
- Start with section 1 (decisions). A measurement plan exists to change
  budget and creative decisions; a metric that informs no decision is
  reporting overhead.
- Fill the KPI tree (section 2) and the definitions (section 3) before
  any dashboard is built. Dashboards built first freeze bad definitions.
- Use three methods together (section 5): attribution for fast in-flight
  steering, experiments for causal truth, and marketing mix modelling for
  annual and quarterly budget splits. Each method checks the others.
- Common pitfall: treating platform-reported conversions as incremental.
  Platforms count conversions they touched, many of which would have
  happened anyway. Section 6 shows how to measure the gap.
- The worked example is Larkspan, a fictional business-to-business
  software company that sells accounts-payable automation to mid-sized
  firms. All of its figures are invented.
-->

## Document control

<!-- Guidance: One plan per organisation or product line per planning year. Name the analytics owner who can change definitions; everyone else proposes changes through section 12. -->

| Field | Value |
|---|---|
| Document ID | [MMP-YYYY-01] |
| Organisation or product | [Name] |
| Planning period | [YYYY or YYYY-H1] |
| Version | [0.1] |
| Status | [Draft / Approved / Superseded] |
| Owner | [@marketing-analytics-lead] |
| Approvers | [@cmo], [@finance-partner], [@privacy-lead] |
| Reviewers | [@growth-lead], [@data-engineering] |
| Last updated | YYYY-MM-DD |
| Next review | YYYY-MM-DD |
| Classification | [Internal] |
| Related plans | `marketing/marketing-plan`, `data/analytics-tracking-plan` |

### Approvals

| Role | Name | Decision | Date |
|---|---|---|---|
| Plan owner | [@owner] | [Approved] | YYYY-MM-DD |
| Finance partner (budget and ROI method) | [@finance] | [Approved / Changes] | YYYY-MM-DD |
| Privacy lead (section 9) | [@privacy] | [Approved / Changes] | YYYY-MM-DD |

### Revision history

| Version | Date | Author | Change |
|---|---|---|---|
| 0.1 | YYYY-MM-DD | [@owner] | First draft |
| [0.2] *(Example)* | YYYY-MM-DD | [@owner] | Added geo holdout EXP-02 and changed MQL definition (see CHG-001) |

## Contents

1. Decisions this plan supports
2. KPI tree
3. Metric definitions
4. Data sources and ownership
5. Measurement methods and how they fit
6. Incrementality experiments
7. Marketing mix modelling
8. Attribution and UTM conventions
9. Privacy, consent and data minimisation
10. Reporting cadence and audiences
11. Decision rules and guardrails
12. Change control and data quality
13. Glossary and references

## 1. Decisions this plan supports

<!-- Guidance: List the recurring decisions marketing and finance make, how often, and which evidence settles them. Questions to answer: who decides, by when, and what number would change the decision? Pitfall: a long list of metrics with no decision attached. -->

| Decision ID | Decision | Owner | Frequency | Evidence used | Method (section 5) |
|---|---|---|---|---|---|
| DEC-01 *(Example)* | Split next year's paid budget across channels | [@cmo] with [@finance] | Annual, revisited each quarter | Channel ROI and saturation curves | MMM, calibrated by experiments |
| DEC-02 *(Example)* | Pause, keep or scale a campaign in flight | [@growth-lead] | Weekly | Cost per qualified pipeline, trend against target | Attribution, with incrementality factor |
| DEC-03 *(Example)* | Decide whether a channel adds sales we would not otherwise get | [@growth-lead] | Twice a year per major channel | Lift and incremental cost per acquisition | Holdout or geo experiment |
| DEC-04 *(Example)* | Choose between two landing page or email variants | [@lifecycle] | Per test | Conversion rate difference with confidence interval | A/B test (`product/ab-test-plan`) |
| [DEC-05] | [decision] | [@owner] | [frequency] | [evidence] | [method] |

Out of scope: [*Example:* sales rep performance measurement, which is
covered by the sales operations plan; product analytics for retention,
covered by `data/analytics-tracking-plan`].

## 2. KPI tree

<!-- Guidance: Draw the chain from one business outcome to the metrics a channel team can move. Every KPI in later sections must sit on this tree. Pitfall: picking a top metric marketing cannot influence within the planning period. -->

The top of the tree is a business outcome finance already reports. Each
level below explains the level above as a product or sum, so a change
at the top can be traced to a cause lower down.

```mermaid
flowchart TD
  A["New annual recurring revenue (ARR)"] --> B[Closed-won deals]
  A --> C[Average contract value]
  B --> D[Sales-qualified opportunities]
  B --> E[Win rate]
  D --> F[Marketing-qualified leads]
  D --> G[Lead-to-opportunity rate]
  F --> H[Paid search leads]
  F --> I[Paid social leads]
  F --> J[Organic and referral leads]
  F --> K[Event and webinar leads]
```

| KPI ID | KPI | Level | Owner | Target for period | Linked decision |
|---|---|---|---|---|---|
| KPI-01 *(Example)* | Marketing-sourced new ARR | Outcome | [@cmo] | $2.4M | DEC-01 |
| KPI-02 *(Example)* | Sales-qualified opportunities (SQOs) from marketing | Pipeline | [@demand-gen] | 480 | DEC-01, DEC-02 |
| KPI-03 *(Example)* | Cost per SQO, paid channels | Efficiency | [@growth-lead] | Under $1,100 | DEC-02 |
| KPI-04 *(Example)* | Incremental cost per acquisition, paid social | Causal efficiency | [@growth-lead] | Under $180 per incremental demo request | DEC-03 |
| KPI-05 *(Example)* | Branded search volume | Brand health | [@brand] | Up 15% on prior year | DEC-01 |
| [KPI-06] | [KPI] | [level] | [@owner] | [target] | [DEC-ID] |

Keep the tree to roughly ten nodes. If the team needs more, the extra
metrics are diagnostics: they live on a dashboard tab, not in targets.

## 3. Metric definitions

<!-- Guidance: Define each KPI once, precisely enough that two analysts get the same number. State the formula, inclusions and exclusions, time window and source. For complex metrics, use `data/metric-definition` and link it here. Pitfall: "lead" meaning different things to marketing and sales. -->

| Metric | Formula | Includes | Excludes | Window | Source of truth |
|---|---|---|---|---|---|
| MQL *(Example)* | Count of contacts reaching lead score 60 or a hand-raise action | Demo requests, pricing contact forms, score 60 or above | Students, competitors, existing customers, personal email domains | Calendar month of qualification | CRM |
| SQO *(Example)* | Count of opportunities accepted by sales at stage 1 with a sourced-by-marketing flag | First-touch or self-reported marketing source | Partner-sourced, expansion deals | Month of acceptance | CRM |
| Cost per SQO *(Example)* | Paid media spend / SQOs from paid channels | Media spend, agency fees on media | Salaries, tooling | Month, with 60-day lag view | Finance ledger, CRM |
| Incremental CPA *(Example)* | Test spend / incremental conversions from a controlled experiment | Conversions above the control group rate | Conversions the control would also have made | Test period | Experiment readout |
| Pipeline velocity *(Example)* | (SQOs x win rate x average contract value) / sales cycle days | Marketing-sourced SQOs | Expansion | Rolling 90 days | CRM |
| [metric] | [formula] | [includes] | [excludes] | [window] | [source] |

Lag matters in business-to-business sales. *Example:* Larkspan's median
time from first click to closed deal is 74 days, so a month's spend is
judged on SQOs at 60 days and on ARR at 120 days, never on the same
month's revenue.

## 4. Data sources and ownership

<!-- Guidance: List every system that feeds a KPI, who owns its data quality, how fresh it is and how it joins to the others. Pitfall: two systems both claiming to be the source of truth for revenue. -->

| Source ID | System | Data | Owner | Freshness | Join key | Notes |
|---|---|---|---|---|---|---|
| SRC-01 *(Example)* | CRM | Leads, opportunities, revenue | [@revops] | Hourly | Opportunity ID, account ID | Source of truth for pipeline and ARR |
| SRC-02 *(Example)* | Ad platforms (search, social) | Spend, impressions, clicks, platform conversions | [@growth] | Daily | Campaign ID via UTM | Platform conversions are not incremental |
| SRC-03 *(Example)* | Web analytics | Sessions, landing pages, form starts | [@analytics] | Daily | Session UTM | Consent-dependent coverage (section 9) |
| SRC-04 *(Example)* | Finance ledger | Invoiced media and agency costs | [@finance] | Monthly close | Cost centre, campaign code | Source of truth for spend |
| SRC-05 *(Example)* | Self-reported attribution field | "How did you hear about us?" on demo form | [@demand-gen] | Real time | Lead ID | Captures podcasts, word of mouth, communities |
| [SRC-06] | [system] | [data] | [@owner] | [freshness] | [key] | [notes] |

Event naming, properties and consent flags for the website follow
`data/analytics-tracking-plan`. Shared business terms (MQL, SQO, ARR)
are recorded once in the data team's `data/business-glossary`.

## 5. Measurement methods and how they fit

<!-- Guidance: Say which method answers which question, and how the methods calibrate each other. Pitfall: arguing about which single method is "right"; each answers a different question. -->

| Method | Question it answers | Speed | Strength | Weakness | Used for |
|---|---|---|---|---|---|
| Attribution (rules-based or data-driven) | Which touchpoints were on the path to conversion? | Daily | Granular, fast, campaign-level | Correlational; misses offline and non-clickable media; reduced by consent gaps | DEC-02 |
| Incrementality experiment (holdout, geo, A/B) | How many conversions did this cause? | Weeks per test | Causal; the ground truth for calibration | One channel at a time; needs volume; costs some sales in the holdout | DEC-03, DEC-04 |
| Marketing mix modelling (MMM) | How should the total budget be split across channels? | Quarterly refresh | Covers all channels and offline factors; no user-level data needed | Needs two or more years of weekly data; wide uncertainty; correlational unless calibrated | DEC-01 |
| Self-reported attribution | Where do buyers say they heard of us? | Real time | Captures dark social and word of mouth | Recall bias; free text needs coding | Sense-check for all three |

How they fit, in one loop: experiments measure true lift for a channel,
the lift calibrates both the attribution model (as an incrementality
factor) and the MMM (as a prior or a constraint), and the calibrated MMM
sets next quarter's budget, which attribution then steers week by week.

```mermaid
flowchart LR
  E[Incrementality experiments] -->|incrementality factor| A[Attribution reporting]
  E -->|lift as prior or constraint| M[Marketing mix model]
  M -->|channel budget split| B[Quarterly budget]
  B --> A
  A -->|in-flight optimisation| C[Campaigns]
  C --> E
```

## 6. Incrementality experiments

<!-- Guidance: Plan each test before it starts: hypothesis, design, primary metric, sample size or minimum detectable effect, duration and decision rule. Write the decision rule first so the result cannot be argued away. For statistics detail see `mba/mba-marketing-experiments-card` and `product/ab-test-plan`. -->

### 6.1 Experiment register

| Exp ID | Channel | Hypothesis | Design | Primary metric | Duration | Decision rule | Status |
|---|---|---|---|---|---|---|---|
| EXP-01 *(Example)* | Paid social prospecting | Paid social causes demo requests beyond those that would happen without it | Audience holdout: 10% of the eligible audience randomly excluded from ads | Demo request rate | 6 weeks | Keep spend if incremental CPA is under $180 and the 95% interval excludes zero lift | Complete |
| EXP-02 *(Example)* | Branded search | Branded search ads add clicks beyond organic results | Geo test: ads off in matched regions | Demo requests per region | 4 weeks | Cut branded bids by half if incremental demos are under 10% of paid clicks | Planned |
| [EXP-03] | [channel] | [hypothesis] | [design] | [metric] | [weeks] | [rule] | [status] |

### 6.2 Worked readout: EXP-01 *(Example)*

| Group | Audience | Demo requests | Rate |
|---|---|---|---|
| Exposed (treatment) | 180,000 | 2,160 | 1.20% |
| Holdout (control) | 20,000 | 200 | 1.00% |

- **Absolute lift:** 1.20% minus 1.00% = 0.20 percentage points.
- **Relative lift:** 0.20 / 1.00 = 20%.
- **Incremental demo requests:** 0.20% x 180,000 = 360.
- **Uncertainty:** the 95% confidence interval for the absolute lift is
  about 0.05 to 0.35 percentage points (unpooled standard error, z about
  2.67), so incremental demos lie between about 96 and 624.
- **Spend in the test window:** $54,000, so incremental CPA is
  $54,000 / 360 = **$150**, inside the $180 rule. Decision: keep spend.
- **Platform comparison:** the ad platform reported 900 conversions,
  a platform CPA of $60. The incrementality factor is 360 / 900 =
  **0.40**: for steering in section 8, multiply platform-reported paid
  social conversions by 0.40 until the next test.

Design checks before launch:

- [ ] Randomisation unit fixed (user, account or region) and the holdout cannot see the ads through other campaigns.
- [ ] Minimum detectable effect and sample size computed from the baseline rate.
- [ ] No other major change (pricing, launch) planned for the test window, or it affects both groups equally.
- [ ] Primary metric and decision rule frozen in this register before launch.
- [ ] Cost of the holdout (lost sales) agreed with the budget owner.

## 7. Marketing mix modelling

<!-- Guidance: Record the model scope, data, the transformations used (adstock for carry-over, saturation for diminishing returns), how it is calibrated and how uncertainty is reported. The theory sits in `mba/mba-marketing-mix-modeling-card`. Pitfall: presenting point ROI estimates as precise when intervals overlap. -->

| Item | Choice |
|---|---|
| Outcome variable | [*Example:* weekly marketing-sourced SQOs, also run on new ARR] |
| Granularity and history | [*Example:* weekly, 156 weeks (three years)] |
| Channels modelled | [*Example:* paid search, paid social, display, email, events, organic as baseline] |
| Control variables | [*Example:* seasonality, price change in week 88, competitor launch, sales headcount] |
| Carry-over and saturation | [*Example:* geometric adstock per channel; Hill saturation curve] |
| Calibration | [*Example:* EXP-01 lift used as a prior for paid social] |
| Tool | [*Example:* open-source Bayesian MMM library, version pinned in the repository] |
| Refresh | [*Example:* quarterly, before DEC-01 review] |
| Validation | [*Example:* holdout of the last 12 weeks, error reported; coefficients sense-checked against experiments] |

Channel results *(Example, last 12 months)*:

| Channel | Spend | Modelled incremental revenue | ROI (revenue / spend) | Read |
|---|---|---|---|---|
| Paid search | $120,000 | $300,000 | 2.5 | Near saturation above $12,000 per week |
| Paid social | $80,000 | $136,000 | 1.7 | Room to grow; consistent with EXP-01 |
| Display | $40,000 | $36,000 | 0.9 | Returns less than spend; test before cutting |
| Email | $10,000 | $65,000 | 6.5 | Limited by list size, not budget |
| **Total** | **$250,000** | **$537,000** | **2.1** | |

Report each ROI with its interval from the model, and act on a
difference only when intervals do not overlap or an experiment confirms
it. Marginal ROI (the return on the next dollar) guides reallocation,
not average ROI: paid search has the higher average but is near
saturation, so the next dollar may earn more in paid social.

## 8. Attribution and UTM conventions

<!-- Guidance: State the attribution model used for steering, its known biases, and the UTM rules that keep campaign data joinable. Pitfall: free-text UTM values that split one campaign into many rows. -->

### 8.1 Attribution model

- **Model used for steering:** [*Example:* position-based (40% first
  touch, 40% lead creation touch, 20% spread across the middle) for
  pipeline, last non-direct click for web conversion rate tests].
- **Lookback window:** [*Example:* 90 days before lead creation].
- **Adjustments:** [*Example:* paid social conversions multiplied by
  the EXP-01 incrementality factor of 0.40 in the weekly report].
- **Known gaps:** [*Example:* users who decline analytics cookies are
  not in path data; podcast and community influence is only visible
  in self-reported attribution].

### 8.2 UTM convention

| Parameter | Rule | Allowed values *(Example)* |
|---|---|---|
| `utm_source` | Platform or publisher, lower case | `google`, `linkedin`, `newsletter`, `partner-name` |
| `utm_medium` | Channel type from a fixed list | `cpc`, `paid-social`, `email`, `display`, `referral`, `event` |
| `utm_campaign` | Campaign code from the campaign register: year, quarter, short name | `2026q4-ap-automation-launch` |
| `utm_content` | Creative or link variant | `video-a`, `cta-footer` |
| `utm_term` | Paid search keyword group only | `ap-automation` |

Rules: lower case only, hyphens not spaces, no personal data (never an
email address or user ID in a URL), one campaign code per campaign
brief (`marketing/campaign-brief`), and a link builder or spreadsheet
that validates values against the lists above.

Example link *(Example)*:
`https://example.com/demo?utm_source=linkedin&utm_medium=paid-social&utm_campaign=2026q4-ap-automation-launch&utm_content=video-a`

## 9. Privacy, consent and data minimisation

<!-- Guidance: Measurement depends on data about people. Answer these questions with the privacy lead before tags go live, record the date you checked, and design reporting to work with partial data. These are questions, not legal conclusions. -->

| Question | Example rules to check (as of October 2026) | Answer |
|---|---|---|
| Do analytics or ad tags store or read information on the device before the visitor consents? | EU Directive 2002/58/EC Article 5(3); UK PECR regulation 6 (ICO guidance; the Data (Use and Access) Act 2025 amends PECR, so check which changes are in force) | [answer] |
| Do we honour browser opt-out preference signals such as Global Privacy Control for sale or sharing of personal information? | California CCPA and its regulations (the California Attorney General states GPC must be honoured as a valid opt-out request) | [answer] |
| Is the lawful basis for each processing purpose recorded, including uploading customer lists to ad platforms? | EU and UK GDPR Article 6; record in `compliance/gdpr-ropa` | [answer] |
| Do measurement reports use aggregated data wherever user-level data is not needed? | Data minimisation, GDPR Article 5(1)(c) | [answer] |
| How long are raw event and click-level data kept? | Retention schedule in `data/data-retention-deletion-standard` | [answer] |

Design for consent gaps: [*Example:* report the consent rate weekly,
present web conversion metrics as "consented sessions only", and rely on
CRM outcomes, experiments and MMM, which do not need cookie-level data,
for budget decisions].

Last checked: [YYYY-MM-DD], by [@privacy-lead].

## 10. Reporting cadence and audiences

<!-- Guidance: Match each report to the decision it feeds (section 1). Fewer, decision-linked reports beat many dashboards. -->

| Report | Audience | Cadence | Contents | Feeds decision | Owner |
|---|---|---|---|---|---|
| Weekly channel pulse *(Example)* | Growth team | Weekly | Spend, cost per SQO, factor-adjusted conversions, anomalies | DEC-02 | [@growth-analyst] |
| Monthly marketing review *(Example)* | CMO, sales leadership | Monthly | KPI tree status, pipeline at 60 days, experiment results | DEC-02, DEC-03 | [@analytics-lead] |
| Quarterly budget review *(Example)* | CMO, finance | Quarterly | MMM refresh, ROI intervals, reallocation proposal | DEC-01 | [@analytics-lead] |
| [report] | [audience] | [cadence] | [contents] | [DEC-ID] | [@owner] |

Dashboard specifications follow `data/dashboard-specification`.

## 11. Decision rules and guardrails

<!-- Guidance: Pre-agree what happens when numbers move, so reviews spend time on causes rather than on whether to act. -->

| Rule ID | Trigger | Action | Approver |
|---|---|---|---|
| RULE-01 *(Example)* | Cost per SQO above target for 3 consecutive weeks on a channel | Cut that channel's weekly budget by 20% and review creative | [@growth-lead] |
| RULE-02 *(Example)* | Experiment shows incremental CPA above the threshold with interval excluding the threshold | Reduce channel to maintenance spend; retest in 6 months | [@cmo] |
| RULE-03 *(Example)* | MMM marginal ROI for a channel exceeds another by more than its interval width | Move up to 10% of budget per quarter toward it | [@cmo], [@finance] |
| RULE-04 *(Example)* | Consent rate drops more than 10 points week on week | Check the consent banner and tags before reading web metrics | [@analytics-lead] |
| [RULE-05] | [trigger] | [action] | [@approver] |

Guardrail metrics that must not get worse while optimising for the
target: [*Example:* SQO-to-win rate, unsubscribe rate, brand search
volume].

## 12. Change control and data quality

<!-- Guidance: Definitions change; record why, when and the effect on trend lines. Add data quality checks that run before numbers are published. -->

| Change ID | Date | Change | Reason | Effect on history | Approved by |
|---|---|---|---|---|---|
| CHG-001 *(Example)* | YYYY-MM-DD | MQL score threshold changed from 50 to 60 | Sales rejected 38% of MQLs at 50 | Prior months restated at 60 for trend charts | [@cmo], [@sales-lead] |
| [CHG-002] | YYYY-MM-DD | [change] | [reason] | [effect] | [@approver] |

Data quality checks before publication:

- [ ] Spend in ad platforms reconciles with the finance ledger within [*Example:* 2%].
- [ ] Share of sessions and leads with a valid UTM campaign code above [*Example:* 95%].
- [ ] No duplicate leads per contact within the window.
- [ ] Opportunity source field populated for all new SQOs.

## 13. Glossary and references

<!-- Guidance: Define terms that people outside marketing analytics will read in reports. -->

- **Adstock:** the carry-over effect of advertising into later weeks.
- **Attribution:** assigning credit for a conversion to touchpoints on the path to it.
- **Incrementality:** the conversions caused by marketing that would not have happened without it.
- **Incrementality factor:** incremental conversions divided by platform-reported conversions, used to adjust attribution.
- **MMM:** marketing mix modelling, a regression of outcomes on spend and other factors over time.
- **MQL / SQO:** marketing-qualified lead / sales-qualified opportunity, as defined in section 3.
- **Saturation:** diminishing returns as spend on a channel rises.

References (checked 2026-10-30):

- Directive 2002/58/EC (ePrivacy Directive), consolidated text: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32002L0058
- ICO, Cookies and similar technologies (PECR guidance): https://ico.org.uk/for-organisations/direct-marketing-and-privacy-and-electronic-communications/guide-to-pecr/cookies-and-similar-technologies/
- California Attorney General, California Consumer Privacy Act (CCPA), including Global Privacy Control: https://oag.ca.gov/privacy/ccpa
- Related templates: `data/analytics-tracking-plan`, `data/metric-definition`, `data/dashboard-specification`, `product/ab-test-plan`, `mba/mba-marketing-mix-modeling-card`, `mba/mba-marketing-experiments-card`, `mba/mba-marketing-analytics-guide`, `marketing/marketing-plan`, `marketing/campaign-brief`.

## Standard and licence note

Based on common marketing analytics practice (KPI trees, attribution,
holdout and geo experiments, marketing mix modelling with adstock and
saturation, UTM tagging), with privacy questions that cite public law
and regulator guidance as dated examples (EU Directive 2002/58/EC, UK
PECR and ICO guidance, EU and UK GDPR, California CCPA). The text,
structure and the fictional Larkspan figures are original. Check the
current official version of each source before relying on it; this is
not legal or financial advice. Template licence: MIT.
