SaaS Spend Optimizer
When to invoke
- "Find waste in our SaaS stack."
- "Which renewals are coming up in the next 60 days?"
- "What seats are unused?"
Inputs needed
- Subscriptions CSV — vendor, plan, seats, cost_monthly, renewal_date.
- Usage CSV (optional but recommended) — vendor, user, last_active.
- Org headcount (for benchmarking).
Workflow
- Ingest subs + usage.
- Compute seat utilization, $/active user, autorenewal calendar.
- Classify waste types: unused seats, dead tools, duplicates by category.
- Estimate savings — annualized.
- Report with actions: cancel, downgrade, consolidate, renegotiate.
Output format
## Top savings opportunities
- $X/yr — vendor — action — owner
## Renewal calendar (next 90 days)
- date — vendor — amount — action by date
## Duplicates by category
- category — vendors — recommendation
Guardrails
- Always show the underlying counts, not just %.
- Flag low-confidence (no usage data) recommendations as such.
- Do NOT recommend cancellation of vendors with active integrations marked critical.
Reference code
optimize.py reads CSVs and emits a Markdown brief plus a JSON summary.