---
name: procurement-optimization
description: Run a procurement and SaaS spend review end to end: categorize spend, audit contracts, consolidate overlapping suppliers, and negotiate renewals from a position of data. Use when someone asks to cut software or tool costs, review vendor contracts, audit SaaS spend, find duplicate subscriptions, or prepare for a contract renewal negotiation.
---

# Procurement Optimization

## Purpose
Turn a pile of invoices and subscriptions into a ranked savings plan. This skill runs a general spend review anyone can execute: collect everything being paid, categorize it, audit what is used versus bought, consolidate what overlaps, and negotiate renewals with evidence instead of gut feel.

## Workflow
1. **Collect.** Gather every spend source: card statements, expense reports, invoices, the AP ledger, and purchase orders. Then close the shadow-IT gap by checking SSO login logs and OAuth grants for tools nobody invoiced. Record vendor, amount, billing cadence, owner, and renewal date for each line.
2. **Categorize.** Standardize vendor names first (merge subsidiaries into parent companies, fix spelling variants). Then group spend by what each tool actually does, not by vendor name: two project trackers from two teams are one category. Use a simple custom taxonomy for small orgs; use UNSPSC codes when you need benchmarking or an enterprise hierarchy. See `references/categorization-guide.md`.
3. **Audit.** For every paid subscription, pull two numbers: seats purchased and seats with meaningful activity in the last 90 days. The gap is the immediate opportunity. Flag price outliers, unapproved vendors, and spend that jumped suddenly. See `bin/spend-register` for the working tracker.
4. **Consolidate.** Where a category has two or more tools doing the same job, pick one winner. The argument that moves teams is operational (one integration, one access review, one offboarding path), not financial.
5. **Negotiate.** Work renewals on a calendar, never on arrival. Start 90 days before term end: anchor on your utilization data, right-size seats before negotiating price, push back on the uplift, and use the term reset to fix the contract paper. Full playbook and clause checklist in `references/renewal-playbook.md`.
6. **Govern.** Put approvals in place so the mess does not regrow: an intake path for new vendors, renewal reminders 45 days out, and a quarterly spend review on the top categories.

## Output Contract
Every run produces three things:
- A **spend register report**: spend by category and vendor, with the tail and the outliers visible. `spend-register report` generates this.
- A **savings plan**: each opportunity ranked by dollars, with an owner and a next action (cancel, consolidate, right-size, renegotiate).
- A **renewal calendar**: every contract with its notice deadline and the 90/60/30-day checkpoints before it.

## Operating Rules
1. Never invent numbers, dates, quotes, or events. Every factual claim in your output must come from the collected spend data or a verified source. Unverifiable becomes opinion or gets cut.
2. Right-size before negotiating. Cutting unused seats first and negotiating price second is two compounding moves; doing them in one conversation lets the vendor price the bloat.
3. Quote savings as ranges or scenarios when the data is incomplete. "Between $8k and $14k a year" beats a false single figure.
4. Record every commitment in the savings ledger so someone can check later whether the savings actually landed. `spend-register log-savings` writes to it.
5. Anchor negotiations on utilization, never on last year's price. The vendor's default anchor is last year plus a percentage; your counter-anchor is what you actually used.
