CRM Health Doctor

Deterministic CRM quality assessment with a governed read-only data boundary.

Source: fixture

Synthetic WebMCP Challenge Demo — No client CRM data

Overall health60.4out of 100
Malformed name3
Missing owner2
Stale activity1
Stale open deal2
Weak activity2

Category score audit

CategoryFlaggedApplicableScoreNormalized weight
Missing owner21384.630.0%
Stale open deals2333.330.0%
Name quality3862.515.0%
Contact activity3862.525.0%

Top-20 review queue

PriorityAliasTypeRecordWhy it was flagged
95C-008Contact TEST USER 99
Malformed name: first name has leading or trailing whitespace; first name has repeated internal whitespace; first name is ALL CAPS; last name contains digits.
Missing owner: Owner is absent or blank.
Weak activity: No approved contact activity signal exists; creation time is not treated as engagement.
75D-002DealStale Renewal
Stale open deal: Open deal's latest activity is 80 days old, exceeding the 30-day threshold by 50 days.
75D-003DealNo Logged Activity
Stale open deal: Open deal's creation-time fallback is 66 days old, exceeding the 30-day threshold by 36 days.
50C-007ContactAmina Diallo
Stale activity: Latest approved activity is 111 days old, exceeding the 90-day threshold by 21 days.
40C-002ContactJonas Rivera
Missing owner: Owner is absent or blank.
35C-006ContactNoah Williams
Weak activity: No approved contact activity signal exists; creation time is not treated as engagement.
20C-003ContactMARIA LOPEZ
Malformed name: first name is ALL CAPS; last name is ALL CAPS.
20C-005ContactAgent7 Smith
Malformed name: first name contains digits.

Methodology

Thresholds

Open deals are stale after 30 days. Contact activity is stale after 90 days. Evaluation time: 2026-08-20T12:00:00+00:00.

Deal timestamp precedence

Use the latest of Last Activity Date and Last Contacted. If neither exists, use creation time as an explicitly labeled fallback. If all are absent, return an unknown-activity diagnostic.

Scoring

Category score = 100 × (1 − flagged ÷ applicable). Empty categories are excluded and remaining weights are renormalized.

Prioritization

Priority is the sum of explicit issue severity and bounded age bonuses, capped at 100. Ties sort by object type and alias.