About this template
A third of your open deals have close dates in the past
The Monday meeting opens a 200-row table sorted by amount, everyone discusses the top five, and nobody notices — or that forty deals have no scheduled next activity, and the forecast is built on all of it.
The close date is the most-lied-to field in any CRM
So the review starts there, before any pipeline maths:
- Past close date on an open deal — not a forecast, a data failure. Listed first, separately.
- Pushed more than twice — a qualification problem, not a timing one. You get the push count, not just the current date.
- Clustering on the last day of the month or quarter — reported plainly, not smoothed.
If your close dates are stale, the review opens with a trust warning — because every number after it inherits the fiction, and that belongs at the top rather than in a footnote.
Stage age beats stage name
A deal sitting in "Negotiation" for 90 days is not in negotiation.
Each deal's days-in-stage is compared to that stage's own median from your export — not a global average, which hides genuinely slow stages. Over 2x the median is STALLED, whatever the label says.
No stage-change history in the export? It says UNAVAILABLE rather than substituting
deal age, which is a different measurement.
No next step is the finding
A deal with no scheduled next activity is the strongest quiet predictor of a deal that will die — and it's invisible in a stage report. Counted, named, near the top.
Ranked by what's actionable, not by amount
- Data failures — cheap to fix, and they corrupt every other number
- Stalled — with days vs stage median
- Slipping — with push counts
- Closing this period — the short list actually worth the meeting
The biggest deal is not the most useful line in a review.
Written for a 30-minute call
Each section leads with the count, then the deals. Nobody reads a 200-row table aloud.
What you supply
Your own Claude Code login, plus a deal export in ~/pipeline/exports/ — HubSpot
Deals with stage, amount, close date, owner and last activity. Pipedrive and
Salesforce exports work the same way.
No CRM key. The export is the input, which is also why it cannot edit a deal.
Where this stops
It reads and drafts. It does not update deals, change stages, adjust amounts, or close anything.
It won't invent stage weightings or a probability your export doesn't contain — most
CRM defaults are invented anyway. It won't say a deal will close or is lost, won't
guess why something slipped (reason not in export), and won't review a rep. It
reviews the pipeline, not the person.
Verified on build: the skill, the working tree, the NEVER_EDIT_CRM guard, the
close-date rules, the stage-age rule and the four-part ranking are present on a fresh
fork. Running it on your own pipeline is yours to do.