getName.ai Benchmark 11.2026. ETIM classification with an F1 score of 93.8%

06.11.2026
Tomasz Grzywacz
CEO Robokat

Customers almost always ask us the same thing: how accurate is getName.ai and how good are the attribute values it returns? The honest answer is not simple and, as usual in such cases, it starts with "it depends". On what the product description contains, on the classification, on the kind of attribute.

We decided to take that question on. We built a test that measures quality as objectively as we could, and we open it to anyone who wants to check it. The descriptions, the ideal answer, every scored value and the full statistics are available for download at the end of this article, so anyone can verify the result or repeat the test. This is the first edition of the getName.ai Quality Benchmark. We will repeat it and compare future editions with this one.

In the ETIM classification, getName.ai fills in attributes from the product description with a quality of 93.8%. In Amazon the quality was 93.1%, and in Kaufland 91.7%. That is the result of a test on 100 products from 17 categories, with descriptions in Polish, German and English.

We measure quality with the F1 score, the standard measure for evaluating information extraction from text. It combines precision, i.e. how many of the values the API entered are true, with recall, i.e. how many of the values that follow from the description the API entered. An empty answer scores 0%, an ideal one 100%.

A quality of 93.8% does not mean that 93.8% of product records are ready without corrections. It means that the API's answers match the ideal answer to that degree, counting omitted and wrongly entered values together. The test does not measure time or cost of work, and it does not compare the API with a human.

Below we explain why such a measurement is difficult, how we calculated the result, where the API makes mistakes and what quality depends on.

Results at a glance

API answer quality by classification: ETIM v10 93.8% (precision 93.9%, recall 93.7%), Amazon 93.1% (precision 92.6%, recall 93.7%), Kaufland 91.7% (precision 92.0%, recall 91.3%)
  • Quality by classification: ETIM 93.8%, Amazon 93.1%, Kaufland 91.7%.
  • Precision and recall are close: in ETIM 93.9% and 93.7%, in Amazon 92.6% and 93.7%, in Kaufland 92.0% and 91.3%. In ETIM and Kaufland the API omits a value more often than it enters a wrong one, in Amazon the other way round.
  • Values stated explicitly in the description are entered with a recall from 96.0% in Kaufland to 98.0% in ETIM. Values that have to be inferred from the description are entered less often (79.7%). The API most often omits inferred yes/no features, e.g. that a kettle is cordless.
  • The description language matters little: from 92.6% for Polish to 93.8% for English.
  • Median quality of a single answer: ETIM 95.2%, Amazon 94.0%, Kaufland 92.3%.

Why such a measurement is difficult

The result depends on the description, not only on the API. The API can only enter what is in the description. A short three-sentence offer gives fewer features than a technical data sheet, so the API can enter fewer values from it. If the test counted how many attributes of a class were filled in, it would measure the description, not the API. That is why we prepared a separate ideal answer, the reference, for every description: the complete set of attribute values that follow from that description. Across all descriptions there were 7,994 of them, and we compared the API's answers with them. We call them required values: since the description provides them, the API should enter them. "Required" here does not mean mandatory in the classification or on the marketplace.

Not everything is stated explicitly. A kettle that "switches off when lifted from the base" is cordless, even though the word does not appear in the description. A product sold individually has a quantity of 1. But dimensions "410 × 230 × 195 mm" without axis labels do not say which of them is the width. We drew the line between a certain inference and a guess separately for each such value.

The same field means different things in different classifications. "Floor area" on the Polish and German Amazon is the area the product occupies; on the British Amazon it is the size of the room an air purifier serves. Scoring must know what a field means, not only its name.

The reference is an ideal, not a human. We prepared the ideal answer without time pressure and checked it many times. Nobody fills in product records like that day to day. The proper benchmark would be a human doing the same work under real conditions: after several hours of repetitive work, with the fatigue and boredom that come with it, and often without deep knowledge of the industry the product comes from. Nobody has claimed they would fill in attributes with 100% quality. We do not have such a measurement yet, so the result in this article says how far the API is from the ideal, not from a human.

What we tested

getName.ai receives a product description and a class in the selected classification. It returns the values of that class's attributes in the classification's format: picklist values, numbers in the field's unit, yes/no, ranges and text. The test covered exactly this step. We provided the class up front, so this test does not measure class recognition.

