Skip to content
SlashClone
Made by@ledgerly

Saas tool spend audit

@ledgerly/saas-tool-spend-audit

Audit your SaaS subscriptions from a simple list: annual spend, owners, upcoming renewals with decide-by dates, unused seats, stale tools, overlapping tools, and the savings from each fix. Writes a prioritized action list.

SkillFinancev1.0.0 (latest)Tested
Activity
New: be the first to try it

Real output from this kit

How this works

  1. It is a skill: written instructions Claude reads when your request matches what the skill is for. You do not call it by name; just ask for the task.
  2. While it works, it reads and changes files in the places it lists, nowhere else.
  3. It runs these commands on your computer: node scripts/audit.mjs.
  4. Nothing runs until you choose to use it, and you can remove it any time.

SKILL.md

SaaS tool spend audit

Most companies overpay for software in three boring ways: seats nobody uses, tools nobody opened in months, and two tools doing one job. This kit finds all three, puts a dollar amount on each, and lines them up against renewal dates so you act before the auto-renew.

Inputs

A CSV at data/tools.csv (see examples/tools.csv). Required: tool, cost, billing (monthly or annual). Strongly recommended:

ColumnExampleUsed for
categoryVideo callsoverlap detection
ownerOps leadthe "no owner" list
seats, active_seats15, 9unused seats
renewal_date2026-12-01renewals and decide-by dates
last_used2026-10-30stale tools
auto_renewyesrenewal risk

Where the data comes from: the expense-categorizer output or card statements for cost, each tool's admin page for seats and last activity, and contracts for renewal dates. If the user only has a list of charges, build data/tools.csv from it, leave unknown columns blank, and say which columns are missing. The audit still runs; it just finds less.

Use the same category name for tools that do the same job (both video tools are "Video calls"), or overlaps are missed. Propose categories and confirm with the user.

Steps

  1. Build or check data/tools.csv. Show a count of tools and which columns are filled.
  2. Run:

    node scripts/audit.mjs data/tools.csv --as-of 2026-11-01 --out out/tool-audit

    Defaults: renewals in the next 90 days (--renewal-days), stale after 60 days unused (--stale-days), decide 30 days before renewal (--notice-days), keep 5% seat headroom (--headroom-pct). Use today's date for --as-of.

  3. Read out/tool-audit.md and lead with: total annual spend, likely savings, and any renewal whose decide-by date has passed or is within two weeks.
  4. Walk through the action list with the user, biggest savings first. For each, confirm the facts (is that tool really unused, or used by a contractor?) and an owner for the action.
  5. Write out/tool-audit-plan.md: one line per agreed action with owner and date, plus the "no owner" list with a proposed owner for each.

Savings rules

  • Likely savings: cancel stale tools (full annual cost) and cut unused seats down to active seats plus headroom.
  • Possible savings: consolidating overlapping tools. The script keeps the tool with the most active seats and counts the rest as possible savings. It also points out when a free tool you already have (bundled with your office suite, for example) could replace a paid one. These need a human decision, so they are reported separately.

Output template

**Software: 14 tools, $103k a year. Likely savings $19.4k a year.**
Act this week: Confluence (decide-by passed, renews Nov 20), Loom (cancel, renews Nov 28).
| Tool | Action | Savings | Owner | By |
...
No owner: Microsoft Teams, Confluence, Loom.

Guardrails

  • Never cancel, downgrade, or change any subscription. This kit only reports and plans; people act in each tool's admin page.
  • Seat and usage numbers can be wrong (shared logins, API-only use). Mark them as "to confirm" until the owner agrees.
  • Do not log in to vendor sites or ask for passwords. Work from exports and what the user tells you.

README.md

SaaS tool spend audit

Turns a list of your software subscriptions into a savings plan: unused seats, tools nobody has opened in months, overlapping tools, and renewals with the date you need to decide by. Every finding has a yearly dollar amount, so you fix the big ones first.

Who it is for: founders, ops, and finance leads who suspect the software bill is too high and have a renewal coming up.

Example

Input: examples/tools.csv (14 tools with cost, seats, active seats, renewal date, last used).

Output (out/tool-audit.md):

14 tools, $102,959 a year. Likely savings $19,367 a year (stale tools and unused seats).

| Confluence | 2026-11-20 | 2026-10-21 (**passed**, act now) | $4,200 | yes | **none** | cut to 7 seats |
| Asana | cancel | $2,640 | not used in 73 days |
- Video calls: Zoom, Google Meet. You already have Google Meet at no extra cost; moving off Zoom would save up to $1,799 a year.

Plus out/tool-audit.csv with every tool, its flags, and suggested action.

What it can access

  • Runs node scripts/audit.mjs (Node built-ins only).
  • Reads data/, writes data/tools.csv (your list) and out/tool-audit*.
  • No network, no vendor logins. It never changes a subscription.

Setup

None. Ask Claude to audit your SaaS spend; it will help you build the tools list from card statements or admin pages.

Files

  • README.md
  • SKILL.md
  • examples/tools.csv
  • kit.json
  • scripts/audit.mjs
  • scripts/lib.mjs

Did it work?

0worked for them0did not work

Sign in to say whether it worked for you.

Nobody has said yet. Tried it? Tell the next person.