time-to-close-prediction について
営業ボットを開発する人向けに、会話、エンゲージメント、商談段階のシグナルから成約時期を予測するスキルです。商談の進展に応じて予測を更新し、フォーキャストやリスク確認に役立ちます。
主な機能
- 01会話とエンゲージメントの分析
- 02過去の類似商談パターンの利用
- 03商談段階を組み合わせた予測
- 04商談の変化に応じた予測更新
- 05パイプライン予測とリスク通知
活用シーン
- 01個別商談の成約時期の推定
- 02パイプライン予測の集計
- 03停滞・加速している商談の特定
- 04導入チームやカスタマーサクセスの計画
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ louisblythe/ sales-skills --skill time-to-close-predictionインストール後、Claude Code で/time-to-close-predictionを入力して読み込まれたか確認します。
詳細
成約までの期間予測
あなたは、会話パターンに基づいて商談の成約時期を予測する営業ボットの構築に精通しています。エンゲージメントのシグナルと会話の動きを分析し、商談の成約時期を予測するシステムを開発者が作成できるよう支援することが目標です。
予測が重要な理由
予測の課題
Traditional forecasting:
- Rep guesses: "Should close this month"
- Based on hope, not data
- Consistently wrong
- Pipeline becomes fiction
Result:
- Missed forecasts
- Bad resource planning
- Surprised leadership
予測
Data-driven prediction:
- Analyzes conversation patterns
- Compares to historical deals
- Updates in real-time
- Confidence intervals
Result:
- Accurate forecasts
- Better resource allocation
- Proactive deal management
予測シグナル
進捗速度のシグナル
How fast is the deal moving?
Accelerating indicators:
- Response times decreasing
- Meeting frequency increasing
- Stakeholders being added
- Questions becoming more specific
- Pricing discussion initiated
Decelerating indicators:
- Response times increasing
- Meetings being postponed
- Stakeholders going quiet
- Vague or generic responses
- "We'll revisit this later"
エンゲージメントのシグナル
How engaged is the prospect?
High engagement (faster close):
- Multiple stakeholders involved
- Detailed questions asked
- Proactive outreach from them
- Documentation requested
- Reference calls requested
Low engagement (slower close):
- Single contact only
- Surface-level questions
- Slow responses
- No proactive contact
- Vague interest
ステージ完了のシグナル
Where are they in the journey?
Discovery completed:
+Needs articulated
+Decision process shared
+Timeline discussed
→ Expect 60-90 days to close
Evaluation in progress:
+Demo completed
+Trial/POC active
+Technical questions addressed
→ Expect 30-60 days to close
Decision pending:
+Proposal reviewed
+Pricing negotiated
+Contract discussed
→ Expect 0-30 days to close
購買シグナルの密度
Count buying signals over time:
Week 1: 2 signals
Week 2: 4 signals
Week 3: 7 signals
Week 4: 10 signals
Increasing density = approaching decision
Signals to count:
- Pricing questions
- Timeline questions
- Implementation questions
- Contract questions
- "What's the next step?"
予測モデル
過去のパターンとの照合
def predict_from_history(deal):
# Find similar historical deals
similar_deals = find_similar_deals(
industry=deal.industry,
company_size=deal.company_size,
deal_size=deal.estimated_value,
product=deal.product_interest
)
# Get their actual close times
close_times = [d.days_to_close for d in similar_deals]
# Current deal's stage
stage_days = get_average_remaining_days(
stage=deal.current_stage,
similar_deals=similar_deals
)
return {
"estimated_days": stage_days,
"confidence": calculate_confidence(similar_deals),
"range_low": percentile(close_times, 25),
"range_high": percentile(close_times, 75)
}
会話パターンモデル
def predict_from_conversation(deal):
conversations = get_conversations(deal)
# Extract features
features = {
"avg_response_time": calc_avg_response_time(conversations),
"response_time_trend": calc_response_trend(conversations),
"message_count": len(conversations),
"stakeholder_count": count_stakeholders(conversations),
"buying_signal_count": count_buying_signals(conversations),
"objection_count": count_objections(conversations),
"question_specificity": assess_question_depth(conversations),
"sentiment_trend": analyze_sentiment_trend(conversations)
}
# Predict using trained model
prediction = close_time_model.predict(features)
return {
"estimated_days": prediction,
"confidence": close_time_model.confidence(features),
"key_factors": get_key_factors(features)
}
複合予測
def predict_close_time(deal):
# Historical comparison
historical = predict_from_history(deal)
# Conversation analysis
conversation = predict_from_conversation(deal)
# Stage-based baseline
stage_baseline = get_stage_baseline(deal.current_stage)
# Weighted combination
weights = {"historical": 0.3, "conversation": 0.5, "stage": 0.2}
predicted_days = (
historical["estimated_days"] * weights["historical"] +
conversation["estimated_days"] * weights["conversation"] +
stage_baseline * weights["stage"]
)
# Confidence is minimum of components
confidence = min(
historical["confidence"],
conversation["confidence"]
)
return {
"predicted_close_date": today() + timedelta(days=predicted_days),
"predicted_days": predicted_days,
"confidence": confidence,
"factors": {
"historical_pattern": historical,
"conversation_signals": conversation,
"stage_baseline": stage_baseline
}
}
ステージ別の予測
初期ステージの予測
Discovery stage:
- High uncertainty
- Wide range
- Base on industry averages
Prediction:
"Based on similar companies, expect 60-120 days
to decision. Current engagement suggests
you're on the faster end."
Focus on:
- Qualifying properly
- Identifying decision process
- Understanding timeline drivers
中期ステージの予測
Evaluation stage:
- Moderate uncertainty
- Can compare to historical
- Engagement signals matter
Prediction:
"Deal is moving 20% faster than average.
If current pace continues, expect close
in 35-50 days."
Focus on:
- Addressing remaining objections
- Stakeholder alignment
- Competitive positioning
後期ステージの予測
Negotiation/Decision stage:
- Lower uncertainty
- Clear remaining steps
- Timing more predictable
Prediction:
"Pending contract review and legal approval.
Historical similar deals close within 2 weeks
of this stage. Target: January 25-February 5."
Focus on:
- Removing blockers
- Expediting approvals
- Closing logistics
動的な更新
リアルタイムの予測更新
Update prediction when:
- New conversation occurs
- Meeting completed
- Stage changes
- New stakeholder added
- Objection raised/addressed
- Buying signal detected
"After today's call where CFO asked about
implementation timeline, prediction moved
from 45 days to 30 days."
予測アラート
def check_prediction_alerts(deal):
current = deal.current_prediction
previous = deal.previous_prediction
alerts = []
# Significant acceleration
if current.days < previous.days * 0.7:
alerts.append({
"type": "acceleration",
"message": f"Deal moving faster—close date moved up {previous.days - current.days} days"
})
# Significant slowdown
if current.days > previous.days * 1.3:
alerts.append({
"type": "slowdown",
"message": f"Deal slowing—close date pushed out {current.days - previous.days} days"
})
# At risk of slipping
if deal.target_close_date and current.predicted_close > deal.target_close_date:
alerts.append({
"type": "at_risk",
"message": f"May miss target close date by {(current.predicted_close - deal.target_close_date).days} days"
})
return alerts
予測の活用
パイプライン予測
Aggregate predictions for pipeline:
Pipeline: $1,000,000
- Deal A: $200k, 90% in Jan (weighted: $180k)
- Deal B: $300k, 60% in Jan (weighted: $180k)
- Deal C: $500k, 30% in Jan (weighted: $150k)
January forecast: $510,000
Confidence range:
- Best case: $750,000
- Expected: $510,000
- Worst case: $300,000
リソース計画
Use predictions for:
- Implementation team scheduling
- Customer success allocation
- Rep capacity planning
- Inventory/fulfillment
"Predicted $2M closing in Q1.
Implementation needs 3 additional engineers."
商談コーチング
Alert managers to at-risk deals:
"Deal ABC predicted to close 2 weeks
later than forecast. Engagement dropped.
Suggest manager review."
"Deal XYZ accelerating faster than expected.
May need to pull in implementation team
earlier."
予測精度
精度の測定
Track:
- Predicted vs actual close date
- Prediction accuracy by stage
- Accuracy by deal type
- Accuracy improvement over time
Metrics:
- Mean Absolute Error (MAE)
- Prediction within 2 weeks: X%
- Prediction within 30 days: Y%
予測の改善
Feedback loop:
1. Make prediction
2. Deal closes (or doesn't)
3. Compare prediction to actual
4. Update model weights
5. Refine signal importance
Over time:
- More accurate predictions
- Better signal identification
- Improved confidence calibration
実装
予測データモデル
{
"deal_id": "12345",
"prediction": {
"predicted_close_date": "2024-02-15",
"predicted_days_remaining": 30,
"confidence": 0.75,
"range": {
"optimistic": "2024-02-01",
"pessimistic": "2024-03-01"
},
"factors": {
"accelerating": ["buying_signals_increasing", "stakeholder_engaged"],
"decelerating": ["response_time_slow"],
"neutral": ["typical_stage_duration"]
},
"updated_at": "2024-01-15T10:00:00Z",
"previous_prediction": "2024-02-20"
},
"history": [
{
"date": "2024-01-01",
"predicted_close": "2024-03-01",
"confidence": 0.5,
"stage": "discovery"
},
{
"date": "2024-01-08",
"predicted_close": "2024-02-20",
"confidence": 0.65,
"stage": "evaluation"
}
]
}
統合ポイント
Where to surface predictions:
CRM:
- Deal record
- Pipeline views
- Forecast reports
Bot conversations:
- Adjust urgency based on timeline
- Recommend next actions
- Alert on at-risk deals
Dashboards:
- Rep-level predictions
- Team-level forecast
- Accuracy metrics
予測に基づくメッセージング
商談の加速
"Based on our conversations, you're moving
faster than most companies your size.
If we aim for [predicted date], here's what
we'd need to accomplish in the next 2 weeks..."
停滞した商談
"We had good momentum, but I sense things
have slowed. Is there something holding you
back that I can address?"
リスクのある商談
"You mentioned wanting this done by [target].
To hit that, we'd need to [specific actions].
Is that timeline still realistic?"
コメント
Markdown 対応