agentsclimarketplace

Media procurement benchmark

Skill afelipeg/Anthropic-Skills-for-enterprise-marketing-os/skills/media-procurement-benchmark

30 connected Claude Skills for enterprise marketing ops. Install in-house to replace fragmented tools or reclaim outsourced operations. Marketing & Comms [working & non-working media]· CRM & Growth · Shopper & Trade · RGM · Finance.

Install
npx -y skills add afelipeg/Anthropic-Skills-for-enterprise-marketing-os --skill media-procurement-benchmark

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Benchmarks media costs, supplier terms, inventory quality, volume commitments, make-goods, rebates, payment terms, and procurement efficiency. Use when evaluating media supplier negotiations, annual volume deals, rate cards, platform costs, publisher proposals, or whether media buying terms are commercially competitive. Also trigger when someone says "is this a good rate?", "are we overpaying?", "evaluate this media proposal", "compare publisher rates", "review the IO", "negotiate the deal", "assess this rate card", or when media-routing-planner routes here to validate carrier/supplier terms. Even casual phrasing like "is this CPM right?", "should we take this deal?", "what should we pay?", or "can we get a better rate?" should activate this skill.

SKILL.md

11.0 KB, as published. Nobody here has run it

Media Procurement Benchmark

Evaluate the commercial quality of any media buy — whether a publisher proposal, platform rate card, programmatic deal, or annual volume commitment — using the logic of construction procurement: is the price right, is the quality guaranteed, are the terms protective, and does the deal serve the business outcome?

How This Skill Orchestrates

  1. Web search (Claude — MANDATORY): Before scoring, search for current benchmarks by [COUNTRY] [INDUSTRY] [PLATFORM] [SUPPLIER]. See search protocol below
  2. Script execution (scripts/procurement_scorer.py): 6-dimension scoring (price, quality, delivery, financial, leverage, measurement), leakage detection (8 patterns), negotiation position generation
  3. Reference lookup (references/procurement_terms.md): Standard terms by media type, working media ratio analysis, negotiation playbook with language templates, contractual protection checklist, LATAM specifics
  4. Upstream context (Claude): Pull channel allocation from media-routing-planner, margin data from margin-simulation, scope from scope-audit
  5. Visual output (Visualizer): Procurement scorecard with dimension radar, cost benchmark comparison, leakage flags, negotiation asks

Model decision: Risk scoring + dynamic pricing comparison (governance + procurement layers). Not ML — we're comparing a proposed deal against market benchmarks using a scoring rubric. The benchmarks come from web search, not a trained model.

Mandatory Benchmark Search Protocol

Claude MUST search for benchmarks BEFORE running the scorer. Execute these searches in order:

  1. "[SUPPLIER] advertising rates CPM [YEAR]" — supplier-specific pricing
  2. "[PLATFORM] ads benchmarks [INDUSTRY] [COUNTRY] [YEAR]" — Triple Whale, WordStream, Pixis
  3. "digital advertising costs [COUNTRY] [YEAR]" — market-level CPM data
  4. "[INDUSTRY] media costs CPM CPC CPA [YEAR]" — vertical-specific
  5. "viewability benchmarks [PLATFORM] [YEAR]" — IAS/DV/MOAT quality data
  6. "Nielsen ad intel [INDUSTRY] [COUNTRY]" or "Kantar media spend [CATEGORY]" — competitive context

Pass searched data to the script via benchmark_overrides. Always cite sources in the output.

Quick Reference

ResourcePurposeUsage
scripts/procurement_scorer.py6-dimension procurement scorer (0-100), 8 leakage detection patterns, negotiation position generator, market tier auto-adjustment (30+ countries), benchmark override supportpython procurement_scorer.py --input deal.json --output eval.json
scripts/working_capital_calculator.pyCashflow exposure calculator — float cost per supplier, prepayment risk, DSO impact, margin erosion %. Models the "agency as bank" problempython working_capital_calculator.py --input deals.json --output exposure.json
references/procurement_terms.mdStandard terms tables (digital/programmatic/direct/traditional), working media ratio benchmarks and fee stack analysis, negotiation playbook with language templates, contractual protection checklist, LATAM/Mexico market specificsRead for negotiation language and term validation
references/make_good_terms.md6 make-good types with calculation formula, standards per media type, contractual language templates, claim process workflowRead when evaluating delivery guarantees
references/working_capital_media.mdAgency float cashflow model, payment term impact, prepayment risk tiers, DSO by client type (LATAM), working media ratio fee stack decompositionRead when assessing financial terms

How to Use the Script

import sys
sys.path.insert(0, "<skill-path>/scripts")
from procurement_scorer import ProcurementScorer

config = {
    "client_name": "AcmeAuto MX",
    "supplier_name": "Meta (Facebook/Instagram)",
    "inventory_type": "meta",
    "buy_type": "self-serve auction",
    "country": "mexico",
    "proposed_spend": 50000,
    "proposed_cpm": 4.80,
    # Web-searched benchmark override (from AdAmigo 2026)
    "benchmark_overrides": {
        "cpm_range": [3.50, 5.50],
        "source": "AdAmigo Meta CPM Mexico Tier 3 (2026)",
    },
    # Deal terms
    "tech_fee_pct": 0,
    "viewability_pct": 72,
    "fraud_guarantee_pct": 95,
    "brand_safety_score": 90,
    "has_make_good": False,
    "requires_prepayment": False,
    "cancellation_days": 0,
    "payment_terms_days": 30,
    "has_data_access": True,
    "volume_commitment_flexible": True,
    "volume_discount_pct": 0,
}