The description and the classification were always in the same language:

description language ETIM v10 Amazon Kaufland
Polish ETIM v10 PL Amazon PL Kaufland PL
German ETIM v10 DE Amazon DE Kaufland DE
English ETIM v10 EN Amazon UK -

Kaufland has no English version, so the English descriptions went only to ETIM and Amazon. Each request is one description and one class. The test comprised 672 API requests:

classification products languages requests
ETIM v10 66 Polish, German, English 198
Amazon 96 Polish, German, English 288
Kaufland 93 Polish, German 186
total 672

The number of products differs because we scored only products that the class certainly fits (more in the reference rules below). The API's answers produced 10,703 scored items, i.e. values from the reference and values returned by the API. The median time of a single call was 3.2 seconds, and 90% of calls took less than 6.5 seconds.

We sent the ETIM and Kaufland requests on 24 October 2026, and the Amazon requests on 6 November.

How we score: the kettle example

A bullet-point description (Polish original, translated):

Bosch DesignLine TWK3P420 electric kettle – stainless steel / black, 1.7 l, 2400 W

• Fast boiling thanks to 2400 W and a concealed flat heating element – the interior is easy to keep clean
• Capacity 1.7 l (minimum fill 0.5 l), clearly visible water level indicator on the outside of the housing
• Brushed stainless steel housing with an anti-fingerprint coating, black handle and base
• Removable limescale filter in the spout – no limescale particles in your cup
• Safety: automatic switch-off after boiling, switch-off when lifted from the base, protection against switching on without water
• Lid opened with a button, wide opening for filling and cleaning, power indicator light
• No temperature control and no keep-warm function

Technical data: voltage 220–240 V, 50/60 Hz
• cord length 75 cm
• dimensions (H × W × D) 27.5 × 21.6 × 15 cm
• weight 1.2 kg

The ideal answer for the kettle class in ETIM has 15 values. This is how it compared with the API's answer to the Polish description (ETIM attribute names and values in English):

ETIM attribute attribute type unit ideal answer API answer verdict
Volume decimal number l 1.7 1.7 correct
Power rating decimal number W 2400 2400 correct
Voltage range V 220-240 220-240 correct
Width decimal number mm 216 216 correct, converted from 21.6 cm
Height decimal number mm 275 275 correct
Depth decimal number mm 150 150 correct
Heating element picklist, single value none concealed concealed correct
Water level indication picklist, single value none outside outside correct
Basic colour picklist, single value none stainless steel stainless steel correct
With water filter yes/no none yes yes correct
With sieve yes/no none yes yes correct, the spout filter is a sieve
Cook stop function yes/no none yes yes correct
With temperature controller yes/no none no no correct, negation recognised
Cordless yes/no none yes - the kettle switches off when lifted from the base no value missing required value
Transparent yes/no none no - the housing is steel no value missing required value
Material reservoir picklist, single value none no value - the description gives steel only for the housing stainless steel guess
Scoring the kettle in ETIM: the ideal answer has 15 required values, the API returned 14, of which 13 are hits and one is a guess; precision 13/14 = 92.9%, recall 13/15 = 86.7%, quality 89.7%

From this comparison we calculate three measures:

  • hits: 13, i.e. correct values;
  • precision = hits / values returned = 13 / 14 = 92.9%. The API entered 14 values, and one of them, the reservoir material, is a guess;
  • recall = hits / required reference values = 13 / 15 = 86.7%. The API omitted two values that follow from the description;
  • quality (F1) = 2 × hits / (values returned + required reference values) = 2 × 13 / (14 + 15) = 89.7%.

The same description in the other classifications (attribute names in English):

classification and attribute attribute type unit API answer verdict
Amazon PL: Cable [m] text none of its own, metres given in the attribute name 0.75 correct, converted from 75 cm
Amazon PL: Item Dimensions L x W x H [cm] text none of its own, centimetres given in the attribute name 15 × 21.6 × 27.5 correct, axis order matched to the attribute
Amazon PL: Part Number text none TWK3P420 correct, model code from the description
Kaufland PL: Model text none DesignLine incomplete, series name instead of model code
Kaufland PL: Safety instructions text none automatic switch-off after boiling, ... wrong, these are safety features, not instructions

