Skip to content
All posts

Twelve spellings, eight bath types: normalising product attribute values so filters work

A filter can only offer the values that are in your data. When one type of bath is spelt two ways, shoppers get two options for one thing, and each shows only part of the range. Here is how to find those variants in a supplier file, fold them together, and keep them folded.

BeforeFreestanding BathsFreestanding
AfterFreestanding
Type column, 329 baths

Have a supplier file like this? Send it exactly as it arrived and see the same products before and after.

What normalising attribute values means

Normalising product attribute values means choosing one way to write each value of an attribute, and mapping every variant a supplier sends onto it. An attribute is a column such as Type, Colour or Width; a value is what sits in each cell. “Freestanding Baths” and “Freestanding” are two ways of writing one value, and until they are folded together, a filter treats them as two different things.

That matters because a filter is usually built from the distinct values in a column, so every spelling becomes an option of its own. Tick one, and you usually see only the products filed under that exact spelling. The rest of the range sits behind an option that looks like a duplicate.

Baymard Institute, which researches ecommerce usability, puts the requirement plainly: to offer harmonised filtering values, vendors’ product data and branded feature names have to be post-processed into “common name” attributes, which can then be used to filter product lists and search results.1 Suppliers name things for their own systems. Your filters need names for your shoppers.

Normalising is one part of the wider work of product data enrichment, and it comes first. You cannot tell which values are missing until the ones that are present mean the same thing everywhere.

Twelve spellings, eight bath types

On one bathroom retailer’s catalogue of 329 baths, the Type column held twelve different values, and they described eight real types of bath. It is one of our recent jobs, and a clean example of how the problem looks in practice.

Three types had each arrived under two names. Single Ended sat beside Single End Bath, Freestanding beside Freestanding Baths, and Corner beside Corner Bath. Five more were already written one way: Double Ended, Left Hand, Right Hand, L Shape Bath and P Shape Bath. The twelfth value was Freestanding Taps, which is not a bath at all. It was a tap that had been filed among them.

In the Type columnFiled as
Single EndedSingle ended
Single End BathSingle ended
Freestanding BathsFreestanding
FreestandingFreestanding
CornerCorner
Corner BathCorner
Double EndedDouble ended
Left HandLeft hand
Right HandRight hand
L Shape BathL shape
P Shape BathP shape
Freestanding TapsNot a bath: recategorise
The twelve values in a bathroom retailer’s Type column, across 329 baths, and the eight types they describe. Eleven fold onto a type; the twelfth is a tap. The right-hand names are one way to write the eight: the words themselves are the retailer’s to choose.

So shoppers were offered twelve filter options for eight real things. Someone who ticked Freestanding saw the baths filed under that exact word and missed the ones filed as Freestanding Baths, which sat behind an option of their own. The filters only started working once the twelve became eight.

Two things in that column were not spelling problems, and they are worth separating early. The tap is a categorisation error. Folding it into a bath type would hide it, so it is flagged and moved instead, which is the subject of mapping supplier categories. And a few baths had no type at all. A blank is not a variant; it is a gap, and it is filled by finding the value, not by mapping one.

Where the variants come from

Variants arrive because every supplier writes values for its own systems, and because people type them. Once a catalogue draws on more than one supplier, each brings its own vocabulary, and the column holds all of them at once. The same few patterns account for most of them.

  • Extra words and plurals. Corner and Corner Bath; Freestanding and Freestanding Baths. The product type repeated inside the value is the commonest variant of all.
  • Different word forms. Single Ended and Single End Bath describe the same bath in two grammatical shapes.
  • Casing and punctuation. Freestanding, freestanding and Free-standing look like one value to a person and three to a database.
  • Invisible differences. A trailing space, a curly apostrophe where another row has a straight one, or a non-printing character copied in from a PDF. Microsoft warns that exactly these can make Excel’s COUNTIF return unexpected results.2
  • Two names in one cell. A finish supplied as Steel/Inox is one finish named twice: once in English, and once in the shorthand many European suppliers use for stainless steel.

Casing is the one that slips past a quick check. Excel’s COUNTIF ignores case: “apples” and “APPLES” match the same cells, so “freestanding” and “Freestanding” are counted as one value.2 Your store may still show them as two separate options, so a spreadsheet that looks clean can feed a filter that is not.

Units, and cells that hold three values

Numbers have the same problem, and it is harder to see because every version is correct. A width of 60cm in one column and 595 in a column headed Width (mm) are one fact written twice, and a cell reading 1850x595x655 is three facts with no unit at all.

Supplier columnAs suppliedAfter
DIMENSIONS1850x595x655Height 1850 mm; width 595 mm; depth 655 mm
Width60cmWidth 595 mm
Width (mm)595Width 595 mm
colourSteel/InoxStainless steel
Illustrative: the homepage’s example fridge freezer, as a supplier might send it. Three columns carried one width, and one cell carried three measurements.

The rule is one unit per field and one fact per cell. Split compound cells into their own fields, convert every measure in a field to the same unit, and state the unit the same way on every row, never on some rows and not others. OpenAI’s product feed specification for ChatGPT asks for the same discipline: length, width and height as numbers, with “one unit for all supplied axes”.3

