Skip to main content
8 min read

Confidence, citations, conflicts

A confidence score isn’t the whole story. Every enriched value carries citations, the source that won, the sources that lost, and the dates that matter. The confidence score is the summary; the rest is how you audit it.

The four levers

Confidence is one of four pieces of provenance we ship on every value. Together they let you decide what to trust without taking the entire enrichment on faith.

confidence

A score between 0 and 1. How sure are we, given everything we looked at? See the bands below.

citations[]

URLs we actually pulled the value from. Click through and audit. No citations, no claim.

conflicts[]

When two sources disagreed, we kept the loser here with its own citation. The synthesis agent picked the winner; you can override it.

as_of_date · observed_at

When the fact was true in the world, versus when we last verified it. Both matter. A registered name hasn’t changed since 2015 — we still re-checked yesterday.

Understanding Scores

90-100

High Confidence

Multiple sources agreed and conflicts (if any) were small. Safe for automated CRM writeback. Typically three or more sources aligned on the value.

70-89

Good Confidence

Strong data with some uncertainty. Good for enrichment, consider review for critical use cases. Typically 2+ sources with agreement.

50-69

Medium Confidence

Limited source agreement or stale data. Recommended for display only, with human verification before action.

<50

Low Confidence

Single source or conflicting data. Manual verification required. May be inferred or AI-generated without corroboration.

How Confidence is Calculated

Confidence scores are computed using multiple factors:

Source Agreement

When multiple sources return the same value for a field, confidence increases. 3 sources agreeing = ~95 confidence. 1 source = ~60-75 confidence.

Source Reliability

Each source has historical accuracy ratings. LinkedIn data for job titles scores higher than web-scraped data.

Data Freshness

Recently verified data scores higher. Data from 30 days ago = full score. 6+ months old = reduced confidence.

Cross-Validation

Fields that validate each other increase confidence. Email domain matching company domain = higher email confidence.

Types of Confidence Scores

Score TypeScopeDescription
confidence_scoreOverallAverage confidence across all enriched fields
email_confidenceField-specificConfidence in email address accuracy and deliverability
persona_confidence_scoreAI-generatedConfidence in AI persona matching
icp_fit_scoreAI-generatedHow well a company matches your Ideal Customer Profile

Confidence in API Response

Enrichment responses include confidence data in multiple places:

Example response with confidence
// Enrichment response structure
{
  "data": {
    "person": {
      "full_name": "Jane Smith",
      "title": "VP of Engineering",
      "email": "jane@acme.com"
    }
  },

  // Per-field confidence scores
  "confidence": {
    "person.full_name": 95,
    "person.title": 88,
    "person.email": 92
  },

  // Overall metrics
  "metadata": {
    "confidence_score": 91,    // Average across all fields
    "completeness_score": 85,  // % of fields populated
    "success_rate": 100,       // % of sources that succeeded
    "sources_used": ["linkedin", "hunter", "perplexity"]
  }
}

Using Confidence in Automations

Set confidence thresholds to control automatic data updates:

Conditional CRM update based on confidence
// Only update CRM if confidence is high enough
const enrichmentResult = await abmdev.enrich({
  email: "jane@acme.com"
});

// Check overall confidence before CRM sync
if (enrichmentResult.metadata.confidence_score >= 85) {
  await hubspot.updateContact(contactId, enrichmentResult.data);
  console.log("Contact updated automatically");
} else {
  // Queue for human review
  await reviewQueue.add({
    contact: enrichmentResult.data,
    confidence: enrichmentResult.metadata.confidence_score,
    reason: "Below confidence threshold"
  });
  console.log("Queued for review");
}

Recommended Thresholds

  • 85+: Safe for automatic CRM updates
  • 75+: Good for enrichment display, review before action
  • 60+: Display only, human verification required

Improving Confidence Scores

Provide More Input Data

Include LinkedIn URLs, company domains, or full names in your requests. More input = more sources can verify data = higher confidence.

Enable More Sources

Connect a LinkedIn account from Settings → Integrations to add session-authenticated profile data to your enrichments. More sources means more cross-validation opportunities.

Re-enrich Periodically

Data gets stale. Re-enriching contacts every 3-6 months maintains high confidence by catching job changes and updates.

Related Guides