Marketing

Marketing Reporting Automation: Reconcile the Sources Before the Story

For a marketing operations owner preparing the same campaign pack each week or month from several sources with different scopes and attribution rules.

Uli PrantzBuilds and operates all-agents
Published
Key takeaways

Key takeaways

  • Freeze metric definitions, source scope, reporting cut-off and attribution model before collecting numbers.
  • Automate source validation and reconciliation. Do not ask a generated summary to explain mismatches it cannot trace.
  • Keep observed values, modeled or missing data, attribution credit and human interpretation visibly separate.
  • A named marketing owner approves conclusions and next actions; the workflow publishes one versioned report and a correction path.
Automate marketing reporting by fixing the report contract first: period, time zone, metric definitions, source scope, campaign identifiers and attribution model. Collect and validate approved source exports, reconcile only compatible values, and route gaps instead of explaining them away. A model may draft source-linked notes; a named marketer approves interpretation and action. Publish one version with visible exceptions and a correction path.

The report contract decides what can be compared

Put these fields beside the number, not in an undocumented analyst habit.
FieldExampleWhy it matters
ScopeUser, session, event or platform objectValues at different scopes answer different questions
PeriodStart, end, time zone and cut-offLate events and platform updates change totals
DefinitionFormula, filters and exclusionsSame label can hide another denominator
AttributionModel, lookback and eligible channelsCredit is assigned, not directly observed causality
SourceSystem, report/export and retrieval timeResult remains reproducible
StatusObserved, modeled, estimated, missing or correctedReaders can judge uncertainty

Google documents that user-, session- and event-scoped traffic dimensions behave differently, and that changing the reporting attribution model affects event-scoped reporting rather than user- and session-scoped dimensions. The workflow must preserve those labels instead of flattening them into “source.”

Run the report from source manifest to approved interpretation

  1. 01Freeze the runTrigger
    Create one report ID, period, definitions version and source manifest.
  2. 02Validate the sourcesCode
    Check schema, identifiers, row counts, scope, freshness and duplicates.
  3. 03Normalize without erasingCode
    Keep raw campaign and source values; map them through a versioned rule.
  4. 04Reconcile compatible totalsCode
    Compare at the declared scope and publish material differences as exceptions.
  5. 05Draft bounded notesAI judgment
    Describe observed changes and missing evidence with source references. Do not infer causation.
  6. 06Approve interpretationHuman approval
    A marketer edits, qualifies or rejects the conclusion and owns the next action.
  7. 07Publish and retainCode
    Store the approved version, source manifest, exceptions and correction link.

Treat attribution and source gaps as report content

A useful report exposes uncertainty before proposing action.
ExceptionDo notReport route
UTM mismatchSilently merge campaign labelsPreserve both; owner repairs mapping
Direct / none increaseAssign it to the favorite channelCheck tagging and state it as unattributed
Attribution model changedCompare series without a noteSplit period or annotate the boundary
Late platform dataFill the gap with an invented estimateDelay, qualify or mark incomplete
Modeled valuePresent as directly observed eventLabel source behavior and limitation

One campaign appears twice until the naming record is repaired

Simulated report runSimulated example data

A weekly pack joins a campaign register to aggregate analytics and ad exports. “summer_service” and “Summer-Service” appear as separate campaign values. The validation step raises a mismatch and excludes the combined campaign conclusion.

The owner confirms both values refer to one approved campaign, adds a versioned mapping and reruns the report. The published note says the historical source values were combined through that mapping. It does not claim which channel caused a sale.

Use the procedure and blueprint as one control pair

The SOP gives the reporting owner a readable sequence. The workflow blueprint adds event identity, data contracts, idempotency, stop conditions and acceptance tests. Adapt both to the actual systems; no connector is implied.

SOP

Marketing reporting SOP

Editable procedure for source collection, scope checks, reconciliation, review and correction.

Preview the file
# Marketing Reporting Automation — SOP

## Purpose and scope

Prepare a recurring marketing report from approved source exports while preserving metric definitions, scope, attribution settings and unresolved exceptions. This procedure automates collection checks, reconciliation and draft assembly. A named marketing owner approves interpretation and actions. It does not claim causal attribution or authorize spend changes.

## Owner, trigger and output

- **Owner:** marketing operations or campaign reporting owner.
- **Trigger:** reporting cut-off plus the approved campaign register and source exports.
- **Output:** reviewed report pack, source manifest, exception ledger and next-decision owner.

## Prerequisites

