Negotiation is the highest-stakes behavioral context in the chatbot platform and Deal Intelligence Platform. The negotiation engine group provides three complementary views: what the actor's alternatives are (BATNA), what tactics they are using, and who has decision authority.

The Engines

  • BATNA Engine — Infers an actor's best alternative to a negotiated agreement from behavioral signals: urgency patterns, alternative-seeking behavior, deadline sensitivity.
  • Tactical Negotiation Engine — Pattern-matches against a library of known negotiation tactics: anchoring, time pressure, false concession, good-cop/bad-cop.
  • Authority-Dependency Engine — Detects when an actor is deferring to an unseen principal: "I need to check with my partner" used consistently as a delay tactic vs as a genuine constraint.

Code Walkthrough

// BATNA inference from behavioral signals
function inferBATNA(signals) {
  const urgencyScore    = signals.deadlineSensitivity ?? 0;
  const alternativeSeeking = signals.competitorMentions / signals.totalInteractions;
  const concessionRate  = signals.concessionsGiven / signals.totalOffers;

  // High urgency + low alternative-seeking = weak BATNA
  const batnaStrength = (1 - urgencyScore) * 0.4
                      + alternativeSeeking  * 0.4
                      + (1 - concessionRate) * 0.2;
  return {
    score:  batnaStrength,
    label:  batnaStrength > 0.65 ? "strong-alternative-position"
                                 : "limited-alternative-indicators",
  };
}

What to Watch For

  • BATNA inference is probabilistic. Never present a BATNA score as definitive — it is a signal to investigate, not a conclusion.
  • Tactic detection requires a large enough interaction sequence (minimum 5 exchanges) to distinguish tactics from conversational style.