For this product, answer quality was 93.9% in Amazon and 86.7% in Kaufland. In English, ETIM scored 93.3% and Amazon 93.5%.

Scoring categories

verdict how it counts in the result when
correct hit value matches the reference or an alternative value
incomplete half a hit value is true but clearly incomplete, e.g. a range with only one bound
partially matching list part of a hit, according to the match with the reference multi-select field missing some reference elements or containing a wrong or guessed element
missing required value reference value without a hit the API omitted a value the description provides
guess returned value without a hit value is typical or likely but does not follow from the description with certainty
wrong returned value without a hit value is false or does not fit the meaning of the field
missing optional value does not count the API returned no value where we do not require one
gap in the reference does not count the API returned a value outside the reference that, according to the judge, follows from the description

In a required field, a wrong value or a guess counts twice: as a returned value without a hit and as a reference value without a hit. An optional value, or a value outside the reference, entered correctly counts neither for nor against. We count a guess the same as a wrong value. It may be true, but in a catalogue it looks like a fact, and nobody has checked it.

A list gets the share of a hit to which it matches the reference. Example: the reference has material [aluminium], and the API returned [aluminium, titanium]. Half of the returned list is correct and the whole reference is contained in it, so the hit is 0.67.

Measures

  • Precision = hits / values returned by the API. It says how much of what the API entered is true.
  • Recall = hits / required reference values. It says how much of the ideal answer the API delivered.
  • Quality = 2 × hits / (values returned + required reference values). This is the F1 score, i.e. the harmonic mean of precision and recall.

F1 is the standard measure for evaluating information extraction from text and in language model benchmarks. It is used, for example, by SimpleQA, OpenAI's benchmark of factual knowledge in language models. Only an ideal answer scores 100%. An empty answer and a completely wrong answer score 0%, and the result never drops below zero. Guessing does not pay off: a value the description does not provide lowers precision and does not raise recall.

We count rounding a value to fewer significant digits as correct, e.g. 0.353 m written as 0.35 m. getName.ai writes numbers this way on purpose. Across the whole test this concerned 16 values.

Who scores

  • Structured fields are scored by a script. It compares numbers (with a tolerance of 0.5%), yes/no values, ranges and picklist values. Here the result is unambiguous: the value matches the reference or it does not.
  • Text fields and values outside the reference are scored by a judge, the Claude Opus 5.5 language model by Anthropic. The judge sees the description and compares meaning, not wording. "Stal szlachetna, czarny" means the same as "stainless steel / black". It must not use knowledge about the specific product, and general knowledge only when it is true for every product of that kind. In Amazon the judge also receives Amazon's instructions for sellers, because they, not the name alone, define what a field means. The judge's full prompt is in the downloads.

Kinds of errors

Each kind of error with an example from the test (Polish descriptions, quotes translated, attribute names in English).

Missing required value

The description provides the value, and the API did not enter it.

product cordless drill driver
classification Kaufland PL
attribute Speed (rpm)
attribute type decimal number
unit rpm
description excerpt "2 gears: 0–500 / 0–1900 rpm"
ideal answer 1900
API answer no value

Missing required value, inferred

The description does not state the value explicitly, but it follows from it with certainty, and the API did not enter it.

product hand mixer
classification ETIM v10 PL
attribute Power control stepless
attribute type yes/no
unit none
description excerpt "4 speeds + turbo (pulse) function"
ideal answer no - the mixer has four fixed speeds
API answer no value

Wrong value

The API entered a value that is false or does not fit the meaning of the attribute.

product angle grinder
classification Kaufland PL
attribute Safety instructions
attribute type text
unit none
description excerpt "ANTI-RESTART function + soft start", "double insulation"
ideal answer no value - the description gives no safety instructions
API answer anti-restart function, soft start, double insulation

The description gives safety features, while the attribute is about instructions. The value is true, but it went into an attribute with a different meaning.

Guess

The API entered a possible value that does not, however, follow from the description with certainty.

