Skip to main content

Data Readiness

PILLAR enforces data quality standards before computing scores. When your CRM data doesn’t meet the minimum standard, PILLAR will tell you exactly what’s missing and which accounts are affected.

Readiness States

Minimum CRM Sync Standard

Required Fields (Blocking)

These fields must be present for PILLAR to function. Missing these generates critical issues. Accounts:
  • name — Account identifier
  • status — Active/inactive lifecycle state
  • arr — Must not be negative
Contacts:
  • name — Contact full name
  • account_id — Must reference a valid account (referential integrity)
Opportunities:
  • name — Opportunity identifier
  • account_id — Must reference a valid account
  • stage — Pipeline stage
  • amount — Deal value
Renewals:
  • account_id — Must reference a valid account
  • renewal_date — When the renewal occurs
  • arr — Renewal ARR value
Activities:
  • account_id — Must reference a valid account
  • type — Activity type (call, email, meeting, etc.)

Scoring Readiness Fields (Warning)

These fields aren’t required for sync, but scores will be incomplete without them.

What Makes an Account “Scoring Ready”

An account needs both of the following to be scored:
  1. At least 1 contact linked to it
  2. At least 1 activity in the last 180 days
The org-level readiness percentage is: scoring_ready_accounts / total_active_accounts.

Record-Level Detail

PILLAR doesn’t just tell you “37 accounts have issues.” It tells you exactly which accounts are affected and what’s wrong with each one. The Data Health dashboard (/data-health) shows:
  • Overall readiness percentage with progress bar
  • Critical issues and warnings count
  • Per-field completeness across all tables
  • Scoring-ready vs needs-attention account counts
The Affected Records API (GET /api/data-readiness/affected-records) returns per-account detail:
Filter by specific issue: GET /api/data-readiness/affected-records?issue=no_contacts

Issue Codes

Post-Sync Validation

Every CRM sync automatically triggers a validation pass across 5 tables:
  1. Accounts — Required fields, ARR positivity, score balance
  2. Contacts — Required fields, referential integrity, champion coverage
  3. Opportunities — Required fields, referential integrity, amount > 0, deal freshness
  4. Renewals — Required fields, referential integrity, ARR within 50-150% of account ARR
  5. Activities — Required fields, referential integrity
Results are stored in connector_sync_log and surfaced on the Data Health dashboard. A daily cron job at 6:00 AM UTC re-validates all data to detect drift.