Sales Pipeline Hygiene Checker
Pipeline hygiene check for CRM exports: past-due close dates, stale and stuck deals, missing amounts, duplicates, slipped deals. Fix list per owner. $19.
View Sales Pipeline Hygiene Checker
Find every software subscription your company pays for, in one pass over the card exports you already have.

Find every software subscription hiding in your company card and bank exports: what it costs per month and per year, when it renews, and where money is being wasted. One command, Python standard library only, nothing uploaded.
python3 -m saasspend amex.csv chase.csv --out spend-review/examples/transactions.csv: 75 transactions, 14 subscriptions, about 608.39/month (7,300.65/year)
ERROR DUPLICATE_CHARGE Figma 45.00 charged on 2026-09-18 and 2026-09-20 ...
WARN PRICE_INCREASE Slack 87.50 -> 105.00 (+20%) on 2026-10-03
WARN OVERLAPPING_TOOLS GoTo Meeting, Zoom 2 video meetings tools: could one do the job?
INFO RENEWAL_SOON 1Password annual renewal expected around 2026-11-20 (95.88)The screenshot is real output from the kit’s own commands. Tested from a fresh download of this exact zip: ./run_tests.sh ran 6 tests OK on Python 3.13 and 3.10.

| Check | Meaning |
|---|---|
| subscriptions list | every vendor that charges on a schedule (weekly, monthly, quarterly, annual) plus ~130 known software vendors, with monthly and annual cost and next expected charge |
| DUPLICATE_CHARGE | same amount from the same vendor within 3 days: ask for a refund |
| PRICE_INCREASE | latest charge more than 5% above the one before |
| TWO_CARDS | same vendor paid on two cards in the last two months: two teams, two accounts? |
| OVERLAPPING_TOOLS | two or more tools in the same category (video meetings, docs & wiki, project management, file storage, design, CRM, email marketing ...) |
| RENEWAL_SOON | annual or quarterly renewal in the next 60 days (--renewal-days) |
| STOPPED | monthly vendor with no charge for 45+ days |
| PERSONAL_SUBSCRIPTION | Netflix, Spotify and similar on a business card |
Card descriptions are cleaned first (SQ *, PAYPAL *, GOOGLE *GSUITE_x, phone numbers, reference numbers), so ZOOM.US 888-799-9666 CA and PAYPAL *DROPBOX 4029357733 are found. Reads Amex, Chase, Capital One, QuickBooks and bank exports: charges positive or negative, or separate Debit/Credit columns; US and EU number formats.
Outputs in --out: subscriptions.csv (with owner and keep_cancel columns to fill in), findings.csv, summary.md. --json prints everything as JSON. Exit code 1 if a double charge is found, 2 if a file can't be read.
./demo.sh runs the example (14 subscriptions, 11 findings). ./run_tests.sh runs the tests. It's also a Claude Code plugin with a skill in skills/saas-spend/.
Related: Payroll Register Reconciliation Skill, Duplicate Payment & Vendor Audit Skill, Contract Renewal Tracker Skill. License: LICENSE.txt.
Zip, 16 KB, v1.0, 14 files. You may use and modify this kit for your own work and for clients you serve, including paid client work. Not affiliated with or endorsed by any card issuer or software vendor.
Find software subscriptions in card or bank exports: monthly and annual cost, double charges, price increases, overlapping tools, renewals. Local, $19.
Pipeline hygiene check for CRM exports: past-due close dates, stale and stuck deals, missing amounts, duplicates, slipped deals. Fix list per owner. $19.
View Sales Pipeline Hygiene CheckerFree UTM builder and checker: tag a whole campaign sheet, catch utm typos, capitals and spaces, and see which links GA4 will file as Unassigned.
View UTM Builder & Checker (Free)Free cron expression explainer: plain English, next run times in your time zone, and warnings for common mistakes. Crontab, GitHub Actions, Kubernetes.
View Cron Expression Explainer & Checker (Free)