Before you export

What your CRM export needs

The values come from your own closed deals, so the export decides what the report can say. Here is the bar, stated before you go looking in your CRM: what stops the analysis, what every row carries, what sharpens it, and how to fix the usual gaps in ten minutes.

Download a sample export (B2B)Sample export (consumer)Synthetic data, 500 and 700 rows, in the shape a good export has.

Two things stop it

What the analysis cannot run without

Everything else on this page is a matter of degree. These two are not: the report refuses the file and says why.

Fewer than 25 closed deals

A value is a close rate times a deal size, and under 25 deals that are won or lost, neither can be read. A hundred or more is where the model starts to separate leads well; 25 is where it can start at all.

Won deals and no lost ones

The most common export is a "Closed Won" report. With no lost deals in it, every close rate reads 100% and the model could only price deal size. The file is refused with the fix, which is to export every lead from the period.

Every row

Four columns, whatever your CRM calls them

Column names are matched automatically, in any language, and you confirm them on the mapping screen. These are the four that have to be there.

ColumnWhyUsually called
Create dateWhen the lead arrived. Each lead is judged against leads from the same period, and it is the date the value is attached to.Create date, Created at, Lead date
OutcomeWon, lost or still open, read from a stage or status column. The words are yours: "Closed Won", "Sold", "Bound", "Gewonnen" all read, and you confirm the reading on the mapping screen.Deal stage, Status, Pipeline stage
Amount on won dealsWhat the deal was worth. A won deal without an amount counts toward the close rate and not toward the value; we never guess a missing amount.Amount, Deal value, Revenue, Fee
Something to match onHow the ad platform finds the click. Google: the click ID (gclid) on the lead, or the email address with enhanced conversions for leads. Meta: email or phone, or the instant-form lead ID.gclid, Email, Phone

What sharpens it

The columns that turn a flat value into a model

None of these is required to run. The first one is what decides whether the values differ from lead to lead at all.

One or two fields that could tell leads apart

This is what the values are made of. A service requested, a company size, a product line, a timeline, a plan: anything on the form that your best customers answer differently. A file with nothing like it prices every lead the same, and the report says so.

Close dates

How long a deal takes, which decides how soon the model can be refitted and which recent leads are still undecided rather than lost.

Stage timestamps that were lived

When a deal reached each stage. A stage that reliably fires inside Google's 7 days can raise a lead's value in time. Stages dragged through in one sitting are detected and set aside, never trusted.

A source column

Never used to price a lead, but it is how the report shows what each channel has been worth per lead, and it is what the evaluation uses as a control group.

Volume

How many leads a month

The model needs outcomes to price from; the ad platforms need events to learn from. Both are counted on the leads that can be matched, not on every row.

30/mo

The floor this product uses

About 30 matchable leads a month. Below it the model has too few outcomes arriving to keep the values current, and a Google campaign bidding on value learns slowly. Google's own published minimums are lower and differ by campaign type; this floor is about the model, not Google's rules. Under it, the report still runs and says so.

~218/mo

Meta's bar for bidding on value

Meta offers value optimisation to an ad set after about 100 valued events with at least five different values in 14 days. Under that, ad sets optimise on the lead count and the values still go, building toward the bar.

When something is missing

What the product does, gap by gap

Nothing is invented to fill a hole. Each gap has a set response, shown in the report with the count behind it.

GapWhat happens
No create date on a rowThe row is excluded and listed with the reason.
No amount on a won dealCounted in the close rate, left out of the deal size. The report says how many.
No click ID and no email on a leadPriced, but not sent: there is nothing to match it to. The match rate shows the share.
Leads left open for monthsThey teach the model nothing. The report counts them and asks you to close them out.
A stage that looks backfilledSet aside for the early gate. Values are unaffected.
A column that is an outcome in disguise (a lost reason)Refused as a signal, with the reason: it never fires at bid time.
Age, gender, health, credit and the likeRefused by header before the shape is examined. Bidding differently on them is what the platforms' rules forbid.

Fix it in ten minutes

The three gaps that are a setting, not a rebuild

Most files that fall short do so in one of three ways: dead deals left open, wins without an amount, and a form that asks nothing that separates leads. Each is a small change in the CRM, and the next export is a different file.

HubSpot

  1. 1Mark the dead deals lost: filter deals still open past your usual cycle, select all, set the stage to Closed lost.
  2. 2Make the amount required on a win: Settings, Objects, Deals, Pipelines, then under the Closed won stage add Amount as a required property.
  3. 3Add one qualifying question to the form as a contact property, such as company size or what they need, and map it on the way in.

Salesforce

  1. 1Mark the dead opportunities Closed Lost with a list view and an inline edit, or a mass update.
  2. 2Add a validation rule: Amount is required when StageName is Closed Won.
  3. 3Add one qualifying field to Web-to-Lead and map it to the lead and the opportunity.

Pipedrive

  1. 1Mark the dead deals lost, with a lost reason if you keep one.
  2. 2Under Deals, Customize fields, make Value an important field for the last stage so a win cannot be closed without it.
  3. 3Add one custom field to the web form and to the deal, such as service requested.

A form question added today shows up in the model once enough of those leads have closed, which is usually one sales cycle. The report names any field it could not price yet rather than pricing on it thinly.

Not sure your file clears the bar? Upload it and find out.

Your export is read in your browser and never uploaded. The mapping screen runs every check on this page against your rows before anything is worked out, and says which one is short, with the count.