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.
npx -y skills add afelipeg/Anthropic-Skills-for-enterprise-marketing-os --skill media-procurement-benchmarkAssembled 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
- Web search (Claude — MANDATORY): Before scoring, search for current benchmarks by [COUNTRY] [INDUSTRY] [PLATFORM] [SUPPLIER]. See search protocol below
- Script execution (
scripts/procurement_scorer.py): 6-dimension scoring (price, quality, delivery, financial, leverage, measurement), leakage detection (8 patterns), negotiation position generation - 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 - Upstream context (Claude): Pull channel allocation from
media-routing-planner, margin data frommargin-simulation, scope fromscope-audit - 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:
"[SUPPLIER] advertising rates CPM [YEAR]"— supplier-specific pricing"[PLATFORM] ads benchmarks [INDUSTRY] [COUNTRY] [YEAR]"— Triple Whale, WordStream, Pixis"digital advertising costs [COUNTRY] [YEAR]"— market-level CPM data"[INDUSTRY] media costs CPM CPC CPA [YEAR]"— vertical-specific"viewability benchmarks [PLATFORM] [YEAR]"— IAS/DV/MOAT quality data"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
| Resource | Purpose | Usage |
|---|---|---|
scripts/procurement_scorer.py | 6-dimension procurement scorer (0-100), 8 leakage detection patterns, negotiation position generator, market tier auto-adjustment (30+ countries), benchmark override support | python procurement_scorer.py --input deal.json --output eval.json |
scripts/working_capital_calculator.py | Cashflow exposure calculator — float cost per supplier, prepayment risk, DSO impact, margin erosion %. Models the "agency as bank" problem | python working_capital_calculator.py --input deals.json --output exposure.json |
references/procurement_terms.md | Standard 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 specifics | Read for negotiation language and term validation |
references/make_good_terms.md | 6 make-good types with calculation formula, standards per media type, contractual language templates, claim process workflow | Read when evaluating delivery guarantees |
references/working_capital_media.md | Agency float cashflow model, payment term impact, prepayment risk tiers, DSO by client type (LATAM), working media ratio fee stack decomposition | Read 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
| Direction | Skill | Connection |
|---|---|---|
| Upstream | media-routing-planner | Provides the channel allocation that determines which suppliers to evaluate |
| Upstream | scope-audit | Validates media procurement is in SOW |
| Downstream | margin-simulation | Validates margin impact of procurement terms |
| Downstream | executive-growth-memo | Frames procurement decision for leadership |
| Downstream | change-order-generator | If procurement terms require scope/fee adjustment |