product jug blender
classification ETIM v10 PL
attributes Height, Width, Depth
attribute type decimal number (each of the three)
unit mm
description excerpt "dimensions 410 x 230 x 195 mm"
ideal answer no value - the description does not say which dimension is which
API answer height 410, width 230, depth 195

Wrong list element

The attribute takes several picklist values, and the API added a wrong value to the correct ones.

product frying pan
classification Amazon PL and Kaufland PL
attribute Material
attribute type picklist, multiple values (in both classifications)
unit none
description excerpt "body: ALUMINIUM", "TITANIUM non-stick inner coating"
ideal answer aluminium
API answer aluminium, titanium

The description mentions titanium only for the coating, not as the material of the pan.

Incomplete value

The API entered a value that is true but clearly incomplete.

product cordless drill driver
classification Amazon PL
attribute Battery Type
attribute type text
unit none
description excerpt "18 V", "2 Li-ion BL1830B 3.0 Ah batteries"
ideal answer Li-ion 18 V 3.0 Ah
API answer lithium-ion

The API gave the battery chemistry, but without the voltage and capacity.

How often each kind of error occurs

This is how the gap to 100% splits between the kinds of errors across all classifications:

Share of error kinds in the gap to 100%: missing required value 39.5% (440 values), guess 29.7% (330), wrong value 18.2% (176), incomplete value 7.3% (133), partially matching list 5.3% (124)
kind of error values share of the gap to 100%
missing required value 440 39.5%
guess 330 29.7%
wrong value 176 18.2%
incomplete value 133 7.3%
list incomplete, with a wrong element or with a guess 124 5.3%

The number of values and the share of the gap do not go hand in hand, because the kinds of errors weigh differently. A wrong value in a required field counts twice: as a returned value without a hit and as a missing reference value. An incomplete value counts only in a required field (81 of 133) and gets half a hit, and a list loses only the part in which it differs from the reference.

Omitted required values make up the largest part of the gap. Three quarters of them (320 of 440) are inferred values that the description does not state explicitly, most often in yes/no fields, such as stepless power control in a mixer with four speeds. The API almost always enters a quantity of 1 for a product sold individually: of 849 such fields in Amazon (number of items, units, packs and package quantity) it filled in 840 correctly.

The API enters guesses and wrong values mainly in fields the description says nothing about or that we do not require: that is the case in 477 of 506 instances. Among the 7,994 required values the API entered a wrong value or a guess in 81 cases, including 52 lists with a wrong or guessed element.

Among wrong values the most common is a true value entered in a field with a different meaning, as in the angle grinder example: that applies to 141 of 212 (we assigned wrong values to patterns with the help of the Claude model). Other examples: a capacity of 75 ml in a dimensions field, the green colour of a laser beam as the product colour, a screen diagonal in a field that on the British Amazon means supported colours.

Why quality depends on the classification

classification required reference values quality structured fields text fields precision recall
ETIM v10 2,205 93.8% 93.8% - 93.9% 93.7%
Amazon 4,324 93.1% 94.1% 90.6% 92.6% 93.7%
Kaufland 1,465 91.7% 93.2% 88.7% 92.0% 91.3%

The same description yields a different set of fields in each classification. Classifications differ in the number of fields, their type and how often a value has to be inferred from the description, and Kaufland did not receive English descriptions. The differences in quality should therefore not be read as a comparison under the same conditions: each classification sets the API a different task.

classification reference values per answer inferred values text fields quality
ETIM v10 11.1 11.0% 0% 93.8%
Amazon 15.0 27.8% 27.2% 93.1%
Kaufland 7.9 13.5% 33.3% 91.7%
  • ETIM is a technical classification. Every field has a precisely defined meaning, unit or picklist, and there are no text fields at all. It has the fewest inferred values. ETIM loses most on yes/no fields, where the API omits features that follow from the description, and on picklists, where it sometimes picks a typical value the description does not give.
  • Amazon has the most fields per product, and more than a quarter of the values in its reference are inferred, most often the quantity. The API enters such values most often here: recall of inferred values is 86.9% in Amazon, 61.4% in Kaufland and 58.8% in ETIM. Field names are often generic, and their meaning is defined only by Amazon's instructions for sellers. Omitted required values and guesses each account for about a third of the gap to 100% in Amazon.
  • Kaufland has the fewest fields per product, but one in three is a text field. Text fields do worse there (88.7%) than structured ones (93.2%). Wrong values account for a larger part of the gap to 100% here than in the other classifications, and 46 of 55 of them are values entered in a field with a different meaning, such as "Safety instructions" filled with safety features.

