Optimized Sales Optimized Marketing Target Accounts For CROs For CFOs For CMOs Blog News Glossary Compare Tools About Schedule a Demo
Revenue Operations

How to Clean Up CRM Picklist Values That Got Out of Control

Pete Furseth 6 min read
crm hygienedata governancesales reportingsales forecasting
How to Clean Up CRM Picklist Values That Got Out of Control
Home/ Blog/ How to Clean Up CRM Picklist Values That Got Out of Control

Why do picklists sprawl in the first place?

Adding a value costs one admin five minutes and saying no costs a political conversation, so the list only ever grows. Nobody sets out to build a lead source picklist with dozens of options. It arrives one reasonable request at a time.

The requests are individually sensible. A campaign manager needs to track a specific webinar series. A partner team wants their referral channel separated out. Somebody spins up a new event and asks for a value with the year in it. Each addition serves a real purpose for one quarter and then outlives it.

Meanwhile the reporting cost compounds. Every dashboard that groups by that field needs a manual regrouping step. Two analysts group it differently and produce two numbers for the same question. Leadership loses confidence in channel reporting, and the response is usually to build another dashboard rather than to fix the field.

The tell is a spreadsheet. When somebody on the team maintains a mapping tab that translates dozens of raw values into a handful of reporting buckets, the picklist has already failed and the organization has been paying a manual tax to hide it.

Put this to work on your numbers
Run your own numbers with the free Forecast Accuracy Scorecard, then see how ORM builds it into a custom model.

Which picklists actually deserve attention?

The ones that feed a revenue decision. Three earn the work, and the rest can stay messy without costing anything.

Stage comes first because it drives the forecast. Stage sprawl shows up as parallel paths added for a specific product or region, which makes conversion rates between stages incomparable across the business.

Loss reason comes second because it is the only field that explains why win rate moved. A loss reason list with 30 values produces no usable pattern, since every reason has a handful of records and no group is large enough to act on.

Lead source comes third because it directs pipeline investment. This is usually the worst offender by raw count and the easiest to fix, because most of the values are dead campaigns.

Industry, product, and territory fields matter for segmentation but rarely change a decision on their own. Clean them opportunistically. Fields that nobody reports on need no cleanup at all, and time spent there is time not spent on the three above.

How do you decide what to consolidate?

Pull the value distribution, then test each value against the action it triggers. Two values that lead the same person to the same decision are one value.

Export the record count for every value in the field, sorted descending, along with the count from the trailing 12 months. That second column matters, because a value with 4,000 lifetime records and zero recent ones is history rather than a live option.

The distribution usually sorts itself into four groups.

GroupPatternAction
Core valuesHigh volume, still in useKeep as-is
VariantsSame meaning, different spelling or casingMerge into the core value
Dead valuesVolume in history, none in trailing 12 monthsDeactivate, keep for history
OrphansFewer than a handful of records everMerge into other, then deactivate
Variants are the largest group in most systems. Webinar, Webinars, webinar, and Web-inar are one channel. Merging them changes no meaning and immediately improves every report.

Orphans deserve a second look before deletion. A value used on three records is sometimes a typo and sometimes a rogue integration writing a string that does not exist on the list. The second case is a bug worth fixing at the source, because it will keep producing new orphans after your cleanup.

Apply the action test to what remains. If Referral and Partner Referral route to the same team, carry the same follow-up motion, and appear in the same bucket on every report, they are one value. Split them again only when somebody can name the decision that depends on the distinction.

What is the safe order of operations?

Map, snapshot, migrate, deactivate, then communicate. Reversing any two of those steps is how a cleanup ends up rewriting last year's board numbers.

Build the mapping table first, as a spreadsheet with old value, new value, and record count. Circulate it to the people who report on the field and get explicit agreement before touching anything. This is the step that prevents the argument three weeks later when a channel's number drops by half.

Snapshot the current distribution before the migration. Export record counts by value with the date on the file. When somebody asks why the numbers changed, that file is your answer, and without it you are reconstructing the past from memory.

Migrate in a single batch with one effective date. Rolling migrations spread across weeks make it impossible to say when a report became comparable. Pick a date at a period boundary and do the whole field at once.

Deactivate the retired values rather than deleting them. Deletion can strip the value from historical records entirely and break every filter and dashboard that references it. Deactivation removes the option from new entries and leaves everything already written intact.

Then tell people, with the mapping table attached and the effective date stated plainly. Include the sentence that matters most: reports crossing the effective date will show a discontinuity in this field until you have a full comparable year.

How do you stop the list from sprawling again?

Name an owner and put a request process in front of the field. Fields without an owner grow by default.

The owner is a person in RevOps, not a committee. Every new value request goes to that person with two required answers: which report will group by this value, and which decision changes based on it. Requests that cannot answer both get declined, and the requester gets pointed at an existing value.

Set a hard ceiling on the reporting picklists. When the list is at capacity, adding a value requires retiring one. The constraint forces the conversation about relative value that otherwise never happens.

Add a quarterly review to the RevOps calendar. Pull the distribution for the three core fields, flag any value with no records in the trailing quarter, and deactivate on a documented schedule. Fifteen minutes a quarter holds a list that took three days to clean.

What about free-text fields pretending to be picklists?

Convert them or stop reporting on them. A text field that people type company names, competitor names, or reasons into will produce as many distinct values as there are records.

The conversion path is mechanical. Export the distinct values with counts, group them by hand into the categories that actually exist, build the picklist from those categories, then map the free text onto the new field with a script and leave the original field intact as an archive.

Keep a text field alongside the picklist for detail, and never report on the text field. Reps get somewhere to put nuance, analysts get something countable, and the picklist stays short because the escape valve exists.

This matters beyond tidiness. Stage and loss reason definitions that shift over time break the comparability of history, and comparable history is the requirement behind forecast accuracy. Cleaning a picklist once is worthwhile. Holding its meaning steady across years is what makes the data usable, and it is a stronger predictor of forecast quality than completeness ever is. The same principle runs through sales forecasting best practices.

Frequently Asked Questions

How many values should a CRM picklist have?

Few enough that every value maps to a different action. If two values lead to the same decision by the same person, they are one value wearing two labels.

Should you delete old picklist values or deactivate them?

Deactivate. Deleting a value can strip it from historical records and break every report and dashboard filter that references it. Deactivation removes the option from new entries while leaving existing records readable.

How do you consolidate picklist values without breaking historical reports?

Build a mapping table first, snapshot the current distribution, then migrate records in a single batch with a documented effective date. Report on periods before and after the change separately until you have a full comparable year.

Why do picklists keep growing?

Because adding a value is easier than saying no. Each request arrives with a reasonable case from a campaign, a partner, or a new product, and nobody owns the total. Without a named owner and a review cadence, the list only grows.

Which picklists matter most for revenue reporting?

Stage, loss reason, and lead source, in that order. Stage drives the forecast, loss reason explains win rate movement, and lead source determines where the next dollar of pipeline investment goes.

PF
Pete Furseth
ORM Technologies
Pete has built custom revenue forecast models for B2B SaaS companies for over a decade.

See how ORM turns these insights into action

ORM builds custom revenue forecast models for B2B SaaS companies. Not dashboards. Prescriptive analytics that tell you what to do next.

Schedule a Demo