🏢 Organizational Failure Attribution (OFA)
Every data problem has a human root cause. The findings below trace each failure back to the responsible role or process. CONFIRMED findings are unambiguous from the data. INFERRED findings are educated conclusions — validate with team leads before acting. Suspected fraud, gaming, or intentional misrepresentation is reported in the Data Inconsistencies & Anomalies section.
CONFIRMED — unambiguous from data, attribution is direct |
INFERRED — educated conclusion, validate before acting
CONFIRMED
312 Contacts on Deactivated User ████████ — Broken Offboarding CONFIRMED
████████ was deactivated but still owns 312 Contact records. No sequences, tasks, or enrollment automations are firing on these records. They are generating zero revenue activity. Responsible: Leadership / Operations. CRM record reassignment was not part of the offboarding checklist. Recommended fix: CRM → Contacts → Filter by Owner → ████████ → Select All → Reassign to an active rep or unassigned queue.
94 Deals on Deactivated Rep ████████ — Broken Offboarding CONFIRMED
████████ was deactivated but still owns 94 open Deal records. No automation is firing on these deals. They are excluded from rep performance tracking and revenue forecasting entirely. Responsible: Leadership / Operations. Same offboarding gap as the Contact issue above — both stem from the absence of a CRM step in the offboarding checklist. Recommended fix: CRM → Deals → Filter by Owner → ████████ → Select All → Reassign. Review each deal before bulk reassignment — some may warrant archival.
38 Tickets on Deactivated Agent ████████ — Broken Offboarding CONFIRMED
████████ was deactivated but still owns 38 open Ticket records. No escalation, response, or SLA tracking is running on these tickets. Responsible: Support Lead / Operations. Same root cause as the Contact and Deal offboarding failures above — a single offboarding checklist gap produced three separate object-level failures. Recommended fix: CRM → Tickets → Filter by Owner → ████████ → Select All → Reassign. Review each ticket — many may already be resolvable and should be closed, not reassigned.
60% Deals Missing Amount — Required Field Never Enforced CONFIRMED
526 of 876 deals (60%) have no Amount value. This is a configuration failure — Amount was never set as required at deal creation. The platform did not prevent deal creation without a value, so reps never filled it. Responsible: HubSpot Admin / RevOps. Recommended fix: Settings → Deals → Properties → Amount → mark as required. This prevents new gaps immediately. Historical records require a bulk data effort — open pipeline first, then closed.
0% Close Reason Fill — 398 Closed Deals, 22+ Months of Win/Loss Data Absent CONFIRMED
Every closed deal across 22+ months has no Close Reason recorded. Close Reason was never configured as required on stage transitions. This is a permanent loss — historical win/loss intelligence cannot be recovered. Responsible: HubSpot Admin / RevOps. Recommended fix: Settings → Deals → Pipelines → edit stage transition requirements for Closed Won and Closed Lost → require Close Reason. All future closures will capture this immediately.
0% Ticket Category Fill — Support Workflow Configured but Never Operationalized CONFIRMED
314 tickets across all pipelines have zero Category classification. The Ticket object was activated but the Category taxonomy was never defined and the field was never made required. Support routing, issue trending, and SLA segmentation are all impossible without this field. Responsible: HubSpot Admin / Support Lead. Recommended fix: Define your Category taxonomy first (e.g., Billing, Technical, Onboarding, General, Bug) — then enforce as required at ticket creation in pipeline settings. Historical tickets will need a manual or bulk update pass.
163 Contacts with Placeholder Last Names in Active Outreach Lists CONFIRMED
A bulk import on February 9, 2025 introduced 163 Contact records with Last Name values of Unknown, N/A, ., or -. These records are confirmed to be in active outreach lists based on their Lifecycle Stage values. Any email using a Last Name personalization token is generating broken or absent salutations for this cohort. Responsible: Operations / Data Importer. Recommended fix: Filter by Create Date = February 9, 2025 → bulk review Last Name values → correct or remove. Block from campaigns until resolved.
INFERRED
Stale Pipeline Accumulating — No Stage Exit Criteria or Review Cadence INFERRED
214 open deals (44.8% of open pipeline — 214 of 478 open deals) are past their Close Date with no stage update. This pattern is consistent with an absence of enforced stage exit criteria and no regular pipeline review cadence. Responsible: HubSpot Admin / RevOps + Sales Leadership. Recommended fix: Configure stage exit requirements. Establish a bi-weekly pipeline review cadence. Consider an automated workflow that flags deals to their owner and manager when a deal is 7 days past Close Date with no activity.
19 Custom Properties Undescribed — Property Created Without Governance INFERRED
19 custom properties across Companies and Contacts were created without descriptions. The pattern — fields added on demand without documentation — is consistent with an absence of a property governance process. When the admin who created these fields is no longer available, their purpose becomes unknown. Responsible: HubSpot Admin. Recommended fix: Document every undescribed property with a description of what it captures, how it populates, and who owns it. Archive fields with 0% fill for 90+ days. Establish a property request process to prevent future sprawl.
Integration Writing Non-Standard Phone Format — Output Never Validated INFERRED
Phone number format inconsistencies across 341 Contact records originate from a sync integration (████████) writing in E.164 format (+1XXXXXXXXXX) while manual entries use local format. The data suggests the integration was configured and the output was never audited post-setup. Responsible: Integration Owner. Recommended fix: Audit the integration's field mapping. Standardize phone format at the integration level, or use a HubSpot workflow to normalize post-sync. Fix the integration source — not just the records — or the issue will recur.
74% Tickets Missing Contact Association — Intake Channel Not Linked to CRM Records INFERRED
233 of 314 tickets (74%) have no associated Contact. This is consistent with a support intake channel that creates tickets independently without checking for an existing CRM record. Responsible: Support Lead / HubSpot Admin. Recommended fix: Review ticket creation workflows and intake channels. Configure ticket creation to auto-associate with existing Contacts by email where possible. For channels that cannot auto-associate, build a manual association step into the support standard operating procedure.