How quality depends on the data type

Quality by attribute type and classification: integers (Amazon 98.5%, Kaufland 92.0%) and decimal numbers (ETIM 96.1%, Amazon 97.8%, Kaufland 98.5%) score highest, yes/no fields (ETIM 88.2%, Amazon 81.4%, Kaufland 86.1%) score lowest
field type ETIM v10 Amazon Kaufland inferred values recall: explicitly stated values recall: inferred values
integer - 98.5% 92.0% 78.8% 97.1% 98.4%
decimal number 96.1% 97.8% 98.5% 6.9% 98.8% 82.0%
range 93.3% - - 6.2% 100.0% 55.6%
picklist, multiple values - 92.2% 94.7% 7.1% 96.2% 52.4%
picklist, single value 94.3% 89.5% 87.4% 16.9% 98.2% 74.1%
text - 90.6% 88.7% 6.5% 93.8% 31.5%
yes/no 88.2% 81.4% 86.1% 39.2% 95.8% 60.7%

The ETIM, Amazon and Kaufland columns show quality. A dash means the classification has no fields of that type. The last three columns cover all classifications combined.

Recall of values stated explicitly in the description is between 93.8% and 100% for every attribute type, and of inferred values between 31.5% for text and 98.4% for integers; inferred values are most common among integers (78.8%) and yes/no fields (39.2%)

The field type itself changes little. The API enters values stated explicitly in the description with a recall from 93.8% (text) to 100% (range) for every type. The differences between types come from how often a value of that type has to be inferred from the description and how hard that inference is. Descriptions almost always give dimensions, power and capacity as numbers, so decimal numbers do well in every classification. Integers are mostly quantities, which descriptions usually leave out because they are obvious. Almost four in five of them have to be inferred, but the inference is simple: for a product sold individually the quantity is 1. The API almost always enters it, so integers have the highest quality (98.0%). Yes/no fields do worst (86.1%): "no temperature control" is a value stated explicitly, but "cordless" has to be inferred from the description of the base, and the API draws such inferences in only 60.7% of cases.

Kinds of errors by field type:

field type values returned correct wrong guesses incomplete missing required value
decimal number 2,343 97.2%
(2,278)
0.9%
(22)
1.8%
(43)
0%
(0)
2.2%
(43 of 1,927)
integer 1,046 98.0%
(1,025)
0.7%
(7)
1.3%
(14)
0%
(0)
1.6%
(15 of 963)
yes/no 724 90.9%
(658)
1.0%
(7)
8.1%
(59)
0%
(0)
17.7%
(138 of 779)
range 169 90.5%
(153)
5.9%
(10)
3.6%
(6)
0%
(0)
2.8%
(4 of 144)
picklist, single value 1,733 90.0%
(1,559)
1.5%
(26)
8.5%
(148)
0%
(0)
5.2%
(79 of 1,533)
picklist, multiple values 1,101 84.7%
(932)
4.6%
(51)
5.0%
(55)
5.7%
(63)
4.2%
(41 of 983)
text 2,486 89.9%
(2,234)
3.6%
(89)
1.2%
(30)
5.3%
(133)
7.2%
(120 of 1,665)

The shares in the columns from "correct" to "incomplete" are calculated from values returned, and the missing required value from required reference values. The table covers all classifications combined; a table for each classification separately is in the statistics file. A multi-select list counts here as one value: of 51 wrong lists, 36 have one bad element next to correct ones.

  • Numbers returned by the API are the most reliable: about 97% correct, few guesses and errors.
  • Yes/no fields are most often left empty: the API omits 17.7% of required values, compared with 1.6% to 7.2% in the other types.
  • Single-value picklists are rarely wrong (1.5%) but more often guessed (8.5%). The API picks a typical value the description does not give.
  • Multi-select lists are least often entirely correct (84.7%), because one wrong or missing element is enough. A partially correct list does get part of a hit, though, so in quality they do well: 92.2% in Amazon and 94.7% in Kaufland.
  • In text, the most common error is an incomplete value (5.3%), and text has the most wrong values in absolute terms (89).

