MarketingFeatured

Marketing Spend Auditor

Counts each customer once, however many channels claim them

Version 3Published Sep 2, 2026
MarketingExtractclaude-opus-5Read-only · auto8 hard rules5 handover rulesResult
8hard rules
Things it must never do, enforced in every run
5handover rules
Conditions where it stops and gives the work to a person
12output fields
A structured result, not a paragraph you have to re-read
≤6steps per run
Bounded work: at most 5 tool calls, enforced by the runtime

Read-only by design. This agent has no path to sending, spending, publishing or committing anything. Where that limit is the product, removing it would remove the reason to trust the output.

Live wiring for version 3. Tool nodes are the capabilities this agent is registered to call — nothing else can run.

Overview

Marketing reporting has a structural dishonesty nobody built on purpose. Each platform reports conversions it takes credit for, using its own attribution window and its own definition. Add them up and they exceed the sales the business actually made — sometimes threefold. Every channel is reporting the same customer, and each report is internally correct.

So platform dashboards cannot be summed, everyone sums them anyway, and the alternative is a modelling project nobody has time for.

The honest version is simpler than the modelling project and more useful than the dashboards. Start from the customers actually acquired, count each once, and report what was spent in total to get them. Report per-channel figures separately, as claims rather than facts, and show the overlap explicitly — because the overlap is the finding.

Two more things hide in the same data. Spend that produced nothing at all, which survives because each line item is too small to question. And customers acquired above what they are worth, which every channel counts as a success.

This agent reports all of it and changes no campaign. It has no route to an ad account, and it never will.

Benefits

A number you can take to a board

Rather than a sum of figures that cannot be summed.

Waste found in the small lines

Where it hides, because nobody questions a small line.

Channel claims put in context

Reported as claims, next to what actually happened.

What it does

  • Counts each customer once

    Platform totals exceed real sales, sometimes threefold, because every channel claims the same person.

  • Shows the overlap explicitly

    The gap between claimed conversions and actual customers. That gap is the finding, not an error to hide.

  • Reports true blended cost

    Total spend over customers actually acquired. The only figure that cannot be double-counted.

  • Finds spend that produced nothing

    Small enough per line to never be questioned, and it runs for years.

  • Flags customers bought above their worth

    Acquired at more than they will ever return. Every channel counts these as wins.

  • Changes no campaign

    It has no route to an ad account and never pauses, edits or reallocates anything.

What this changes

What this changes about your week

It takes over
Reconciling what channels claim against customers actually acquired.
Done today by
Nobody. The platform dashboards get summed instead.
How often
Monthly, and the summed number goes to the board.
Typical manual effort
Each customer has to be counted once across every channel claiming them.

Why Marketing in particular. Platform totals routinely exceed real sales threefold, because every channel reports the same customer and each report is internally correct. They cannot be summed, and everyone sums them.

  • Runs unattended

    Started by you or by an event, and it finishes on its own. Nothing waits for someone to be at a desk.

  • The same standard every time

    The two-hundredth item is held to the bar the first one was. Consistency is the part people cannot sustain.

  • It cannot act on its own

    Marketing Spend Auditor has no path to sending, spending or committing. That limit is why its output is safe to act on.

How it runs

This agent runs server-side through the PROMIVO runtime. Each run is logged step by step and every tool call is permission-checked before it executes.

  1. 1InputValidated against the agent input schema
  2. 2Modelclaude-opus-5 with automatic fallback
  3. 3Toolsextract_structured_data
  4. 4PermissionsRuns READ actions automatically; anything higher waits for approval
  5. 5OutputStructured result matching the output schema
  6. 6LoggingTokens, duration and every step recorded

Demo

Demo dataIllustrative sample output, abridged.

Input

{
  "spend": [],
  "period": "Q3 2026",
  "currency": "USD",
  "customersAcquired": []
}

Output

{
  "escalate": true,
  "disclaimer": "An analysis of your own spend and customer records. No campaign has been accessed or changed, platform figures are reported as claims and never summed, no attribution model has been applied, and unattributable customers have not been redistributed to make the numbers reconcile.",
  "totalSpend": 486000,
  "channelClaims": [
    {
      "spend": 214000,
      "caveat": "Reported as a claim. Search is systematically over-credited when it captures demand another channel created, and this data cannot separate the two.",
      "channel": "Paid search",
      "attributionWindow": "30-day click, 1-day view",
      "claimedConversions": 1410
    },
    {
      "spend": 168000,
      "caveat": "Reported as a claim. Not summed with the above — the same customer appears in both.",
      "channel": "Paid social",
      "attributionWindow": "7-day click, 1-day view",
      "claimedConversions": 1290
    }
  ],
  "overclaimRatio": 2.56,
  "escalationReason": "Channels claim 2.56 times the customers actually acquired, and 50,800 of spend has produced no attributable outcome across more than a year.",
  "customersAcquired": 1240,
  "acquiredAboveValue": [
    "218 customers were acquired at a cost above their expected value. Every one of them is counted as a success in the channel reports."
  ],
  "spendWithNoOutcome": [
    {
      "amount": 41200,
      "campaign": "Display retargeting — legacy audience",
      "runningDays": 612
    },
    {
      "amount": 9600,
      "campaign": "Sponsored listing — directory",
      "runningDays": 480
    }
  ],
  "blendedAcquisitionCost": 392,
  "claimedConversionsTotal": 3180,
  "unattributableSharePercent": 31
}

Requirements

Integrations

No integrations required.

Before you start

  • Spend by channel and campaign
  • Customers actually acquired in the period
  • Platform-reported conversions per channel
  • Customer value, where you have it
  • Requires the All-Access plan or higher

Use cases

Monthly marketing review

Claimed against actual, with the overlap shown.

Budget planning

Built on blended cost rather than on channel self-reports.

Before scaling a channel

Whether its claimed performance survives deduplication.

A rising acquisition cost

Whether it is real or a reporting artefact.

Pricing

All-Access

Billed monthly through your PROMIVO subscription. Cancel at any time.

Runs consume your plan allowance for agent executions and tokens. See plan limits

FAQ

Is this attribution modelling?

Deliberately not. Modelling requires assumptions you cannot verify and produces a confident number nobody can check. This counts customers once, reports total spend against them, and shows channel claims separately as claims.

Will it pause or change campaigns?

No. It has no access to any ad account. Pausing a campaign is a commercial decision with brand and seasonality context this cannot see.

What if we cannot link customers to channels at all?

Then it reports blended cost, spend with no attributable outcome, and the size of the unlinkable portion — which is honest and still useful. It will not manufacture a channel split it cannot evidence.

Reviews

Reviews open once customers have run this agent.

Need this agent to work differently?

Tell us what to change and our team will scope a customised version for your business.

Customize this agent