Most CRMs at growth-stage companies are half-empty and half-wrong. Fields were set up in a week when the CRM went live, with good intentions and poor governance. A year later, 40% of contact records have no lead source, 60% of deals have no close reason, and the "stage" field reflects when a sales rep last updated it rather than where the deal actually is. This is not a data quality problem. It is a schema problem, and it is one that most CRM implementation consultants never address because they get paid to set up the system, not to enforce it.

The seven fields that actually matter

Most CRM implementations start with what the sales team wants to track and end up with 80 fields, of which 15 get populated consistently. The dangerous ones are the aspirational fields: "next follow-up action", "decision-maker sentiment", "competitive landscape" — free-text fields that every sales rep fills out differently and no one ever queries. The fields that actually matter are seven: Lead Source, Lead Source Detail (the specific campaign or keyword), MQL Date, SQL Date, Close Reason (won or lost), ICP Fit (a picklist, not free text), and Closed Revenue. Everything else is noise until you can enforce these seven. Start by auditing your current CRM: pull a report on every deal closed in the last 12 months and check how many have all seven populated. In my experience, the number is under 30%, and that is the number that tells you how trustworthy your RevOps data actually is.

Enforcement is architectural, not cultural

The instinct when CRM fields are empty is to train the team and hope for compliance. This does not work. The only durable enforcement is architectural: make the field required at the right stage transition, or make it impossible to move a deal forward without filling it in. HubSpot handles this with required properties on deal stage transitions — you cannot move a deal from "Proposal Sent" to "Negotiation" without populating Close Date and ICP Fit. Zoho CRM has mandatory field configuration per layout, per profile. Salesforce has validation rules that block stage advancement if required fields are empty. The specific mechanism varies by platform, but the principle is consistent: if a field is important enough to report on, it should be architecturally impossible to skip without an explicit workaround.

Picklists beat free text every time

Close Reason is the field that reveals why deals are won or lost, and it is almost universally implemented as a text field. Sales reps enter things like "pricing", "too expensive", "competitor", "budget", "budget issues", "no budget this quarter" — four variants of the same close reason that will never aggregate cleanly in a report. Replace every qualitative field with a picklist. Close Reason (Lost) should have six to eight options: Price, Competitor, Budget Timing, No Internal Champion, Feature Gap, Not a Fit, and Other — with Other requiring a mandatory notes field. Now you can run a report that shows you 40% of lost deals in Q2 were Budget Timing, which means they are re-engagement candidates in Q3, not lost forever. That report is worthless if the field is free text.

The quarterly audit that keeps the schema honest

Run this audit every quarter: export every contact record created in the last 90 days and calculate the population rate for your seven required fields. Any field below 80% population is either not technically required in your CRM workflow (fix the validation rule) or genuinely unnecessary because the team has concluded it does not matter (kill the field). Then run the same audit on closed deals: every deal with a missing Close Reason or Lead Source is a decision you cannot make from data. The goal is not 100% field population — some records will legitimately have unknown source. The goal is understanding which gaps are data problems versus schema problems.