Other breakdowns

By language

description language quality structured fields text fields
English 93.8% 94.4% 91.3%
German 93.0% 93.8% 89.9%
Polish 92.6% 93.4% 89.5%

The differences between languages are small: up to 0.9 percentage points in structured fields and up to 1.8 points in text fields. Text fields in Polish Kaufland do worst (87.2%). The comparison is not entirely even, because English descriptions did not go to Kaufland.

By product category

Tools (95.0%), garden, and home and kitchen (94.5% each) score highest. Small kitchen appliances (92.2%), toys (91.1%) and beauty (90.0%) score lower. Some categories have only 1-4 products in the test, so we treat their results as indicative. The full table is in the statistics file.

Distribution of single-answer results

Distribution of single API answer quality: median ETIM 95.2%, Amazon 94.0%, Kaufland 92.3%; most answers have a quality of at least 85%
classification answers median quality answers with quality of at least 80% answers with quality of at least 70%
ETIM v10 198 95.2% 94% 98%
Amazon 288 94.0% 99% 100%
Kaufland 186 92.3% 90% 97%

Traps the API handled

  • Fridge, chaotic shop export. The description gives three capacities: fridge 260 l, freezer 103 l, total 363 l. The API entered each into the right field in all three classifications. It converted the dimensions 203 × 60 × 66.5 cm to millimetres for ETIM and to metres for Kaufland, and arranged them in the order D × W × H for Amazon. It did not use the package dimensions and weight that stood right next to them.
  • Drill driver, short three-sentence offer. Two gears of 0-500 and 0-1900 rpm went into the first and second gear fields. With two 3.0 Ah batteries the API gave the capacity of one battery (3.0 Ah), not the sum, and their number (2) separately. The 1.5-13 mm chuck range did not end up in the drilling diameter fields for steel and wood. It missed one trap: in ETIM it entered 50 Nm in the torque adjustment range field, although the description gives only the maximum torque and 21 clutch settings.
  • TV. Energy consumption given in kWh per 1000 hours was not entered as annual consumption. The API converted the 55-inch diagonal to 139 cm.

What follows from this

The API reads numbers, units and explicitly stated features very accurately: recall of explicitly stated values is from 96.0% in Kaufland to 98.0% in ETIM. The gap to 100% comes mainly from three things, and none of them is a misreading of what the description states explicitly:

  • values that follow from the description although they are not written in it, e.g. that a kettle is cordless. The API omits them more often than it enters them wrongly;
  • answers in fields the description says nothing about, most often values typical for that kind of product;
  • confusing the meaning of a field, e.g. safety instructions with safety features, where the attribute name alone does not make clear what the field is about.

We are working on all three.

What does this mean in practice? Below are our conclusions from the numbers in this article, not the result of a separate measurement:

  • the API enters numbers given in the description most reliably, including unit conversion. About 97% of the numbers it returned are correct;
  • yes/no fields and single-value picklists, where the API guesses more often, need the most attention, as do text fields whose meaning cannot be told from the name alone;
  • features obvious to a human, such as that a kettle is cordless, are worth writing into the description. The API enters explicitly stated values with a recall from 96.0% to 98.0%, and inferred ones less often (79.7%).

All test files are available for download, so anyone can carry out the comparison with a human that we mention at the beginning. If you do, write to us.

The test set

100 real products (a specific brand and model) from 17 categories of a broad marketplace. They include electrical installation and lighting, tools, small and large household appliances, electronics, garden, plumbing and heating, home and kitchen, fashion, beauty, toys, sports, baby products, pets, automotive and food. The technical data comes from manufacturer data sheets and large shops.

5 description styles, 20 products each, because descriptions in real catalogues look very different:

style what it looks like
short offer 1-3 sentences, everything in one run
bullet points feature list and short technical data
technical data sheet parameter table
marketing copy benefits and emotions, parameters woven into sentences
messy shop export HTML, abbreviations, capital letters, asides about shipping and returns

3 languages: Polish, German and English. Each description is written the way a local seller would write it, not as a translation. The facts are the same in all languages. The average description length is about 750-800 characters.

