Pipeline coverage, velocity, weighted forecast, and aging analysis for Monday pipeline review meetings
Run this skill when asked for a pipeline report, pipeline review, forecast, or coverage analysis. Automatically invoked via cron at 4:00 PM every Friday for the Monday pipeline review meeting.
| Stage | Probability |
|---|---|
| Lead Identified | 5% |
| Outreach Initiated | 10% |
| Discovery Meeting | 20% |
| Needs Analysis | 40% |
| Proposal/Demo | 60% |
| Negotiation | 80% |
Lead Identified → Outreach Initiated → Discovery Meeting → Needs Analysis → Proposal/Demo → Negotiation → Closed Won / Closed Lost
Pipeline should be 3x–5x the quarterly target for healthy coverage.
Fetch all open deals using HubSpot deals tool with properties:
dealname, dealstage, pipeline, amount, hubspot_owner_id, closedate, createdate, hs_lastmodifieddatepropertiesWithHistory=dealstage to get stage historyFetch all owners and build owner ID → name map.
Read QUARTERLY_TARGET from environment (default to 500000 if not set).
Pipeline by Stage: Group deals by stage. For each stage, calculate:
Coverage Ratio: Calculate total open pipeline / quarterly target. Flag:
Velocity by Stage: For each stage, calculate average days deals have spent in that stage using stage history. Compare to stage time limits (Lead 3d, Outreach 7d, Discovery 14d, Needs Analysis 14d, Proposal 21d, Negotiation 30d).
Weighted Forecast: For each open deal, calculate amount * probability using the stage probability table. Sum for total weighted forecast.
Aging Analysis: Group open deals by age (from createdate):
Expected Closes: Find open deals with closedate in:
Generate talking points for the Monday pipeline review meeting based on the data:
Format as Slack blocks:
*📈 Pipeline Report*
_{date} — Monday Review Prep_
*Pipeline by Stage*
━━━━━━━━━━━━━━━━━━━━
| Stage | Deals | Amount | Avg Size |
|-------|-------|--------|----------|
| Lead Identified | {n} | ${amt} | ${avg} |
| Outreach Initiated | {n} | ${amt} | ${avg} |
| Discovery Meeting | {n} | ${amt} | ${avg} |
| Needs Analysis | {n} | ${amt} | ${avg} |
| Proposal/Demo | {n} | ${amt} | ${avg} |
| Negotiation | {n} | ${amt} | ${avg} |
| *Total* | *{n}* | *${amt}* | *${avg}* |
*Coverage Ratio*
━━━━━━━━━━━━━━━━━━━━
Open Pipeline: ${total} | Quarterly Target: ${target}
Coverage: {ratio}x {🟢/🟡/🔴}
*Velocity by Stage*
━━━━━━━━━━━━━━━━━━━━
| Stage | Avg Days | Limit | Status |
|-------|----------|-------|--------|
| {stage} | {days}d | {limit}d | 🟢/🟡/🔴 |
*Weighted Forecast*
━━━━━━━━━━━━━━━━━━━━
| Stage | Pipeline | Probability | Weighted |
|-------|----------|-------------|----------|
| {stage} | ${amt} | {pct}% | ${weighted} |
| *Total* | *${total}* | | *${weighted total}* |
*Aging Analysis*
━━━━━━━━━━━━━━━━━━━━
| Age Bucket | Deals | Amount |
|------------|-------|--------|
| 0–30 days | {n} | ${amt} |
| 31–60 days | {n} | ${amt} |
| 61–90 days | {n} | ${amt} |
| 90+ days | {n} | ${amt} |
*Expected Closes This Month*
━━━━━━━━━━━━━━━━━━━━
| Deal | Stage | Amount | Close Date |
|------|-------|--------|------------|
| {name} | {stage} | ${amt} | {date} |
*Expected Closes This Quarter*
━━━━━━━━━━━━━━━━━━━━
| Deal | Stage | Amount | Close Date |
|------|-------|--------|------------|
| {name} | {stage} | ${amt} | {date} |
*🎯 Talking Points for Monday Review*
━━━━━━━━━━━━━━━━━━━━
1. {risk or highlight}
2. {risk or highlight}
3. {recommended action}