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.
The report contract decides what can be compared
| Field | Example | Why it matters |
|---|---|---|
| Scope | User, session, event or platform object | Values at different scopes answer different questions |
| Period | Start, end, time zone and cut-off | Late events and platform updates change totals |
| Definition | Formula, filters and exclusions | Same label can hide another denominator |
| Attribution | Model, lookback and eligible channels | Credit is assigned, not directly observed causality |
| Source | System, report/export and retrieval time | Result remains reproducible |
| Status | Observed, modeled, estimated, missing or corrected | Readers 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
- 01Freeze the runTriggerCreate one report ID, period, definitions version and source manifest.
- 02Validate the sourcesCodeCheck schema, identifiers, row counts, scope, freshness and duplicates.
- 03Normalize without erasingCodeKeep raw campaign and source values; map them through a versioned rule.
- 04Reconcile compatible totalsCodeCompare at the declared scope and publish material differences as exceptions.
- 05Draft bounded notesAI judgmentDescribe observed changes and missing evidence with source references. Do not infer causation.
- 06Approve interpretationHuman approvalA marketer edits, qualifies or rejects the conclusion and owns the next action.
- 07Publish and retainCodeStore the approved version, source manifest, exceptions and correction link.
Treat attribution and source gaps as report content
| Exception | Do not | Report route |
|---|---|---|
| UTM mismatch | Silently merge campaign labels | Preserve both; owner repairs mapping |
| Direct / none increase | Assign it to the favorite channel | Check tagging and state it as unattributed |
| Attribution model changed | Compare series without a note | Split period or annotate the boundary |
| Late platform data | Fill the gap with an invented estimate | Delay, qualify or mark incomplete |
| Modeled value | Present as directly observed event | Label source behavior and limitation |
One campaign appears twice until the naming record is repaired
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.
Marketing reporting SOP
Editable procedure for source collection, scope checks, reconciliation, review and correction.
Preview the fileHide preview
# 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.
Marketing reporting workflow blueprint
Trigger, data contract, validation, bounded summary, approval, retry and acceptance design.
Preview the fileHide preview
# 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
- Scopes of traffic-source dimensions — Google Analytics Help Accessed 9 August 2026
- Change the reporting attribution model for key events — Google Analytics Help Accessed 9 August 2026
- Create attribution reports — HubSpot 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 procedureUli 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.