1. Metric dictionary with scope, formula, time zone and source.
2. Campaign ID and UTM naming convention.
3. Approved attribution model and a plain-language limitation note.
4. Source access and export method tested for the reporting period.
5. Review owner and fallback for unavailable or late sources.

## Procedure

1. Freeze the report period, source list and prior approved report version.
2. Collect source exports and record source, retrieval time, scope and row count.
3. Validate campaign identifiers, required fields, currency/time-zone assumptions and duplicates.
4. Reconcile totals at the declared scope; never compare user-, session- and event-scoped values as if they were the same metric.
5. Route missing, late or mismatched data to the named owner. Preserve source values.
6. Assemble tables and draft notes that distinguish observed values from interpretation.
7. Show attribution model, modeled or unavailable data, cut-off and corrections beside the result.
8. Obtain human approval for conclusions and actions.
9. Publish the approved version and retain the manifest, exceptions and correction history.

## Exceptions and approvals

Stop automatic completion for identifier mismatches, changed metric definitions, material source gaps, unexpected attribution settings, personal information or a proposed budget/external action. The marketing owner decides whether to delay, qualify or exclude a result.

## Audit record

Retain report ID, period, source manifest, definitions version, attribution note, validation results, exceptions, approver, published version and later corrections. Recheck platform documentation when the source behavior or settings change.
Workflow blueprint

Marketing reporting workflow blueprint

Trigger, data contract, validation, bounded summary, approval, retry and acceptance design.

Preview the file
# Marketing Reporting Automation — Workflow Blueprint

## Trigger and termination

- **Trigger:** reporting cut-off reached with an approved report definition and source manifest.
- **Success:** a named owner approves a report whose tables, definitions, scope notes and exceptions trace to source records.
- **Safe stop:** missing required source, incompatible metric scope, identifier mismatch, unauthorized data, unexplained material variance or unavailable reviewer.

## Data contracts

Input: report ID, period, time zone, campaign register version, metric dictionary version, source file identifier, retrieval time, attribution model and permitted fields. Output: normalized observations, validation results, exception ledger, draft commentary, approval and published version. Do not include personal-level data when aggregate evidence answers the reporting job.

## Ordered steps

1. **Trigger — freeze period:** create one report run and reject duplicate delivery.
2. **Code — validate sources:** check presence, schema, scope, counts, identifiers and freshness.
3. **Code — normalize:** retain raw source values and produce mapped values with rule version.
4. **Code — reconcile:** compare totals only at compatible scope and publish differences.
5. **AI judgment — draft bounded notes:** summarize visible changes and exceptions with source references; abstain from causal claims.
6. **Human approval — interpret:** approve, edit, qualify or reject conclusions and next actions.
7. **Code — publish approved version:** write the immutable report artifact and correction link; no unverified connector is implied.

## Retry, idempotency and recovery

Use report ID plus period as the run key. A repeated source delivery updates source state but does not create a second published report. Reconcile an unknown publish state before retry. Keep the prior approved version available and publish corrections as new versions rather than overwriting evidence.

## Tests and acceptance

Test complete sources, late source, identifier mismatch, incompatible scopes, duplicate delivery, attribution-model change, modeled/unavailable data, reviewer rejection and correction. Acceptance requires traceable source rows, visible scope and attribution notes, zero unsupported causal claims, complete exception ownership and one approved published version.

Limitations and when not to use this

  • This playbook does not claim an all-agents integration with Google Analytics, Google Ads, HubSpot or another source.
  • Marketing attribution assigns credit under settings and source limitations. It does not by itself establish causal effect.
  • Use aggregate data where possible and follow the actual privacy, consent, access and retention requirements.
  • The example and values are simulated. No campaign, revenue, customer, performance or savings result is represented.

Sources

  1. Scopes of traffic-source dimensionsGoogle Analytics Help Accessed 9 August 2026
  2. Change the reporting attribution model for key eventsGoogle Analytics Help Accessed 9 August 2026
  3. Create attribution reportsHubSpot Knowledge Base Accessed 9 August 2026

Download the reporting procedure

Fill in the actual source manifest, definitions, attribution note and approval owner.

Download the reporting procedure
About the author

Uli Prantz

Builds and operates all-agents

Uli Prantz builds all-agents, the process-automation platform this site documents. He writes about the operational side of automating recurring business work: where deterministic code beats model judgment, where it does not, and where a human still has to approve.

Bring one process. We will scope it in 30 minutes.

You leave the call knowing whether it is a fit, what can become code and what still needs a person.

Book a discovery call