Symblon
Your records describe the same product in different ways, so two analysts count different product sets.
The same product, recognised as the same product, across every system and every data feed you buy.
How it works
Symblon resolves retailer feeds, syndicated market data and your own catalogue into one canonical product identity, with a link back from every source record.
- Resolve
Every incoming record is normalised, matched, and either linked to an identity or given one. Nothing drops out silently.
- Classify
Competitor and unmapped products get a place in your taxonomy through four ordered tiers.
- Explain
Every decision carries a confidence score, a match method, and a path you can trace.
What it does today
- Proven end to end on real retail and syndicated data.
- 91 per cent brand extraction on a 2,000-product open corpus of arbitrary retail goods.
- Every record carries a usable identifier after normalisation, because malformed and float-encoded barcodes are repaired rather than discarded.
- Four ordered classification tiers, the expensive one running only on what the cheaper three cannot decide.
- Embeddings run on your own machine. The only outbound call is the last classification tier, and it can be switched off.
Roadmap
- Calibration against your labelled set, which is the first milestone of any engagement.
- An approximate index, for catalogues large enough that exhaustive similarity search stops being fast.
What we do not claim
- Scoring weights and thresholds are sensible defaults, not yet fitted to any client's labelled data.
- No accuracy figure against a client catalogue, because we cannot source one yet.
- The consumer goods company this came out of is not named without its written permission.
- A repaired barcode is a usable identifier, not a guarantee that the record is right.
A good fit
- Retail and consumer goods teams reconciling syndicated market data to their own sales data.
- Teams with a taxonomy they can hand over and a slice they can label as ground truth.
- Anyone who has to defend a share number when it is challenged in a meeting.
Not a fit yet
- Teams who want a barcode join and nothing else.
- Anyone who needs a certified accuracy figure before a pilot runs on their own data.
The five stages
A record arrives, and five things happen to it in order.
Ingest takes the file as it is. A retailer feed, syndicated market data, your own catalogue export.
Normalise and extract pulls out brand, sub-brand, size, unit, pack count and form from the text, using rules where the pattern is reliable and a model where it is not.
Match compares the record to every identity you already hold. An identifier match is taken first. Where there is no identifier, or the identifier is malformed, the comparison falls back to attributes and then to text.
Decide or defer either links the record to an identity, creates a new one, or holds the record for a person to look at. The third outcome is a result, not a failure.
Classify and publish puts the record in your taxonomy and writes the decision, its score and the method that produced it onto the record itself.
The part that stops this being a barcode join
Sixteen ounces and thirty two ounces of the same product read as nearly the same sentence. A semantic model rates them about 0.98 similar, which is close enough to merge them, and merging them is how a share number quietly goes wrong.
So size never enters the semantic comparison. It is pulled out first, normalised to a common unit, and enforced as a structured gate: two records with different sizes do not match, whatever the text similarity says. Pack count works the same way.
Barcodes get repaired before they get used. A barcode that arrived as a float, lost its leading zero in a spreadsheet, or carries the wrong check digit is a barcode a strict join throws away. Repairing it first is why every record ends up with a usable identifier instead of most of them.
Most of the value is in the matches it refuses to make
A matcher that always answers is easy to build and impossible to trust. Four conditions make Symblon stop instead of answering.
The score lands between confident yes and confident no. The record goes to review with the candidates it was weighing and the score for each.
Two identities score almost the same. Both are shown, because guessing between them is worse than asking.
An attribute a gate depends on cannot be read. Size, brand or pack count is missing, so the gate that needs it cannot be applied.
The identifier and the attributes disagree. The barcode says one product and the text says another, which usually means the source record is wrong, and that is worth knowing on its own.
What people use it for
Reconciling syndicated market data to internal sales, so share is calculated on one product set. Finding competitor products nobody ever mapped. Merging a predecessor product into its replacement without losing the history. Asking questions about the catalogue in plain language. Auditing a match somebody in a meeting does not believe. Giving a new data feed a place to land.
How an engagement runs
First, we take a slice of your data and run the pipeline on it. Second, you label a sample, and the thresholds are calibrated against your labels instead of our defaults. Third, we agree what happens to the records that come back deferred, and who reviews them. Fourth, it runs on your infrastructure, and the embeddings run there too.
Where we are, plainly
The pipeline has run end to end on real retail and syndicated data.
The company this was built for is not named here. That needs their written permission, and we have not asked for it.
We check the problem before anyone talks about a build.