The 60cm is not wrong, and it should not simply be thrown away. It is the nominal size the product is sold by, which is why it appears in the product’s name. If your shoppers filter by nominal width, give it an attribute of its own. The measured width belongs in the width field, in millimetres, like every other width in the category.

Values that were never values

Some cells hold something that is not a value at all, and those should be emptied rather than mapped. N/A, absent and see image are the common ones, along with a category name such as Baths sitting in a type column.

Google’s Merchant Center rules for the colour attribute name the problem directly: do not submit a value that is not a colour, and N/A is among the examples it gives.4 The same rules read a slash in a colour as separating a main colour from up to two others, so Steel/Inox would be taken as two colours rather than one finish.4

Consistency matters beyond your own filters, too. Google asks that the colour in your product data is the same one shown on your landing page,4 and OpenAI’s feed specification asks for a colour consistent with the product image.3 Both are far easier to meet when every channel reads from one canonical value, rather than from whatever each supplier typed.

Emptying a non-value can feel like losing data. It is the opposite. An empty cell is an honest gap that a quality check can count and enrichment can fill. An N/A is a gap disguised as data, and it sits in a filter as an option nobody wants to click.

How to normalise attribute values, step by step

The method is the same for any attribute, and the order matters, because each step needs the one before it.

  1. List every distinct value, with a count. A pivot table, COUNTIF or a GROUP BY query will do it. Trim stray spaces first, and remember that Excel’s counts ignore case, so casing variants will not show up as rows of their own.2
  2. Decide the canonical list. One value per real thing, in the words your shoppers use, written in one style. It is the “common name” list Baymard describes, and it is yours to set: a supplier should not decide what your filters say. Agree it with whoever owns the category pages, because they are closest to the distinctions shoppers actually use.
  3. Map every variant to it. A two-column table, supplier value on the left and canonical value on the right. Anything that fits no canonical value gets a flag, never a best guess.
  4. Empty the non-values. N/A, absent and see image become blanks, so they are counted as gaps and not offered as options.
  5. Apply the mapping and count again. The number of distinct values should now equal the number of real things. Then look at the filter on the live category page, because that is where a shopper will meet it.
  6. Keep the mapping. It is the most valuable thing the whole exercise produces. Run every future import through it, and only the new variants need a decision.

One judgement runs through all of it. Folding spellings is safe; folding distinctions is not. If an old value carries a meaning shoppers use, keep it as an attribute of its own. When a bathroom retailer’s sixty-two wall panels were pulled out of fifteen categories into one range, the old category was kept as a filter shoppers can still use.

Keeping the next supplier file clean

Normalising once fixes today’s catalogue; keeping the mapping fixes the next one. Every new supplier file arrives with its own spellings, and unless the mapping is applied as the file comes in, the variants come straight back.

That is why normalising belongs in the intake of supplier data rather than in an occasional clean-up. The guide to supplier data onboarding shows where it sits in that sequence. A consistency check, one word per value and one unit per field, is how you know it is still holding.

It is also the part of the work that RefynData’s product data enrichment service automates: it folds every variant onto the one word you choose, and clears the values that were never values. The vocabulary stays yours. Set the canonical word once and every future import lands on it.

Questions

What is product attribute normalisation?

Product attribute normalisation is mapping every way a value has been written onto one agreed value per attribute. “Freestanding Baths” and “Freestanding” both become Freestanding, and a width given as 60cm in one column and 595 in another becomes one width in one unit. The result is one filter option per real thing, and data that can be counted, compared and checked.

Why do my product filters show duplicate options?

A filter usually lists the distinct values in a column, and to software two spellings are two values. So Corner and Corner Bath appear as separate options, each showing only part of the range. The fix belongs in the data rather than the filter: fold the variants onto one value and the duplicate options disappear.

Should values like N/A be deleted?

Yes: empty them rather than mapping them to something. N/A, absent and see image are not values, and Google’s Merchant Center rules for the colour attribute list N/A among the values not to submit. An empty cell is an honest gap that checks can count and enrichment can fill. An N/A is a gap disguised as data.

Does Excel show every variant of a value?

Not always. Excel’s COUNTIF ignores case, so “freestanding” and “Freestanding” are counted as one value, and Microsoft warns that stray spaces, mixed straight and curly quotes or non-printing characters can make it return unexpected results. Your store may still show those variants as separate options, so trim and standardise casing as part of the mapping rather than trusting the count.

Does normalising lose information?

Normalising only loses information if a variant was carrying meaning. Most variants are one thing spelt differently, but sometimes an old value is something shoppers rely on. When a bathroom retailer’s sixty-two wall panels were pulled from fifteen categories into one range, the old category was kept as a filter shoppers can still use. Fold spellings, and keep distinctions.

Sources

  1. Baymard Institute. Filter List Design: Have Filters for All Displayed List Item Info (38% Don’t). Read .
  2. Microsoft Support. Use the COUNTIF function in Microsoft Excel. Read .
  3. OpenAI Developers, Agentic Commerce. Products: product feed specification for ChatGPT. Read .
  4. Google Merchant Center Help. Colour [color]. Read .

Try it on a fileyour supplier sent

Nothing goes live without your sign-offEvery value keeps its sourceYour data is never shared

Send one supplier spreadsheet exactly as it arrived. We will show you the same products before and after, with a source on every value we add.

One email with the upload link. Nothing else lands in your inbox.