TOOL-010 — Champion Movement Detector

Tier 3 Specialist Tool · Stateless · Detects when a champion at a customer account changes role, leaves the company, or stops engaging — high-leverage churn / deal-risk signal often missed by behavioral telemetry alone
Tier 3 · Tool Specced · v32 Domain 2 / Post-sales Haiku External enrichment dependency
Purpose

A champion's departure or role change is among the highest-leverage churn predictors in B2B sales-led GTM — often visible in external signals (LinkedIn updates, email-bounce patterns, AGT-407 "person no longer in calls" detection) before account behavioral telemetry shifts. TOOL-010 reads multiple weak signals across these sources and produces a structured movement classification with confidence, recommended interventions, and explicit acknowledgment of which signals contributed.

High-signal, low-cost early warning. Most accounts that lose a champion 60+ days before renewal end up at-risk; behavioral telemetry usually doesn't catch this until 2–3 months later, when the new champion is showing surface_only adoption patterns. TOOL-010 surfaces the signal as soon as the champion's situation changes.
External enrichment dependency. Effectiveness depends on having external signals: LinkedIn job-change webhooks (or equivalent enrichment provider), email-bounce monitoring on key contact emails, and AGT-407 ConvIntelligence with sufficient call coverage to detect "person stopped attending calls." Without these signals, the tool degrades to "AGT-407-only" mode and surfaces lower-confidence outputs.
Input schema
{ "account_id": "uuid", "tracked_champions": [ // contacts flagged as champions in CRM { "contact_id": "uuid", "contact_name": "string", "title_at_last_check": "string", "company_at_last_check": "string", "champion_classification": "primary" | "secondary" | "technical_champion", "first_identified_as_champion_date": "ISO 8601", "last_engaged_at": "ISO 8601" } ], "external_signals": { // optional — depends on enrichment provider "linkedin_signals": [ { "contact_id": "uuid", "title_change_detected": true | false, "company_change_detected": true | false, "detected_at": "ISO 8601" } ], "email_bounce_signals": [ { "contact_id": "uuid", "bounce_type": "soft" | "hard", "first_bounce_at": "ISO 8601", "consecutive_bounce_count": 0 } ] }, "internal_signals": { "conv_intelligence_attendance": [ // from AGT-407 trailing 90 days { "contact_id": "uuid", "calls_attended_trailing_30d": 0, "calls_attended_trailing_90d": 0, "last_call_attendance_at": "ISO 8601 | null", "last_call_sentiment": "positive" | "neutral" | "negative" | null } ], "email_engagement": [ { "contact_id": "uuid", "last_reply_at": "ISO 8601 | null", "trailing_30d_reply_count": 0 } ] }, "account_context": { "renewal_date": "ISO 8601", "current_health_tier": "string", "open_opportunities_count": 0 } }
Output schema
{ "tool_call_id": "uuid", "champion_movements": [ { "contact_id": "uuid", "movement_type": "left_company" | "role_changed_internal" | "stopped_engaging" | "engagement_declining" | "no_movement_detected", "confidence": "high" | "medium" | "low", "earliest_signal_at": "ISO 8601 | null", "contributing_signals": [ { "signal_type": "string", "signal_detail": "string", "signal_strength": "strong" | "moderate" | "weak" } ], "implications": { "champion_replacement_needed": true | false, "renewal_risk_uplift": "none" | "low" | "medium" | "high", "deal_risk_uplift": "none" | "low" | "medium" | "high" }, "recommended_interventions": [ { "intervention_type": "identify_new_champion" | "executive_sponsor_outreach" | "escalate_to_slm" | "introduce_csm_handoff" | "reconfirm_renewal_path" | "no_action_needed", "urgency": "high" | "medium" | "low", "rationale": "string" } ] } ], "account_level_summary": { "primary_champion_status": "stable" | "at_risk" | "lost", "champion_redundancy": "high" | "medium" | "single_threaded", "overall_movement_signal": "stable" | "early_warning" | "active_concern" | "critical" }, "data_quality": { "external_signal_coverage": "full" | "partial" | "none", "internal_signal_coverage": "full" | "partial" | "none", "overall_quality": "high" | "medium" | "low" }, "ungrounded_assumptions": ["string"], "tool_metadata": { "model": "claude-haiku-4-5", "input_tokens": 0, "output_tokens": 0, "cost_usd_estimate": 0.0, "latency_ms": 0 } }
Hard rule: Every movement_type classification stronger than no_movement_detected must have at least one contributing_signal with strength ≥ moderate. Tool cannot fabricate champion movement based on pattern guesses; needs evidence.
Called by
CallerInvocation context
AGT-502 Churn Risk DetectorWeekly batch on accounts with renewal in ≤ 180 days. Output augments churn risk drivers; champion-movement signal becomes one of the renewal-proximity multiplier inputs.
AGT-401 Deal Health MonitorFor active opportunities, called when champion is identified as economic buyer or strong influencer. Champion movement triggers AGT-401 rescore.
AGT-902 Account BrainFor per-account "what's the move" queries when AM/CSM raises concern about champion engagement.
AGT-501 Customer HealthAugments behavioral health monitoring for accounts with explicit champion tracking enabled in CRM.
Design principles
  1. Multi-signal fusion, not single-signal alerting. A title change without engagement decline may just be a promotion; a hard email bounce alone could be an out-of-office misconfig. The tool fuses signals; single weak signals do not produce high-confidence movement classifications.
  2. Graceful degradation when external signals absent. Many accounts will not have LinkedIn or email-bounce signals available. The tool clearly reports external_signal_coverage and degrades confidence accordingly. Internal signals (AGT-407 attendance, email engagement) alone can detect stopped_engaging reliably, but not left_company with high confidence.
  3. Distinguish movement types. Champion who left the company is a different intervention than champion who shifted internal role (still at the company, different priorities) than champion who stopped engaging (still in role, disengaged). Recommended interventions differ.
  4. No proactive signaling on weak data. When data quality is low, tool returns conservative classifications. Better to under-flag than to drown signal in noise — AM trust matters.
  5. Privacy disciplined. Tool reads only signals already in the OS or from approved enrichment providers under signed data agreements. No web-scraping, no scraping personal social media beyond LinkedIn role-change webhooks the customer has consented to.
Cost ceiling
ConstraintValue
Per-call input budget10K tokens (multiple champions + multi-signal context)
Per-call output budget2K tokens
Default modelHaiku
Per-call cost~$0.015
Monthly cap$250/mo (~16,000 calls)
FrequencyWeekly batch from AGT-502 over T-180-day renewal cohort, plus event-driven on enrichment signal changes.
Eval criteria
CriterionPass threshold
Schema compliance100% (hard)
Movement classification accuracy15 retrospective accounts with known champion movements (LinkedIn job changes, observed disengagement); ≥ 75% match.
False positive rate on stable accounts≤ 10% — over-flagging produces alert fatigue and burns AM trust.
Lead timeFor accounts that retrospectively churned with champion-loss as a contributing factor: % where TOOL-010 flagged movement ≥ 60 days before churn. ≥ 60%.
Single-signal restraintFor 5 cases with one weak signal only: tool returns confidence = low or no_movement_detected. 100% (hard).
Privacy compliance0 instances of using non-consented signals (hard)
P95 latency≤ 2s