Thresholds
Open deals are stale after 30 days. Contact activity is stale after 90 days. Evaluation time: 2026-08-20T12:00:00+00:00.
Deterministic CRM quality assessment with a governed read-only data boundary.
Synthetic WebMCP Challenge Demo — No client CRM data
| Category | Flagged | Applicable | Score | Normalized weight |
|---|---|---|---|---|
| Missing owner | 2 | 13 | 84.6 | 30.0% |
| Stale open deals | 2 | 3 | 33.3 | 30.0% |
| Name quality | 3 | 8 | 62.5 | 15.0% |
| Contact activity | 3 | 8 | 62.5 | 25.0% |
| Priority | Alias | Type | Record | Why it was flagged |
|---|---|---|---|---|
| 95 | C-008 | Contact | 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. |
| 75 | D-002 | Deal | Stale Renewal | Stale open deal: Open deal's latest activity is 80 days old, exceeding the 30-day threshold by 50 days. |
| 75 | D-003 | Deal | No Logged Activity | Stale open deal: Open deal's creation-time fallback is 66 days old, exceeding the 30-day threshold by 36 days. |
| 50 | C-007 | Contact | Amina Diallo | Stale activity: Latest approved activity is 111 days old, exceeding the 90-day threshold by 21 days. |
| 40 | C-002 | Contact | Jonas Rivera | Missing owner: Owner is absent or blank. |
| 35 | C-006 | Contact | Noah Williams | Weak activity: No approved contact activity signal exists; creation time is not treated as engagement. |
| 20 | C-003 | Contact | MARIA LOPEZ | Malformed name: first name is ALL CAPS; last name is ALL CAPS. |
| 20 | C-005 | Contact | Agent7 Smith | Malformed name: first name contains digits. |
Open deals are stale after 30 days. Contact activity is stale after 90 days. Evaluation time: 2026-08-20T12:00:00+00:00.
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.
Category score = 100 × (1 − flagged ÷ applicable). Empty categories are excluded and remaining weights are renormalized.
Priority is the sum of explicit issue severity and bounded age bonuses, capped at 100. Ties sort by object type and alias.