scorer = ProcurementScorer(config)
result = scorer.evaluate()
# result.procurement_score, result.verdict, result.dimension_scores,
# result.leakage_flags, result.negotiation_positions

Process

Step 1 — Identify the Deal

Classify: supplier, inventory type (search/social/programmatic/direct/CTV/OOH/retail media/influencer), buy type (auction/guaranteed/sponsorship/package), geography, audience, flight dates.

Step 2 — Search Benchmarks

Execute the Mandatory Benchmark Search Protocol. Override script defaults with found data.

Step 3 — Evaluate Price

Compare proposed CPM/CPC/CPA against searched benchmarks. Account for tech fees, data fees, platform fees. Calculate working media ratio.

Step 4 — Evaluate Quality

Assess viewability, fraud risk, brand safety, audience fit, contextual relevance, attention metrics. Compare against IAS/DV/MOAT published benchmarks for the platform.

Step 5 — Evaluate Delivery & Terms

Check make-good clause, cancellation flexibility, underdelivery history, pacing reliability. Compare against standard terms from the reference.

Step 6 — Evaluate Financial Impact

Assess payment terms, prepayment exposure, working capital impact, reconciliation burden, agency cashflow.

Step 7 — Assess Leverage

Evaluate volume discounts, multi-brand power, annual commitment value, exclusivity, data access, bundled offers.

Step 8 — Detect Leakage

Run the 8 leakage patterns: hidden tech fees, no make-good, prepayment exposure, no cancellation, low viewability, no fraud guarantee, opaque data, rigid volume lock.

Step 9 — Generate Negotiation Positions

Based on weak dimensions and leakage, produce specific negotiation asks with priority (must-have / should-have / nice-to-have), rationale, and suggested language from the reference.

Step 10 — Issue Verdict

Score → Verdict: Approve (≥80, ≤1 leakage) / Renegotiate (≥60) / Renegotiate-material (≥40) / Reject (<40).

Output Format

Produce in TWO forms: inline visual scorecard (Visualizer) and structured markdown report.

Visual Scorecard (Primary)

Render as an inline HTML widget:

  • A header with supplier name, inventory type, proposed spend, and verdict badge (green/amber/red)
  • A procurement score as a large metric (e.g., "72/100") with status label
  • A 6-dimension score grid — one card per dimension showing score, status badge, and top finding
  • A cost benchmark comparison — proposed CPM vs. benchmark range, shown as a position marker on a range bar
  • A working media ratio indicator — what % of spend reaches consumers
  • A leakage flags section — each flag with severity badge and fix
  • A negotiation asks — prioritized list with must-have / should-have badges
  • An action footer with sendPrompt():
    • "Draft negotiation memo for [supplier]" → generates client-ready negotiation document
    • "Validate this deal against margin simulation" → margin-simulation
    • "Compare alternative suppliers" → re-run with different supplier config

Markdown Report (Secondary)

## 🏷️ PROCUREMENT EVALUATION — [Supplier] — [Client]

### Verdict
[Approve / Renegotiate / Reject] — Score: [X]/100
[Rationale]
Benchmark sources: [cited sources from web search]

### Deal summary
| Field | Value |
|-------|-------|
| Supplier | [name] |
| Inventory | [type] |
| Buy type | [auction/guaranteed/etc] |
| Proposed spend | $[X] |
| Proposed CPM | $[X] |
| Market | [country] (Tier [N]) |
| Benchmark CPM range | $[low]-$[high] ([source]) |

### Dimension scores
| Dimension | Score | Status | Key finding |
|-----------|-------|--------|-------------|
[6 rows]

### Cost quality
| Metric | Proposed | Benchmark | Gap | Status |
[CPM, CPC, CPA rows with sources]

### Working media ratio
[X]% of spend reaches consumers. Fee stack: [breakdown]

### Contractual review
| Term | Current | Required | Risk |
[Terms that need attention]

### Leakage flags
[Each flag: label | severity | fix]

### Negotiation positions
| Priority | Ask | Rationale | Suggested language |
[Must-have / should-have / nice-to-have]

### Recommendation
[Approve/renegotiate/reject with specific conditions and next steps]

Examples

Example 1 — Overpriced programmatic: User: "Evaluate this DSP proposal: $12 CPM for programmatic display in Mexico, 20% tech fee, no make-good, Net 15 payment." → Score: 35/100 (Reject). CPM $12 is 3× above Tier 3 benchmark ($2-5). Tech fee 20% leaves 80% WMR. No make-good + Net 15 = high risk. Negotiate to $4-6 CPM, 10% tech fee, make-good, Net 30.

Example 2 — Competitive Meta buy: User: "Meta Ads for AcmeAuto MX. CPM running at $4.20, standard auction, full dashboard access." → Score: 78/100 (Renegotiate minor). CPM within benchmark ($3.50-5.50 for Mexico). No leakage on self-serve. Missing: third-party verification, incrementality testing. Negotiate added value or test budget.

Example 3 — Annual TV deal: User: "Televisa is offering annual TV package: $15 CPM, 25% volume discount, 30-day cancellation, make-good guaranteed, Net 45." → Score: 82/100 (Approve). CPM competitive for MX linear TV. Strong terms: discount, make-good, Net 45. Minor: push for Net 60, 30% bonus spots, data access for post-campaign analysis.

Skill Chaining

DirectionSkillConnection
Upstreammedia-routing-plannerProvides the channel allocation that determines which suppliers to evaluate
Upstreamscope-auditValidates media procurement is in SOW
Downstreammargin-simulationValidates margin impact of procurement terms
Downstreamexecutive-growth-memoFrames procurement decision for leadership
Downstreamchange-order-generatorIf procurement terms require scope/fee adjustment

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.