Pipeline and data quality
How the leads are distributed across the 10 example searches, what cleaning did to a messy CRM export, and what the LLM calls cost.
How well the leads fit each kind of customer
The same 54 leads (property companies excluded), scored against 10 different customer descriptions. Hover a segment for its count; the table below has every number.
- strong(80 to 100)
- possible(50 to 79)
- weak(20 to 49)
- not a fit(0 to 19)
Managed IT support
Van leasing for trades
Card payments for local shops
Packaging and warehouse supplies
Health and safety training
Commercial cleaning
Websites and local marketing
Bookkeeping and payroll
Workwear and PPE
EV charge points
| Customer description | strong | possible | weak | not a fit |
|---|---|---|---|---|
| Managed IT support | 3 | 18 | 16 | 17 |
| Van leasing for trades | 5 | 9 | 13 | 27 |
| Card payments for local shops | 4 | 9 | 9 | 32 |
| Packaging and warehouse supplies | 2 | 5 | 11 | 36 |
| Health and safety training | 9 | 22 | 12 | 11 |
| Commercial cleaning | 3 | 13 | 17 | 21 |
| Websites and local marketing | 10 | 12 | 10 | 22 |
| Bookkeeping and payroll | 3 | 34 | 15 | 2 |
| Workwear and PPE | 11 | 18 | 10 | 15 |
| EV charge points | 2 | 7 | 16 | 29 |
Cleaning a messy CRM export
The CRM data here is synthetic: 220 records made deliberately messy, with duplicates, typos, websites with and without www, postcodes in every format and free-text industries. The cleaned version is what new leads are matched against.
| Measure | Before cleaning | After cleaning |
|---|---|---|
| Rows | 220 | 173 |
| Duplicate rows | 21.4% | 0.0% |
| Valid, consistently formatted postcode | 52.7% | 93.1% |
| Website as a bare domain | 10.9% | 86.1% |
| Distinct industry values | 42 | 11 |
| Distinct town spellings | 42 | 19 |
| Employee count usable as a number | 20.9% | 69.9% |
| Dates in ISO format | 32.7% | 100.0% |
Remaining gaps are values that were missing in every copy of a record, which cleaning cannot invent.
Finding duplicates and existing leads
Records count as the same company if they share a company number or website, or have the same cleaned name and postcode, or very similar names and the same postcode. Results are checked against an answer key.
56 of 60
Duplicate pairs found
the misses combine a typo with missing data
0
Companies wrongly merged
a stricter rule was kept on purpose
20 of 20
Existing leads recognised
0 false matches
A looser rule found 59 of 60 duplicate pairs but merged “Tees Print & Design” with “Bede Print & Design”. In a CRM, merging two real companies loses data, while a missed duplicate only leaves an extra row, so the stricter rule was kept.
What the LLM calls cost
All LLM work uses claude-haiku-5-5. Responses are cached, so re-running costs nothing.
$0.54
Per 1,000 companies profiled
$0.28
Per 1,000 fit scores
one company against one customer description
$0.29
Whole project so far
970 calls, including discarded prompt versions