Explainability reference
What every bid looks like. Who can change the rules.
Two things the Provespend agent always ships: an immutable ledger behind every decision, and a human-readable policy file a compliance team can edit without paging the agency. This page is the reference for both.
- Ledger
- SHA-256 chained
- Policy file
- YAML, versioned
- Editor roles
- 4
- Override
- <30 s
One ledger entry, annotated
- ts
- 2026-08-15T03:14:09Z
- channel
- campaign
- Brand-Lift-APAC
- decision
- bid
- cpa
- $8.30
- policy_version
- policy.yaml@v18.4
- reasoning
- Auction position falling without bid lift
- rationale
- impr_share_loss=$0.12; +14% bid floor
Section 1 of 2
An immutable ledger behind every bid.
Every auction the agent touches is recorded: timestamp, channel, campaign, decision, the dollar amount that resulted, and the rationale the policy produced. Compliance teams replay it like a git log.
Every entry, every field
A single ledger row carries the decision shape, plus the policy version the decision was evaluated against. Same vocabulary as the live audit stream.
- tsUTC timestamp of the auction evaluation.
- channelMeta, Google, TikTok, LinkedIn, or programmatic.
- campaignThe named campaign that owned the spend.
- decision
BID,HOLD, orROTATE— the only three states the agent writes. - cpaThe cost-per-acquisition landed, in dollars. Em-dash on HOLD.
- reasoningOne-line plain-English justification.
- rationaleThe named signal and threshold from the policy file that produced the decision.
- policy_versionWhich version of
policy.yamlthe decision was evaluated against.
| ts | channel | campaign | decision | cpa | rationale |
|---|---|---|---|---|---|
| 03:14:07 | [Meta] | Q4-Retention-EU | bid | $14.20 | last_3d_cpa=$13.80 < $18 floor; signal_ctr=+0.42σ |
| 03:14:08 | [TikTok] | SMB-Trial-US | hold | — | 7d_avg_cpa=$42.10 > $35 ceiling; pause 6h, re-evaluate |
| 03:14:09 | [Google] | Brand-Lift-APAC | bid | $8.30 | impr_share_loss=$0.12 to rank; +14% bid floor |
| 03:14:11 | [LinkedIn] | Awareness-Consider | rotate | $31.05 | ctr_z=-1.8 / 7d; swap to creative_E |
| 03:14:13 | [Programmatic] | Reactivation-Lapsed | bid | $6.10 | predicted_roas=4.2; shift +$1.2k/day from TikTok |
| 03:14:15 | [TikTok] | SMB-Trial-US | hold | — | daily_pacing=+38%; cap +14% until reset |
| 03:14:18 | [Meta] | Lookalike-1P-LAL | bid | $11.95 | audience_signal=green; bid at floor |
Tamper-evident
SHA-256 hash chained per account. Any post-hoc edit becomes visible at the next reconciliation.
Replayable
Re-run any decision against the policy version that was live at the time. Same input, same output.
Exportable
CSV, JSON, or Parquet on demand. No redaction of spend trails — the customer owns the data.
Section 2 of 2
A bidding policy you can actually read.
The agent operates under a human-readable policy.yaml. Compliance teams, legal, and the client all read the same file. Edits are diffed before saving and enforced in under thirty seconds.
Targets
Quarterly ROAS floors per channel, monthly CPA ceilings per campaign, plus soft-launch curves for new SKUs. Each target is a named rule with a version, author, and last-edit timestamp — the agent cites the rule by name in every ledger rationale.
3.4× ROAS
default floor
Annotated policy.yaml
Three rules lifted from a real Provespend customer — one target, one override, one exclusion. Every rule carries the author who wrote it.
# Provespend bidding policy — illustrative excerpt.
# Every rule carries: who wrote it, when, and under which policy version.
policy_version: v18.4
last_edited_by: mara.chen@provespend.app
last_edited_at: 2026-08-12T14:08:00Z
targets:
- id: meta_roas_floor
author: mara.chen@provespend.app
rule:
channel: Meta
metric: roas
floor: 3.4
window: 7d
overrides:
- id: pin_creative_C_off
author: compliance@client.example
rule:
campaign: SMB-Trial-US
creative: creative_D
action: pause
enforce_in: <30s
exclusions:
- id: inventory_blocklist_claims
author: legal@client.example
rule:
kind: creative_blocklist
claims: ["before-and-after", "diagnose", "cure"]
scope: all_channels
The live policy file is edited in the dashboard — a diff preview appears before save, and the saved version is written to the same hash-chained ledger the bid decisions use, so an auditor can correlate which policy a bid was evaluated underwith the bid's policy_version field.
Who can review and override
Four policy roles. One ledger.
Every action the agent takes is attributable to a named policy role. Nothing happens off-ledger, and nothing happens out-of-policy.
Compliance teams
Read everything. Edit the policy.
Read the ledger; edit the policy file (Targets / Overrides / Exclusions). Every edit is diffed before save and hash-chained into the same ledger the bid decisions live in. The audit log and the policy file are the same artifact.
Account owners
Pin and pause at speed.
Hard-pin a channel off, a creative off, or a budget cap. Enforcement lands in under 30 seconds, and the override itself is recorded as a ledger event with the named author and a one-line justification.
Clients
Always read-only.
Read-only access to the entire ledger and the policy file at any time. Clients can issue named override requests; those requests are routed through the account owner and execute on the same timeline as a direct override.
Provespend engineers
Keys, pushes, and rotations.
Rotate credentials, push policy updates on a customer's behalf, and apply emergency holds. Everything we do on your behalf is logged in the ledger the same way your team's edits are — same shape, same chain.
By role, by action
Roadmap tie-in
When the live log ships, this page stays true.
Every decision shape, every field name, every decision value on this page is lifted from the same vocabulary the live audit-log work uses. When the live ledger lands, every row shown on this page will be recoverable in one click — no copy edits needed.
- Decision values match
BID / HOLD / ROTATE. - Field names match
ts / channel / campaign. - Hash chain and replay story match the home page verbatim.
Try it on your ad account
See this ledger behind your own auctions.
We onboard customers in cohorts of five so each new account gets direct engineering attention for the first two weeks. Leave your email and we'll let you know when the next cohort opens.
Prefer a direct conversation? Email provespend@polsia.app and we'll route you to the founding engineer.
Cohort signup
We typically respond within two business days with a 15-minute walkthrough link and a copy of the bidding-policy template so you can read the policy.yaml structure before signing.
One email when a cohort opens. No newsletter, no drip.