QUOTECLERK AI / MATCHING
Trade names, column names and catalogue matching
Customers describe products in their own words and lay out their sheets their own way. I handle that in two steps. Column names are recognised, with the names your regular customers use set up per customer at onboarding. Product descriptions are compared word by word with your own catalogue data. A trade name matches only if it is in your catalogue data; otherwise the line shows candidates, and a person on your team picks the right product.
Step 1: column names
When a list arrives as a spreadsheet, its header row is read first. Common names for the fields a quote needs, such as code, description, quantity, unit and price, are recognised automatically. Two checks run before any row is used: if the same field would come from 2 columns, or a required column is missing, the mapping is rejected and the reason is shown.
Regular customers often have their own habits: "No. off" for quantity, "Ref" for code, "Item" for description. These header names are set up as aliases per customer during onboarding, so the sheet from that contractor is read correctly from then on, without asking them to change anything. Typed emails, PDFs and photos have no header row, so for those the whole line is used as the description. More on spreadsheets is on the Excel takeoff page.
Step 2: codes first
If a line carries a code that is your own product code, the line is matched to that product directly. This is the most reliable route, and it is why a customer's repeat order, copied from a previous quote of yours, is the fastest kind to turn round.
Step 3: descriptions, word by word
Most lines carry no code of yours, only words. For those, the words of the line are compared with the data of each product in your catalogue: its name, your code, the manufacturer's code, any aliases you keep for it, and its ETIM class. The more of the line's words appear in a product's data, the higher that product ranks. Up to 5 candidates are shown on the line, best first, each marked as a text similarity match only.
Words are compared as written, after ignoring upper and lower case and accents. That makes the method simple to check, and it has limits worth knowing: "15" and "15mm" are different words, and a description in words the catalogue never uses will not find its product. A line like this is never priced on its own. A person on your team looks at the candidates and picks one, or searches for the right product.
Trade names
Trade talk is full of names that are not in any product title: "T and E" for twin and earth cable, "push fit" for fittings your catalogue lists under a brand name, "4 by 2" for a timber size, "the blue stuff" for a sealant. There is no built in dictionary of trade slang. A trade name matches only if it is in your catalogue data, for example in the product name or in an aliases column in your catalogue file. Otherwise the line shows candidates based on its other words, or none if nothing overlaps, and a person decides.
That is a deliberate choice. A dictionary that someone else wrote would guess what your customers mean. Your own catalogue data says what your branch actually stocks.
What is never guessed
- Equivalents. No product is treated as technically equivalent to another on its own. If the reviewer picks a product different from the code on the customer's line, a short technical review note is required before the line can go through.
- Units. If the line's unit does not match the product's unit, the line is flagged, never converted.
- Prices. Once a product is chosen, the price comes from your own price data, and a tie or a missing price blocks the line.
For handwritten lists, the words come from text recognition first. Uncertain lines are flagged for a person to check, so a misread word becomes a question, not a wrong product.
Making matching better over time
The fastest improvement is in your own catalogue data. During the pilot, the catalogue issues report lists the lines that did not match. When the same trade name keeps turning up, adding it to the aliases column for the right product makes it rank first from then on. When one contractor keeps using odd column names, those names go into their aliases. Both are small changes in your own files, and both are written down in the field mapping you get from the pilot.
Pricing
Starter is £390 a month for up to 20 requests, and Team is £790 a month for 3 users and up to 200 requests, both with no setup fee. The full rollout is £1,290 a month for up to 500 requests and 10,000 line items, or £3,900 a month for up to 1,500 requests and 30,000 line items, plus £5,950 onboarding including the £1,490 paid pilot. How the paid pilot works ↗
Frequently asked questions
Do you understand trade slang?
Only what is in your catalogue data. A trade name matches if it is in a product name or your aliases column; otherwise the line shows candidates for a person.
How are a customer's column names handled?
Common names are recognised automatically, and each regular customer's own header names are set up as aliases during onboarding.
Is a word based match ever priced without a person?
No. Candidates are shown, and a person picks the product.
How many candidates does a line show?
Up to 5, ranked by how many of the line's words appear in each product's data.
Can a product be swapped for an equivalent?
Only by a person, and a product different from the customer's code needs a technical review note.
How do I improve matching?
Add the trade names your customers use to the aliases column of your catalogue file.