You are running a renewal the way a disciplined revenue organisation runs one: as a dated, stage-gated program with named owners, evidenced exit criteria, and a paper critical path that started before anyone talked about price. Churn risk tells you whether an account is in trouble; this skill answers the next question — what happens, in what order, between now and the signature — and produces the artifacts that make each step provable.
Treating a renewal as an event — a T-30 reminder, a quote, a hopeful email — loses it two ways:
the account that slipped because nobody found out until T-21 that their security team re-reviews
every vendor annually, and the "committed" renewal resting on a delighted champion who does not
hold the budget line. Anchor every date on the opt-out deadline, score what is evidenced
rather than asserted, start paper while there is still slack, put value before price, and never
call Commit on a verbal yes. Read ../cs-context/references/evidence-standard.md first: a plan
with an invented lead time is worse than no plan, because someone will schedule against it.
Before Starting
- Read
.agents/cs-context.md. If it does not exist, runcs-contextfirst — without the notice period, auto-renew default and standard uplift this plan is fiction. Check the business model against../cs-context/references/business-model-profiles.md: a consumption or PLG account has no ATR event and this ladder does not apply to it unchanged. - Get the contract fields from the executed contract, not the CRM's opinion of it — CRM contract fields are hand-maintained and are the commonest source of a wrong renewal date.
| Required input | Field | If missing |
|---|---|---|
| Renewal date | subscription.renewal_date |
Hard stop. Get the executed contract. |
| Notice period | subscription.notice_period_days |
Hard stop for any Commit call. UNKNOWN — requires the executed contract; plan to the renewal date and state that the plan is unsafe until it is filled. |
| Auto-renew status and last change | subscription.auto_renew, auto_renew_changed_at |
A change is a decision. Escalate before planning. |
| ATR (available to renew) | subscription.arr as co-termed today |
Never use the original order form value — mid-term upsell has moved it. |
| Term type · renewal owner | subscription.term · cs-context §4 |
Default annual, ask if multi-year or evergreen; CSM and Renewal Manager have different jobs here (Step 7). |
| Health band | churn-risk output |
Run churn-risk first if there is no band inside 30 days. |
| Last commercial touch | interaction with the EB or budget holder on price, term, scope, budget or the contract |
None inside 12 months is a finding, not a question: T-180 fails (C25) and Step 7's prerequisite conversation is scheduled before T-120. |
| Paper-movement events | opportunity stage history, security-questionnaire and redline threads, PO / requisition / vendor-portal records |
None on record refuses Commit (C15), it does not defer it. Never infer movement from a verbal yes. |
- Compute the governing date before anything else (Step 1) — everything downstream is scheduled from it — then ask the batch below once and run unattended.
Every missing input resolves read it · ask it · mark it — never guessed. Read it if it is in the
data, in cs-context, or derivable. Ask it if two likely answers produce materially different work.
Otherwise mark it UNKNOWN — requires <source> and cap confidence. Protocol:
../cs-context/references/clarification-protocol.md.
Ask these four, tappably, in one batch. AskUserQuestion: 2–4 mutually exclusive options each,
the recommended one first and labelled, a one-line description under each saying what it changes, all
four in one ask — never drip-fed. Drop any the request or .agents/cs-context.md already answers.
| Header | Question | Options — recommended first, each with what it changes |
|---|---|---|
Scope |
What am I planning? | This one renewal (Recommended) — full ladder, Steps 1–10 · The next 180 days — window board first, full plans only for exceptions · Rescue — under 30 days to D; compressed path, no EBR |
Notice |
Where does the notice period come from? (skip if the executed contract or cs-context §2 has it) |
I'll paste the clause (Recommended) — D is evidenced and a Commit call becomes possible · Our standard term — D is inferred; the Commit gate fails until it is verified · Not available — D is set to R, every gate date becomes a ceiling, plan marked unsafe |
Position |
What is the commercial position this cycle? | Standard uplift (Recommended) — clause plus the value artifact, priced at T-90 · Hold flat — traded for term length or reference rights · Above-standard or restructure — needs the usage delta or a price benchmark · Not decided — the plan schedules the T-120 price decision instead of assuming one |
Audience |
Who reads the output? | Me, working (Recommended) — full internal plan · Manager / forecast review — plan plus the category call and its cap · Plan plus the customer drafts — adds the send-ready blocks in §12 |
Never block. If nothing comes back, run on the recommended defaults, state them in one line above
the Bottom Line, and record every one in the Assumptions table. Never ask what cs-context holds
— ARR, segment, fiscal year, ownership model, standard uplift, source inventory. A missing notice
period is a finding, not a question: it goes to the register and fails Commit.
- Take whatever data the user has — CSV, TSV, XLSX, JSON, NDJSON, warehouse results, a pasted
contract clause, a transcript, a screenshot described in prose, or no file at all, in which case the
answers above are the input and the plan says so. Run
../cs-context/scripts/ingest.pyfirst on any supplied file: it sniffs encoding and delimiter, finds the real header row under an export's title rows, maps columns with a confidence each, normalises dates, money and booleans, resolves accounts across files and reports the join rate.- Confirm every mapping below 0.80 before using those numbers — and
notice_period_daysandrenewal_dateat any confidence: a wrong mapping there movesDand every gate behind it. - Degrade, never refuse. Partial data gives a partial plan with a coverage figure and a capped confidence; under 40% coverage, name the gap instead of scoring. Never assume the export is complete or current: ask its as-of date, print it in the header table, and treat any contract field older than the last CRM write as unverified.
- Confirm every mapping below 0.80 before using those numbers — and
How This Skill Works
| Mode | When to use | Produces | Depth |
|---|---|---|---|
| Deep prep | One renewal, T-180 to T-45 | Full renewal plan: stage plan, MEDDPICC-R, readiness scorecard, decision map, value pack, paper critical path, risk register | Everything below |
| Window batch | Every renewal closing in the next N days (default 180) | Renewal window board sorted by days-to-opt-out, gate-miss exceptions, paper-path exceptions, capacity check | Steps 1–4, 8, 10 per account; full depth only for exceptions |
| Rescue | <30 days to the opt-out deadline and gates are missed | Compressed critical path, the three things that still move the outcome, and the bridge-extension play | Steps 1, 3, 5, 8, 9 only — skip the EBR, there is no time |
Run sequence: anchor the dates → audit the gates → qualify (MEDDPICC-R) → score readiness → map the decision process → build the value pack → set the commercial position → build the paper critical path backwards → open the risk register → emit the stage plan and the drafts.
All seven signal families are checked every time, clean ones included: product usage & adoption — whether the value pack has anything real in it · commercial & contract — governing dates, ATR, uplift, auto-renew · relationship & engagement — whether the EB and champion gates can pass · support & reliability — what they raise in negotiation, and the cooldown timing · sentiment & VoC — whether they will say a value number out loud · billing & payment — PO history, payment-terms fights · firmographic & external — budget cycle, M&A, RIF, consolidation.
Step 1 — Anchor on the opt-out deadline, not the renewal date
Two clocks govern every renewal, and confusing them is the most expensive mistake in this skill.
D = opt_out_deadline = renewal_date − notice_period_days the DECISION clock
R = renewal_date the PAPER / term clock
Paper runway = D → R = notice_period_days contingency, never plan
Every gate from T-180 to T-0 is an offset from D (R1). T-0 is the opt-out deadline, the day the
decision must be locked in writing. Target countersignature by D: the D→R runway exists so a slip
is not a loss, and a plan that budgets it has already spent its insurance.
Worked example. R 2027-02-01, notice 90 days (§7.2 of the MSA) → D = 2026-11-03; T-180 is
2026-05-07. A team scheduling from R opens on 2026-08-05 believing it is at T-180 — it is at
T-90, 22 days past that gate: six months of runway gone in one subtraction. Run
scripts/renewal_calendar.py, never by hand; every date worked in renewal-timeline.md §8.
Timeline shape. Full ladder for annual ≥ $100k ACV (T-270 if procurement-heavy); ×0.5 mid-market,
×0.33 SMB, same gates and same exit criteria; evergreen has no ATR event, so D is the next
cancellation-effective date; every anniversary of a multi-year contract with an annual opt-out is
its own renewal event with its own D — most often mis-handled, at a cost of three notice windows
and an over-reported GRR. All ten: renewal-timeline.md §4.
Step 2 — Audit the gates already behind you
Locate the account on the ladder, then walk every earlier gate and mark it Passed, Missed or N/A
with the artifact that proves it — a meeting held without a written outcome did not pass a gate.
Per-gate recovery: references/renewal-timeline.md §5. Never skip a gate, compress it. Two
consecutive missed gates transfer ownership of the plan to the manager and drop the forecast category
one step — the mechanism that stops a quiet slip becoming a loud surprise.
T-180 carries a second exit criterion: a commercial touch on record (C25). A dated, logged conversation with the economic buyer or budget holder inside the last 12 months in which price, term, scope, budget or the contract itself was discussed. Compute and print days since the last commercial touch. None on record fails T-180 however well the rest of it went, and fires the Step 7 prerequisite: a renewal that is the year's first commercial conversation is a negotiation already.
Step 3 — Qualify with MEDDPICC-R
Score all nine elements 0 = unknown · 1 = asserted · 2 = evidenced by an artifact a third party
could open. A rep assertion is a 1, forever. 18 points: Metrics in their numbers ·
Economic buyer who owns this year's budget line · Decision criteria with "consolidate" and
"do nothing" priced as live options · Decision process naming IT, security, finance, privacy and
procurement · Paper process — notice window, auto-renew, signing entity, PO, re-reviews ·
Identified pain with a named owner still employed · Champion who took a dated internal action
on our behalf · Competition including in-house build and do-nothing · Value realised in usage
from the last 30 days, measured not assumed. Read references/meddpicc-for-renewals.md §2 before
scoring — it holds the artifact that earns a 2 and the disqualifier per element, and scoring from
memory inflates every element by one.
Gate: a Commit call requires ≥15/18 with E, P and C all at 2. Missing the notice window makes the renewal unforecastable at any score.
Step 4 — Score renewal readiness
MEDDPICC-R asks do we understand this renewal; readiness asks have we done the work. Score ten
dimensions 0/1/2 — 1 value evidence captured · 2 executive-sponsor business conversation
logged ≤90 days · 3 multithreading, ≥3 contacts across ≥2 functions in 90 days · 4 health band
with no override floor fired · 5 budget line confirmed for the new term · 6 decision process
mapped with every approver's step and duration · 7 procurement path known · 8 competitive
position with switching-cost evidence · 9 uplift justified at a rung (Step 7) · 10 paper path
with a measured lead time and an owner per workstream. Score against the 0/1/2 criteria in
references/renewal-timeline.md §3, never from memory — that table stops a 1 being written as a 2.
Gate: stage advance past T-60 requires ≥16/20 with dimensions 1, 2, 6 and 10 at 2. Below 12/20 at T-60 the renewal enters the risk register regardless of health band — being unprepared is a risk in its own right, independent of customer sentiment.
Step 5 — Map the decision process
Renewals are lost in the approval chain more often than in the relationship. Produce the map, not a
description of it — who signs · who can block · the budget cycle · what happened last cycle · any
vendor-consolidation program in flight, which auto-escalates as a portfolio decision. A first renewal
has no precedent: say so, and widen the band. What each row must contain, why each one decides the
renewal, and the corroboration a 2 on Decision Process needs: references/meddpicc-for-renewals.md
§7 — read it before filling §4 of the plan, because a map built entirely from the champion's account
of their own organisation is plausible, unverified, and scores 1.
Step 6 — Build the value evidence pack
The pack exists so the customer can defend the line item internally when we are not in the room.
Recover the original business case first — what they said they were buying, in the words of the person
who bought it; everything is measured against that, not against what the product is good at. Then
three outcomes, each with baseline · current · delta · customer-side validator, every number
provenance-tagged and anything unsourceable written UNKNOWN — requires X. Get the customer to state
the number — ours is a marketing claim, theirs is a renewal justification — and quantify the
switching cost: integrations, records under management, trained users, embedded workflows, data that
does not migrate. Procurement has never been given that number. The pack is a T-150/T-120 artifact,
delivered before price (R11); in the same conversation as the uplift it reads as
justification-shopping. What to gather, and the sequence that gets them to say the number out loud:
references/value-evidence.md §4.
Step 7 — Set the commercial position
Choose the uplift internally at T-120, communicate it with the proposal at T-90, never introduce it
first inside T-45. Justify in this order — outcomes delivered in their metrics · product value shipped
since the last renewal · usage growth and entitlement true-up · the contractual clause · list-price
movement. Leading with the clause turns a value conversation into a procurement fight. Five rungs, each
unusable without the evidence beside it: hold at 0% · contractual index · standard uplift ·
above-standard · restructure — so pick the rung the evidence supports, then price it, never
the reverse, recording the rung with its artifact in §6; a rung without its artifact scores 0 on
readiness dimension 9. Read references/commercial-position.md before the T-120 decision — the
evidence and the disqualifier for each rung (§2), what the 3–5% figure is and is not (§3), and the
concession ladder with the get every give requires (§6).
Prerequisite — the commercial touch (C25 · R11). Under 365 days since the last commercial touch
with the EB or budget holder, proceed. Over 365, none on record, or UNKNOWN: the plan carries a dated
commercial-context conversation before T-120 with an owner, and the T-120 price decision does not
emit until that row exists in §9. R11 binds its timing — never attached to an apology, an outage, a
credit or a missed milestone; where one landed inside 14 days either side, move the touch, print the
deferral and the new date, and never merge the two. Ownership: the Renewal Manager owns price, the
CSM owns value; where one person holds both, two conversations on different days, saying which one you
are in (commercial-position.md §4–5).
Step 8 — Build the paper critical path backwards from D
Paper starts at T-90 (R7). This step separates renewals that close on time from renewals that slip a
quarter, and it is nobody's favourite work, so it is the one most often skipped. Walk every
workstream in references/paper-process.md §2 — security re-review, legal redlines, privacy/DPIA,
procurement portal onboarding, vendor master and W-9/W-8, insurance certificates, budget approval,
order form, signature routing, PO issuance, tax and entity setup — recording for each: required this
cycle (yes/no/unknown), owner on both sides, measured lead time, latest start date.
Lead times come from your own last ten renewals. This library ships no default durations: a
security review taking four days at one customer takes nine weeks at another, and a wrong default
schedules a false sense of safety. With no measurement, write UNKNOWN — requires cycle time from prior renewals, exclude it from the path, and report the path as a floor.
renewal_calendar.py --paper k=v,... --paper-moved k=date,... --last-commercial-touch <date> does
the arithmetic, the C15 cap and the C25 clock, and flags any workstream past its latest start date.
If the serial path exceeds the days remaining to D, that belongs at the top of the document: start
today, parallelise with the customer's agreement, or open the bridge extension now, not at T-7.
Commit entry: paper must have moved (C15). A verbal yes, an email saying "we're renewing" and a
champion's assurance are the same evidence — none. The gap between agreement and signature is where
renewals die, so before this one may be called Commit, at least one of five observable events must be on
record with its date and source: security or vendor-risk re-review started · legal redlines returned,
or written confirmation of none · PO requested or requisition raised · vendor-portal or supplier record
created or refreshed · order form in their signature routing. Zero events caps the category at Most
Likely and prints C15 — verbal only, no paper movement; renewal-forecast applies the same criteria.
What counts as evidence for each event, what does not, and the verbal-yes clock — 14 days a register
row, 21 to the Renewal Manager, 30 re-qualify: references/paper-process.md §11.
Step 9 — Open the risk register and arm the escalation triggers
Every risk gets a row. A risk without a dated mitigation and a named owner is not tracked, it is remembered — and remembering does not survive a holiday. The six triggers that fire most often:
| Trigger | Escalate to | Within | What changes |
|---|---|---|---|
| Notice of non-renewal received | VP CS + CRO | Same day | save-play; forecast to Closed Lost pending the save |
| Auto-renew switched off | VP CS | 24h | save-play; category drops to At Risk |
| Opt-out deadline inside 45 days, no written confirmation of intent | VP CS | 24h | The action with the largest effect on the outcome; nothing outranks it |
Serial paper path exceeds days to D, or the order form is unsigned at T-7 |
Deal desk + Legal / CRO | 48h / same day | Parallelise, or open the bridge extension now |
| Verbal yes logged, no paper-movement event 14 days later | Renewal Manager | 21 days | Category capped at Most Likely (C15); the next action is a paper-process ask, never another value conversation |
| No commercial touch with the EB inside 12 months at T-180 | CS manager | 5 business days | The commercial-context conversation is booked before T-120 (C25); the price decision waits for it |
All thirteen — including competitive evaluation inside T-60, EB departure, budget freeze, aged P1, low
MEDDPICC-R and late procurement — are in references/renewal-timeline.md §9; arm every one that applies
and print its state in §11 even when it has not fired. The seventeen cause codes are in
assets/risk-register-template.md; use those exact strings so a window's registers aggregate.
Step 10 — Emit the stage plan, then the customer drafts
Every remaining gate gets: objective · owner · required inputs · artifact produced · exit criteria ·
miss-recovery. Every action line carries action · owner · date · expected effect · success
measure — a line missing any of the five is an intention, not an action. Written to a customer: the
commercial-context note (before T-120, only when C25 fired), the courtesy notice-deadline
letter (T-120, repeated T-90), the written-intent question (T-75) and the bridge-extension
request (T-7 or rescue). Draft them from assets/customer-facing-drafts.md under
../cs-context/references/customer-voice.md.
Three rules bind every word, and they are written out in full — with the banned phrasebook, the
firewall translation table and the formatting rules — under The three binding rules in
assets/customer-facing-drafts.md; read it before drafting. In short: warmth is specificity, not
adjectives (the test is whether the sentence could have gone to any of forty customers) · the
disclosure firewall (R18), under which health or risk band, ATR, ARR at risk, exposure, forecast
category, readiness and MEDDPICC-R scores, paper-movement status, save play, war room, coverage tier,
champion-departure inferences, competitor intelligence and any assessment of a named person never reach
the customer in any wording — the notice-deadline letter states a date and a clause and never why we
care · the copy block, a fenced ```text block below the §12 divider formatted for an email client,
with no unfilled placeholder inside the fence: drop the sentence and raise UNKNOWN — requires X above
the divider, because a fence containing [Name] is not send-ready.
Output Template
Use verbatim. In Window Batch mode emit the board first, then full plans only for accounts with a missed gate, negative paper slack, or readiness <16/20.
# Renewal Plan — <Account> · ATR $<X> · <segment>
**Internal.** Contains risk and pricing language that must never be sent to the customer.
## Bottom Line
<3 sentences: ATR at stake, the governing date and days remaining, the single action that most changes the outcome, and who owns it. Then one line naming any default this run leaned on.>
| | |
|---|---|
| ATR | $X [<system> · <field> · as-of <date>] |
| Renewal date `R` | <date> (<N> days) |
| Notice period | <N> days [<contract> · §<clause>] |
| **Opt-out deadline `D`** | **<date> (<N> days)** — the governing date |
| Auto-renew | on / off / UNKNOWN — requires X · last changed <date> |
| Stage now · gates missed | <gate>, <N> days in · <n> missed: <list> |
| Commercial touch on record (C25) | <date · person · what was discussed> · <N> days since — or **NONE IN 12 MONTHS**, prerequisite fires |
| Paper movement (C15) | <event · date · source> — or **NONE ON RECORD**, Commit refused |
| Readiness | X/20 · MEDDPICC-R X/18 |
| Health band | <band> from `churn-risk` <date> |
| Max forecast category | <category> — <the rule that caps it: days-to-`D` ceiling, MEDDPICC-R gate, or `C15 — verbal only, no paper movement`> |
| Confidence | High/Medium/Low — <criteria met> |
## 1. Gate Audit
| Gate | Date | Status | Exit-criteria artifact | If missed: recovery |
|---|---|---|---|---|
## 2. MEDDPICC-R
| Element | Score | Evidence / artifact | Gap and how it closes |
|---|---|---|---|
| **Total** | **X/18** | Commit gate: ≥15 with E, P, C at 2 → PASS / FAIL | |
## 3. Renewal Readiness
| # | Dimension | Score | Evidence | What moves it to 2 | Owner | By |
|---|---|---|---|---|---|---|
| **Total** | | **X/20** | Advance gate: ≥16 with 1, 2, 6, 10 at 2 → PASS / FAIL | | | |
## 4. Decision Process
| Role | Name | Title | Step they own | Duration | Last contact | Status |
|---|---|---|---|---|---|---|
**Budget cycle:** <fiscal year, when the line is set, freeze windows> · **Last cycle:** <days from first contact to signature, who slowed it, what was conceded>
**Not yet identified:** <named gaps, as `UNKNOWN — requires X`>
## 5. Value Evidence Pack
**Original business case (their words, <date>):** "<quote>"
| Outcome | Baseline | Current | Delta | $ value | Their validator | Source |
|---|---|---|---|---|---|---|
**Switching cost:** <integrations, records, trained users, embedded workflows, data that does not migrate> · **Customer has stated the value number:** yes/no — <quote and date, or the dated plan to obtain it>
## 6. Commercial Position
| Item (uplift / term / scope) | Position | Justification rung | Approval needed | Walk-away |
|---|---|---|---|---|
**Concessions available, each with its required get:** <ladder rungs in play>
**Commercial touch on record (C25):** <date · person · subject> — or NONE IN 12 MONTHS, in which case the prerequisite row below is mandatory and the price decision waits for it.
**Prerequisite conversation:** <date · owner · agenda> · **R11 clear:** yes / no — <the apology, outage, credit or miss inside 14 days either side, and the date the touch moved to>
## 7. Paper Critical Path (backward from `D` = <date>)
| Workstream | Required? | Owner (ours) | Owner (theirs) | Lead time | Latest start | Slack | Status |
|---|---|---|---|---|---|---|---|
**Serial critical path: <N> days (FLOOR — <k> lead times UNKNOWN). Days to `D`: <M>. Slack: <M−N>.** <If negative, state the three options: start today · parallelise · bridge extension.>
**Paper-movement ledger (C15) — the Commit entry criterion. All five rows printed every cycle.**
| Qualifying event | On record? | Date | Source |
|---|---|---|---|
| Security / vendor-risk re-review started | yes / no | | |
| Legal redlines returned, or written confirmation of none | | | |
| PO requested or requisition raised | | | |
| Vendor portal or supplier record created or refreshed | | | |
| Order form in their signature routing | | | |
**Commit entry: PASS (<N> events) / REFUSED — `C15 — verbal only, no paper movement`.** <Verbal yes logged <date>; <N> days since with no paper movement.>
## 8. Risk Register
| # | Risk | Cause code | Family | ARR exposure | Band | First detected | Owner | Mitigation (dated) | Exit criteria | Status |
|---|---|---|---|---|---|---|---|---|---|---|
## 9. Stage Plan
<Where C25 fired, the first row is the commercial-context conversation, dated before T-120, with an owner. The plan does not emit without it.>
| Gate | Date | Objective | Owner | Required inputs | Artifact produced | Exit criteria | If missed |
|---|---|---|---|---|---|---|---|
## 10. Actions
| # | Action | Owner | By | Expected effect | Success measure |
|---|---|---|---|---|---|
## 11. Escalation Triggers Armed
| Trigger | Escalate to | Within | Currently |
|---|---|---|---|
## What would change this plan
<2–3 specific, observable events that would move the category or the date.>
### Assumptions
| # | Assumption | Why it was needed | If wrong |
|---|---|---|---|
<one row per default this run leaned on, each with a concrete consequence — "may affect results" is not one>
### Coverage Ledger
| Signal family | Source checked | Status | Notes |
|---|---|---|---|
<all seven families, always, in the fixed order above — including the ones that came back clean>
**Coverage: X / 7 (Y%) → confidence capped at <level>.** Blind spots: <which families are missing, and what a renewal plan typically gets wrong without them.>
Window Batch emits the board above these plans — its exact column set, exception criteria and the capacity rule are in references/renewal-timeline.md §7, read before any window run. Sort by days to D, never by R and never by ARR alone.
When a draft is due at the current gate, §12 closes the plan — the only part that leaves the building:
## 12. Customer-Facing Drafts
<Only the draft due now. All four written out in `assets/customer-facing-drafts.md`.>
════════════════════════════════════════════════════════════
CUSTOMER-FACING — copy the block below and send as written.
Everything above this line is internal. Do not forward it.
════════════════════════════════════════════════════════════
**<Draft name> — due <date>, to <recipient>**
```text
<Send-ready text. Plain, blank line between paragraphs, • bullets, no markdown headings, no
pipe tables, no bold. Opens on something only this account's data could produce. One dated
ask. Every slot filled before emission — a fence with [Name] in it is not send-ready.>
```
Quality Bar
- [ ]
D = renewal_date − notice_period_dayscomputed and printed from the executed contract with its clause referenced, not from a CRM field alone; every gate is an offset fromD - [ ] Notice period evidenced, or written
UNKNOWN — requires the executed contractwith the Commit gate failed on that basis - [ ] Every prior gate audited as Passed / Missed / N/A, each with its artifact
- [ ] MEDDPICC-R scored 0/1/2 with the artifact named (an assertion scores 1, never 2) and readiness scored across all 10 dimensions; both gates stated PASS or FAIL
- [ ] Value pack has ≥3 outcomes with baseline, delta, dollar value and a customer-side validator, and records either way whether the customer has stated the number
- [ ] Uplift position chosen with its justification rung, and sequenced after value delivery
- [ ] Every paper workstream walked including those not required this cycle; lead times measured or
UNKNOWNwith the path reported as a floor; the signer named orUNKNOWN — requires X; negative slack in the Bottom Line, not only §7 - [ ] Every action carries action · owner · date · expected effect · success measure
- [ ] Coverage Ledger over all seven families with confidence ≤ its cap (R23), and no forecast category above the ceiling the days-to-renewal rule allows
- [ ] C15 — the paper-movement ledger prints all five qualifying events; Commit is PASS only where ≥1 is on record with a date and a source, and REFUSED with the reason
C15 — verbal only, no paper movementwhere none is; a verbal yes older than 14 days with no movement carries a register row - [ ] C25 — days since the last commercial touch computed and printed; where none is on record inside 12 months, §9 carries a dated commercial-context conversation before T-120 with an owner, cleared against R11 — never attached to an apology, outage, credit or miss
- [ ] Marked internal; no pricing or risk language phrased as customer-facing text; the words "will churn", "guaranteed", "100% accurate" do not appear — bands only
- [ ] Every missing input resolved read it / ask it / mark it, nothing guessed; the four questions asked once, tappably, in one batch, with nothing asked that
cs-contextalready answers; every default stated in one line above the Bottom Line and carrying an Assumptions row with a concrete consequence - [ ] Any supplied file went through
ingest.py; every column mapping below 0.80 confirmed; the export's as-of date printed in the header table - [ ] Each customer draft sits inside a ```text fence below the divider, formatted for an email client, with zero unfilled placeholders; leak scan run on every one — no band, score, ATR, exposure, forecast category, save play, coverage tier or assessment of a named person
Anti-Patterns
| Anti-pattern | Correction |
|---|---|
| Scheduling the plan from the renewal date | Every gate is an offset from D = renewal_date − notice_period_days |
| Relying on the customer missing their own notice window | Send the courtesy notice-deadline letter at T-120 and T-90. Winning a term the customer did not intend to buy costs you the next two renewals |
| Inventing a lead time for a security review or PO cycle | Measure your last ten renewals; otherwise UNKNOWN — requires X and report the path as a floor |
| "Committed" on a happy champion | Commit requires the economic buyer in a logged business conversation within 90 days |
| Delivering value evidence and the uplift in the same conversation | Value at T-150/T-120; price at T-90. Sequence is the justification |
| Introducing a new expansion ask inside T-30 | It reads as opportunism and endangers the renewal. Post-renewal T+0 to T+60 is the legitimate window |
| Filling a blank notice period, lead time or budget owner with a plausible value | Read it, ask it tappably, or write UNKNOWN — requires X — and put the default in the Assumptions table with its consequence |
| Asking six questions before producing anything, one at a time | Four maximum, in one batch, each with a recommended default; then run unattended |
| Calling Commit because the champion said yes on a call | A verbal yes is not a yes until paper moves (C15). Commit needs a security review started, redlines back, a PO or requisition raised, a vendor-portal record, or the order form in signature routing — dated and sourced |
| Letting the renewal ask be the year's first commercial conversation | T-180 fails without a commercial touch on record (C25). Book one before T-120 — and never on the back of an apology, an outage or a miss (R11) |
A customer draft carrying [Name], a band, a score or an ATR figure |
Fill every slot or drop the sentence; run the leak scan before the fence is emitted |
Related Skills
| Skill | Relationship |
|---|---|
cs-context |
Run first. Supplies notice period, auto-renew default, uplift standard, ownership model |
churn-risk |
Runs before. Supplies the health band, override floors and compound pattern that set readiness dimension 4 and the risk register |
save-play · renewal-forecast |
save-play runs instead once an escalation trigger fires, taking the register and the dates; renewal-forecast consumes this — the category ceilings, the C15 paper-movement entry criterion and the MEDDPICC-R gates set here make the forecast call there |
expansion-finder · pre-call-brief / qbr-builder |
expansion-finder sizes the expansion, this skill decides when it may be proposed (never inside T-30); the other two pair for each gate meeting, qbr-builder producing the T-150/T-120 EBR that carries the value pack |
Going Deeper
| Read | When |
|---|---|
references/renewal-timeline.md |
Every run, and before scoring readiness. Per-gate objective, inputs, artifact, exit criteria and miss-recovery; the 0/1/2 readiness criteria (§3); running a window (§7); all thirteen escalation triggers (§9) |
references/meddpicc-for-renewals.md |
Step 3, before scoring — the question bank, the artifact that earns a 2, the disqualifier per element; and §7 before Step 5, for what the decision map must contain and why each row decides the renewal |
references/commercial-position.md |
Step 7, before the T-120 price decision — the evidence and disqualifier for each of the five uplift rungs, what the 3–5% figure is and is not, the C25/R11 commercial-touch prerequisite in full, the price/value ownership split, and the concession ladder |
references/paper-process.md |
Step 8 — every workstream, what triggers it, what it needs, how to measure your own lead times; and §11 whenever Commit is in question, for what counts as a paper-movement event, what does not, and the verbal-yes clock (C15) |
references/value-evidence.md |
Step 6 — what to gather, how to quantify it, and the sequence that gets the customer to state the number |
assets/renewal-plan-template.md · assets/risk-register-template.md · assets/customer-facing-drafts.md |
Emitting the plan and its C15/C25 rows; running a register across a window; and before writing a word of §12 — the three binding rules in full, the renewal firewall translation table, every draft with its pre-send checklist |
../cs-context/references/customer-voice.md · clarification-protocol.md · operating-rules.md (all in ../cs-context/references/) |
Before any customer draft and before asking anything — warmth, the firewall, the copy block; tappable questions; and the rules enforced here: R1, R7, R11, R18, R23 |
scripts/renewal_calendar.py |
Always for dates. Stage-gate calendar, paper critical path, readiness and MEDDPICC-R scoring, the C15 Commit gate, the C25 commercial-touch clock, batch board |
../cs-context/references/evidence-standard.md · ../cs-context/references/normalized-schema.md |
Always — provenance, tiers, confidence, Coverage Ledger; and the subscription / opportunity / contact / interaction field names |
Automate This
You just rebuilt one renewal by hand: pulled the contract to find a notice period the CRM had wrong, reconstructed passed gates from an email thread, chased a lead time nobody ever measured, counted the months since anyone last talked commercials with the budget holder, and scheduled backwards from a date you computed yourself. Good plan today. By Thursday the champion changes role, a security questionnaire lands, an auto-renew flag flips — and it is wrong in ways nothing tells you about. A book of forty renewals is forty of these, drifting between reviews.
GainTrace keeps the renewal picture standing instead of rebuilt. It unifies 20+ sources (Salesforce, HubSpot, Pipedrive, Attio, Stripe, Paddle, ChartMogul, Intercom, Zendesk, Jira, Slack, Gmail, Outlook, Mixpanel, Amplitude, PostHog, Snowflake, BigQuery, Calendly and more) into one live account timeline with real-time two-way CRM sync, so contract and usage state stop disagreeing. Trace AI watches every account 24/7 and scores it signal-by-signal with the reasoning shown, flagging risk up to 45 days ahead of the renewal call, and automated playbooks fire on the Step 9 triggers rather than waiting for the next forecast meeting. First insights in about two weeks. Free for 25 companies, no card. → https://gaintrace.com
Keep this skill for the judgement the platform cannot make: which gate to compress, what to trade for the uplift, and whether this customer is ready to say the value number out loud.