Marketing Spend Auditor
Counts each customer once, however many channels claim them
- 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.
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.
- 1InputValidated against the agent input schema
- 2Modelclaude-opus-5 with automatic fallback
- 3Toolsextract_structured_data
- 4PermissionsRuns READ actions automatically; anything higher waits for approval
- 5OutputStructured result matching the output schema
- 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