KOSMOS is the data normalization platform of the EurekaGO suite — the first step of the pipeline, the one that turns a price list into a catalogue.
The pipeline

Seven steps.
None of them skippable.

An uploaded file moves through the steps in order, and each one stays shut until the previous one is finished. That is not bureaucracy: it is what stops a mistake at step two from travelling all the way into the catalogue.

The seven steps

Each step decides one thing, and decides it once. A brand resolved at step three is not reopened at step six; a product type settled at step four arrives at mapping already decided. What a person corrects always beats what the machine proposed.

1Upload Step
The file comes in

The file is uploaded into its own client’s space — the association comes from the session, never typed by anyone. You can work on a sample or on the whole file.

2Columns Step
What to read in the file

You point at the brand column, at up to three descriptive columns — these are what AI will read later — and at a reference price if there is one. Encoding and whitespace repair run here, along with coverage and duplicate-header checks.

3Brand Step
Resolved in clusters

The distinct values of the brand column are clustered and each cluster resolved once: dictionary first, then the rule learned from that supplier, then AI against the real brands table. A correction on a single row always beats its cluster.

4Product type Step
Row by row

Almost no price list carries a "product type" column, so every row is resolved from its own descriptive text. An admin-curated keyword dictionary first, with no AI; then that supplier’s learned rule; then AI against the real product types. A row can be excluded, with the reason recorded.

5Hierarchy Step
Families and variants

Rows are gathered into parent-and-child families and given their variant axes — size, colour, and whatever that product type actually carries. Axes belong to the product type rather than to a single family, so two families of the same type cannot drift apart.

6Mapping Step
The remaining columns

The remaining columns are mapped onto normalized fields, split between anagraphic and commercial. An attribute is offered only if the ontology genuinely associates it with that product type: this is a check on structure rather than on existence, and a pairing that sector does not allow for is blocked as you choose it, not silently at import time.

7Record Step
The finished product

The product record, with anagraphic data on one side and commercial data on the other. From here it is ready for the central catalogue, which remains the only authority on what a product is.

Why a cascade, rather than just AI

The value is not the model, it is the agreement on what a product is in that sector. An AI proposing inside an ontology nobody has agreed on produces confident nonsense, only faster. That is why the dictionary comes first: it is curated by people, it is deterministic, and it is free. Learned rules come next, because they are the accumulated experience of that particular supplier. AI is left with whatever neither has already settled — and it is the only layer that declares it was involved.

The most useful file is the messiest one.

Send us a price list exactly as it reaches you. We will tell you what would come out of it, and where a person would still be needed.

Let’s talk →