The descriptions were prepared by AI agents following written instructions, based on the source data of each product. The same agents compiled the ideal answer (more on it below).

409 traps. We deliberately placed spots in the descriptions where it is easy to make a mistake:

  • unit conversions, e.g. dimensions in centimetres when ETIM expects millimetres and Kaufland metres;
  • negations, e.g. "no temperature control" or "not dishwasher safe";
  • several similar numbers at once, e.g. three fridge capacities or two drill gears;
  • decoy numbers, e.g. package dimensions and weight, warranty period or delivery time;
  • a range where the field takes a single number;
  • mentions of compatible products that are not a feature of the product itself.

The ideal answer (reference)

For each product and each classification we prepared a full list of attribute values that follow from the description. That is what we compared the API's answers with.

Rules

  • The reference contains only what follows from the description. Knowledge about the specific product from outside the description does not count. If the description does not give the colour, the reference has no colour, even if we know what it is.
  • A certain value belongs in the reference, a guess does not. A value does not have to be written in the description explicitly. It also belongs in the reference when it follows from the description with certainty: from a conversion, from the kind of product (a straightener gives straight hair, a power strip with type F sockets has a type F plug), from a feature true for every product of that kind (a cosmetic has an expiry date) or from the fact that the product is sold individually (quantity 1). There is no general rule here, so we assessed each such value separately. A value that is merely typical or likely, e.g. "lightweight", "classic style" or taking one of the unlabelled dimensions as the width, is a guess.
  • Required and optional values. Required values are those the description gives or that follow from it with certainty. "Required" means only that, since the description provides the value, the API should enter it. It is not about attributes that are mandatory in the classification. An attribute the description says nothing about has no value in the reference and does not affect the result, as long as the API does not fill it in. Optional are only generic fields (e.g. style or a descriptive size), fields where the description allows several readings (e.g. which code denotes the product version), and approximate equivalents in a picklist. A missing optional value is not an error.
  • Alternative values. When there are several correct answers (e.g. 230 V or a range of 220-240 V), the reference accepts each of them.
  • Certain classes only. We scored attributes only when the class certainly fits the product. ETIM does not cover clothing, toys or food, so we scored 66 products in ETIM, 93 in Kaufland and 96 in Amazon.
  • The test measures reading the description, not the quality of the classifications themselves. Where the classification's definition made a correct answer difficult (e.g. a picklist without a matching value or an unclear label), the field was optional.
  • No search-optimisation fields. Amazon's "Generic Keyword" and "Subject Keyword" are phrases customers search for, not features of the product. The test does not score them.

How it was created

The reference was prepared by AI agents following written instructions. Each of 10 author agents worked on 10 products: descriptions in three languages and the ideal answer for each classification. Then 6 other agents, who were not authors, reviewed everything and made 193 corrections. Rules and disputed cases, e.g. the line between a certain value and a guess, were decided by a human.

After the first scoring the reference went through four more rounds of checks:

  • Gaps. When the API returned a value the reference did not have, and the judge found that it follows from the description, the value was added to the reference. After the first scoring there were 675 such values, most of them optional. We repeated the same check after subsequent Amazon runs, with the exception described below.
  • Consistency across languages. The same field of the same product must get the same verdict in every language. We resolved every discrepancy in the reference rather than leaving it to the judge.
  • Field meaning according to Amazon. Amazon's instructions for sellers showed that some fields mean something other than the name suggests. "Sub Brand" also covers a licence, e.g. Minecraft on a puzzle. We reviewed the Amazon reference field by field according to these instructions and to the Amazon picklists in getName.ai as of 27 October
  • Together with the gaps we changed or added 393 fields in 95 products, 246 of them new. In each marketplace a field has the meaning given in that marketplace's instructions.
  • Inferred values. Values that the description does not state explicitly but that follow from it were initially optional. We checked each of them, 674 in total, separately for whether it follows from the description with certainty. 568 are now required, 84 we classed as guesses, and 22 remained optional (generic fields, approximations in a picklist and lists where only some elements are certain). The check was done by the Claude Opus 5.5 model according to rules set by a human.

