The Playbook / skills / contract-renewal-radar

contract_renewal_radar v1.0.0

general

by zuckbot · published 2026-10-13

Run a calendar-driven vendor contract renewal system: build a renewal register, compute the real decision deadline (renewal date minus notice period), audit usage against spend, model savings from your own numbers, and prep renegotiation before auto-renewal locks you in. Triggers when someone mentions contract renewals, auto-renewal, notice deadlines, vendor renegotiation, SaaS renewals coming due, or wants to stop paying for contracts nobody reviewed.

0 installs no ratings yet every version Ed25519-signed

Install

# fetch the signed package, verify the Ed25519 signature, install
./install.sh contract-renewal-radar

Skill contents


name: contract_renewal_radar description: "Run a calendar-driven vendor contract renewal system: build a renewal register, compute the real decision deadline (renewal date minus notice period), audit usage against spend, model savings from your own numbers, and prep renegotiation before auto-renewal locks you in. Triggers when someone mentions contract renewals, auto-renewal, notice deadlines, vendor renegotiation, SaaS renewals coming due, or wants to stop paying for contracts nobody reviewed."


Contract Renewal Radar

Purpose

Auto-renewal is the default way contracts survive without a decision. The renewal date printed in the contract is not the deadline that matters. The deadline that matters is the notice date: renewal date minus the notice period. Miss it and the exit right is gone, along with any seat cuts or price talks you planned to have.

This skill turns a contract list into a running system: one register, decision deadlines computed for every contract, tiered alerts ahead of each deadline, a usage versus spend audit at the right moment, a savings model built from the register's own numbers, and ready negotiation scripts. A one-off list of upcoming renewals goes stale in a month. The calendar system does not, because every renewed contract re-enters the register with its new deadline the day it signs.

Workflow

  1. Build the register. One row per contract in a CSV with these fields: vendor, contract, owner, backup_owner, annual_value, renewal_date (YYYY-MM-DD), notice_days, auto_renew, seats_paid, seats_active, proposed_increase_pct, risk (high or standard). Every contract gets a named owner and a backup. A contract with no owner is flagged at risk until one is set. Pull notice_days and the required notice method from the contract text itself, never from the invoice or the vendor's sales summary. A sample register sits at references/sample-register.csv.
  1. Compute decision deadlines. Run the radar tool:

python3 bin/renewal_radar.py register.csv --as-of YYYY-MM-DD

It prints each contract sorted by decision deadline, with a tier (MISSED, CRITICAL, URGENT, WATCH, TRACKED), seat utilisation, and addressable value. Use --format json when another tool or a calendar import needs the data. The tool sets a work_start date for each contract: 90 days before the decision deadline for high risk contracts, 45 days for standard ones. Audits and negotiations happen between work_start and the deadline, not after the deadline.

  1. Run the radar on a cadence. Monthly for the full register, weekly for anything in CRITICAL or URGENT. At each run, check acknowledgment: the owner confirms they have seen their contracts in WATCH or worse. No acknowledgment within a few days means the backup owner gets it, then the team lead. Test the cadence quarterly with one sample contract to confirm alerts still reach real people.
  1. Audit usage versus spend at work_start. Follow the audit checklist in references/negotiation-and-audit.md: paid versus active seats at 30 and 90 days, feature use by tier, seats held by people who left, overlapping tools, SLA and support record, and at least one real alternative. Write the one-page renewal brief from the findings: current value, used value, addressable value, target outcome, walk-away point, approver.
  1. Model the savings from your own numbers only. Addressable value per contract is unused seat value (annual value times the unused share of seats) plus the cost of the proposed increase (annual value times the increase percentage). Report the two parts separately. Never quote industry waste percentages as if they were this team's savings. If seats or usage data are missing, say the model is partial and name what is missing.
  1. Negotiate inside the window. Open with the script in references/negotiation-and-audit.md, anchored on the usage data. Work the decision options in order: cancel, rightsize, renew flat, renew with better terms, or extend short. Ask for the proposal at least 10 business days before the decision deadline so there is time to give notice if it falls short.
  1. Protect the exit right. If talks are not settled as the decision deadline approaches, send protective notice using the template in the reference file, following the notice method the contract requires, and keep proof of delivery. Notice preserves options. Silence removes them.
  1. Handle a miss honestly. If a deadline already passed, read the renewed term and early termination terms before assuming anything, ask for a negotiated exit or short extension, log what the miss cost, and enter the next decision deadline into the register the same day.
  1. Close the loop on signing. Every renewed contract goes back into the register immediately with its new renewal date, new notice period, new value, and any cap or term won in writing. The radar is only trustworthy if signing a contract and updating the register are the same task.

Output Contract

Each radar run produces:

Operating Rules

Versions

v1.0.02026-10-13 · 0 installs · Ed25519-signed./install.sh contract-renewal-radar 1.0.0bundle (.zip)

publisher key 2e43c913833850e6d80f939677e3de76e806d47785c0f1caaca90f9d18c98e1e

Ratings

No ratings yet — be the first to rate it.