Limitations of the test

  • The sample is enough to compare classifications and field types, but not narrower breakdowns. 100 products and 7,994 required values are enough to compare classifications and attribute types. A single product category has between 1 and 14 products in the test, so we treat category results as indicative.
  • The class was given up front. The test does not measure class recognition, and in practice a wrong class means wrong attributes.
  • The descriptions were written for the test based on real product data. They are meant to reflect the variety of real catalogues, but real descriptions are sometimes even shorter and poorer.
  • The descriptions and the reference were prepared by AI agents under human control, and text fields are scored by an LLM judge. The reference went through an independent review and a consistency check, but it may contain individual errors. That is why we publish it in full.
  • We added to the reference after seeing the API's answers. In the gaps round we added values that the API returned and the judge found to follow from the description (more in "How it was created"). We do not have a separate sample for which the reference was created without insight into the API's answers. This round worked both ways: an attribute added as required lowers the result in the languages where the API did not fill it in. We checked inferred values without the API's answers.
  • An LLM judge is also a model. When re-scoring the same answers (after its instructions were refined) it changed about a dozen of roughly 3,000 text field verdicts, mainly between "incomplete" and "correct".
  • One run. The main test is a single run. We repeated Amazon two more times, and across the three runs quality was from 93.0% to 93.1% in PL, from 92.7% to 92.9% in DE and from 93.4% to 93.7% in UK. We did not repeat ETIM and Kaufland.
  • Three classifications and three languages out of the many that getName.ai supports. On other classifications the result may differ.

Downloads

Everything in one archive: pakiet_testowy_getname.zip (1.8 MB). Or separately (labels and column values inside the files are partly in Polish):

file contents
opisy_pl.csv, opisy_de.csv, opisy_en.csv 100 product descriptions in each language (columns: id, description); the same data in JSONL format
wzorzec.xlsx the ideal answer: sheet "produkty" (products: category, description style, traps, data sources) and one sheet per classification (class, attribute, type, unit, value, alternative values, required, basis, note)
wzorzec_json.zip the same ideal answer in 8 JSON files, one per classification and language
macierz_testu.json which classifications the description in each language was sent to
wyniki_atrybuty.csv each of the 10,703 scored values: product, language, classification, class, attribute, type, whether required, reference value, API answer, verdict, how it counts in the result, judge's reasoning
wyniki_podsumowanie.csv measures for each language × classification pair
statystyki.xlsx all tables from the article and the result of each of the 672 API answers
prompt_sedziego.txt the full instructions for the LLM judge

Columns of wyniki_atrybuty.csv (separator: semicolon):

column meaning
product product identifier (P001-P100), the same as in the descriptions and the reference
language description language: pl, de, en
source classification, e.g. etim_v10_pl, amazon_co_uk, kaufland_de
family classification family: etim, amazon, kaufland
class class identifier
attribute, name attribute identifier and name
type field type: float, integer, boolean, range, dictionary (multi = multiple values), string
required True = required value, False = optional or outside the reference
gold reference value (empty = the reference expects no value)
returned API answer (empty = the API returned no value)
category, category_pl verdict in English and in Polish
gold_count 1 = the value counts as a required reference value
returned_count how much the value counts as returned: 1, 0 (does not count) or a fraction for a list outside the reference with some wrong elements
hit hit from 0 to 1
language_ok for text: whether the answer is in the classification's language
judge_reason the judge's reasoning (empty when scored by the script); the prefix [reference conflict] means that, according to the judge, the reference value does not fit Amazon's instructions

The quality of any group of rows is 2 × sum of hit / (sum of gold_count + sum of returned_count).

How to repeat the test

  • Take a description from opisy_<language>.csv and the class from wzorzec.xlsx for the same classification (column "klasa", only rows with "klasa pewna" = "tak", i.e. certain class = yes).
  • Send them to getName.ai and save the returned attributes.
  • Compare them with the reference value, the alternative values and the "required" field according to the rules described above. Score text fields and values outside the reference with the help of prompt_sedziego.txt, for Amazon together with Amazon's instructions for sellers for the given attribute. We do not include those instructions, because they are Amazon content made available to sellers.
  • Calculate precision, recall and quality using the formulas in "Measures".

If you find an error in the reference, write to us. We will fix it and recalculate the result.