Resolution Layer Case Study  ·  Read, Diagnose, Re-read

A sleepwear and loungewear brand.

Two full-catalog reads, one month apart — what the first found, what the brand did with it, and what a blind second pass found underneath.

Scope
Full storefront catalog  ·  pajama sets, robes, sleep shirts, loungewear
Lead outcome
Every defined change the brand took on was applied in full
Pass one
10 verified findings  ·  1 disproved and removed
Pass two
Run blind  ·  scored on surviving products only
Vertical
Sleepwear & Loungewear — print-led seasonal apparel
Method
Full-catalog read  ·  auto-profiled, no setup
Prepared by
EKOM
Type
Case study — client anonymized

What this is.

This is a real EKOM catalog analysis, with the brand's identity removed. The client is a sleepwear and loungewear brand — pajama sets, robes, sleep shirts, and a large print-driven seasonal range, sold direct through its own storefront. EKOM ran a full-catalog quality read with no schema supplied and surfaced eleven analytical findings, ten of which are real, actionable catalog issues. The eleventh was checked, disproved, and removed.

Then something happened that makes this case study different from the others: the brand read the report and acted on it. A month later EKOM ran the catalog again — deliberately blind, with the pipeline told nothing about the first pass or about any remediation — and compared the two afterwards by hand. That second read is what most of this document is about.

A first read tells you what a catalog looks like. A second read, a month later, tells you something more useful: whether the fixes held, whether the standard survived the next drop, and what the first instrument was not sharp enough to see.

What's inside

At a glance.

Where the first read's findings landed a month later.

10
Verified
findings
4
Resolved
in a month
100%
Of affected products,
where they acted
1
Verdict the survivor
test reversed

The scorecard

Finding from the first readTypeA month later
A hoodie and a cardigan typed as generic long-sleeve topsDefined changeFixed
Sets typed with a singular where the standard is pluralDefined changeFixed
A permanent URL contradicting its own productDefined changeFixed
Cross-sell tags pointing at the companion topDefined changeFixed
Color facets fragmented by capitalizationDefined changeStill open
A legal disclaimer stored as a selectable optionDefined changeStill open
A gifting range carrying no product typeBrand's callStill open
Internal style codes used as permanent URLsBrand's callStill open
A one-size variant in a fitted size runBrand's callRetired
Read the pattern, not the ratio. The brand implemented four of the six changes EKOM had fully specified, and left every item marked as requiring their own judgment exactly where it was. That is a team reading a report precisely — including its distinction between what had been specified and what needed a merchandising decision. Where they acted, they acted on every affected product still published, not a sample.

What the first read found.

Each of these is invisible on the product page and fatal to the collection page.

Lead finding  ·  pass one
A hoodie and a cardigan, both filed as generic long-sleeve tops.
Two garments carry Long Sleeve Top as their product type while their own titles and internal grouping tags say plainly hoodie and cardigan — and the correct values already exist elsewhere in the catalog, in active use. A shopper filtering to hoodies will not see the hoodie. Nothing about the listing looks wrong; it simply never appears in the place a shopper would look for it.

Pajama sets missing from the pajama-set collection

Several sets are typed with a singular where the catalog standard is plural — the difference between one letter and none. Storefront collection rules match exactly, so each of those products drops silently out of the collection it belongs to, and out of every filter built on that collection. This was the single most-affected field in the catalog.

A color filter that shows half the range

Newer items publish color values in capitals; legacy and sale items use mixed case. The same hue therefore appears twice in a color filter, as two separate entries each holding roughly half the inventory. A shopper who picks one sees half of what exists and reasonably concludes that is all there is. Nobody complains about this, because a shopper who can't find something doesn't file a ticket — she just buys less.

A permanent URL that contradicts its own product

One garment is published at a handle describing a different garment type entirely, while its title, product type, and description all agree on what it actually is. Handles are permanent, indexed, linked, and shared — the one field that cannot be quietly corrected later without a redirect, and the longer it sits indexed under the wrong garment the more it costs to change.

Where it traces back: conventions that moved.

Not carelessness — a catalog that has been maintained for years, by people who improved their conventions and never went back to update what came before.

The convention changed; the old records didn't

The capitalization split in the color facet is not a typo. It is a dividing line in time: items published recently follow one convention, older and sale items follow the one it replaced. Both are internally consistent. Neither is wrong on its own. Together they fragment every affected color into two half-empty filter entries — and the same shape repeats in the product-type drift, where the dominant plural form coexists with a handful of singular survivors.

Naming standards that arrived after the products did

A subset of items use internal style codes as their permanent handle, where the rest of the catalog uses descriptive slugs. This is almost certainly the older standard left in place. It is flagged at medium rather than high severity for one honest reason: the fix is easy, but the decision isn't, because rewriting a handle that already ranks can cost more than leaving it alone. That is a call worth making deliberately rather than in a bulk pass.

Grouping tags copied from a sibling garment

Two bottoms carry the grouping tag belonging to their companion top — the tag that drives the "complete the set" recommendation. The pattern used for every comparable pair in the range is correct; these two are not, so they surface incorrectly in the exact feature that exists to build the outfit. This is what convention drift looks like at the point of data entry rather than at the point of a standard changing.

Fields carrying something other than what they are for

One product stores a full legal disclaimer as a selectable option value — it renders as an unusable dropdown choice and lands in any index that reads option values. Another offers a one-size variant alongside a standard fitted size run, inconsistent with every comparable garment. Both are the kind of thing that happens once, works well enough not to be noticed, and stays.

What happened next.

The second read was run blind — the pipeline was told nothing about the first pass, and nothing about remediation having occurred. The comparison was made afterwards, by hand.

They resolved it the other way, and completely

On the singular/plural drift, EKOM had advised aligning the handful of singular outliers up to the dominant plural. The brand did the opposite: normalized the entire catalog down to the singular. Every surviving product of both affected types was retyped — not a sample, not a drift, a deliberate bulk change. The storefront collections were updated alongside it, and nothing dropped out.

That is a better outcome than compliance would have been: a team that applies a specified change in the direction suiting their own conventions has understood the finding rather than executed it. The forward consequence is the part worth carrying — the plural forms no longer exist anywhere, so any collection rule, feed mapping or partner integration still written against them now matches nothing, silently. Storefront collections were updated; anything downstream that wasn't is where to look.

A defect class getting smaller is not evidence of repair. A catalog that retires half its range in a month will shrink a defect class on its own, and report progress that nobody made.

The test that reversed a verdict

On every headline measure, the color-capitalization problem looked substantially improved between the two reads: fewer mixed-case values, a smaller share of the catalog affected. The first draft of the second report said exactly that — a partial fix, underway.

It was not a fix at all. The products carrying that defect were mostly legacy and sale stock, which is precisely the inventory a seasonal catalog retires by itself. Of the affected products still published, not one had been corrected. The class shrank because the range turned over, and the fragmentation that remains is not a residue being worked through — it is the whole original defect, on every product that survived.

Every verdict on page three is therefore decided the same way: on surviving products only, matched on stable identifiers rather than URLs — a URL-keyed comparison scores a successful rename as a deletion. It cuts both ways; the same test is what makes the singular/plural verdict safe to state strongly.

Legible to a shopper, unreadable to a machine.

The first read saw the product feed. The second also captured the product pages themselves, and went back through the feed at the level of individual variants rather than whole products. A different layer came out.

Pass two  ·  critical
Two colorways of the same sweater, each holding the other's color.
Two colorways of one chenille sweater have their color values swapped: each product's variants carry the other's color. Titles, photography, swatches and descriptions on both pages confirm the true color — it is the one field the color selector actually reads that is wrong, in both directions. A shopper who picks the first is wired to the second. Both also carry color tags that contradict their own colorway, so each surfaces in the wrong filter and is absent from the right one.

The structured data carries commerce, and no product facts

Every product page publishes a machine-readable summary alongside itself — the block that rich results, shopping feeds and AI shopping assistants read. Measured across the full capture, it carries price, availability, barcode, shipping terms, size and color, and no material, no pattern, no category and no weight: those properties are populated nowhere in it. For a brand whose product is print and fabric, the systems increasingly mediating discovery can read what a garment costs and whether it's in stock, and nothing about what it actually is.

The spec content exists — and never reaches the feed

This is the finding that reframed the rest. The brand publishes thorough garment specification on its product pages: composition, care, country of origin, style number, detail bullets, at better than 97% coverage on every one of those fields. It lives in storefront metafields, which the product data feed does not expose at all. So the facts a machine consumer needs already exist, fully maintained, one mapping away from the place anything downstream would look for them. That is a far cheaper problem than creating the content — and it was invisible to an instrument reading only the feed.

The smaller ones that only a variant-grain read catches

A seasonal-weight filter tag missing a single letter, so the garments carrying it are dropped from that filter without an error anywhere. Physical garments recorded with a shipping weight of zero. Composition strings that run two fiber percentages together without the separating comma, so nothing downstream can split the components. A product whose every image references a different style's asset code. Each is one field on a handful of records, and each is the kind of thing a sampled check averages away.

Where EKOM corrected itself.

This is normally the part that stays inside the building. It is here because it is the most useful thing in this case study about how EKOM works — and because it has now happened twice, in two consecutive reports on the same catalog.

Pass one  ·  Investigated  ·  Not a defect  ·  Excluded from every count
The pattern that looked like duplicate identifiers.
The first analysis surfaced what appeared to be its single most serious finding: a large family of shared identifier values, each appearing across several products with genuinely different prints. Read at face value that is a warehouse and order-management problem. It came with a confident causal claim attached.

So it was checked against the live variant records before it was written down. Every real variant identifier is unique and sequential. The shared values aren't identifiers at all — they read as a style-family grouping code, same garment in a different print, almost certainly powering the "complete the set" recommendation. Nothing collides. No system is at risk. The second read confirmed it independently, a month later, still not a defect.
Pass two  ·  Our error  ·  Corrected in writing
We described their spec content as structure carried but not used.
The first report's catalog-structure panel listed a specification field as empty across the catalog, under a heading reading Structure carried, not used. A reader would take from that — correctly, as the page was written — that the brand publishes no structured garment specification.

That characterization was wrong. It was true of the feed, which is all the first pass read. The content is there, above 97% coverage, held in metafields the feed doesn't expose. The correction was written into the client's report as its own page, and it is what turned the structured-data gap from a discouraging finding into an actionable one.
Why both of these are in a public case study. An instrument that only ever confirms its own earlier reading isn't measuring anything. A confident-sounding finding is the one that earns the extra check, precisely because it is the one a client would act on first — and a second pass is only worth commissioning if it is allowed to contradict the first.

What this means — and what's next.

up to90%
Across a benchmark of 344 top-grossing US and European e-commerce sites, those with mediocre product-list and filtering usability saw abandonment rates of 67–90%; sites with even a slightly optimized toolset saw 17–33%. For a print-led brand where newness is the product and the range turns over every season, the browse layer does the work a salesperson would do in a store — and that gap is the difference between a shopper who finds the print she came for and one who decides you don't carry it.
Baymard Institute, E-Commerce Product List Usability benchmark
The first read proved the defects were there. The second proved something more commercially interesting: they are fixable, quickly, by a team that gets a precise specification — and they come back, because a catalog that replaces half its range in a month re-applies every convention from scratch on every drop. Four findings resolved completely in four weeks. Four still open. A new layer underneath that the first instrument was not built to see. None of it is a content problem, and none of it generates a complaint.

Two passes in, the shape of the work is clear. Diagnosis is the cheap part. What a catalog on this cadence actually needs is a standard that holds between drops.

1  ·  Close the remaining defined changes
Normalize the surviving legacy color values to the current convention, move the disclaimer out of the option field, correct the swapped colorways and the misspelled filter tag — resolved systematically from data already in the catalog, not one listing at a time.
2  ·  Map the spec content into the machine-readable layer
The composition, care, origin and material facts already exist at full coverage. They need mapping into the structured data block and the outbound feeds so that partners, shopping engines and assistants can read what the brand actually sells — a build done once, then maintained.
3  ·  Hold the line at intake
Keep ongoing intelligence at intake so each new season's prints and colorways arrive on the current convention — rather than adding a new layer of drift on top of the one just cleared. This is the step the second read exists to justify.
A catalog that turns over this fast doesn't need another audit.
It needs a standard that holds between drops.
EKOM
The Resolution Layer
ekom.ai
About this analysis

Two full-catalog reads of the same brand, one month apart. Both were auto-profiled with no schema and no manual setup, and both read the full live catalog rather than a sample. The second was run blind — the pipeline received the data and nothing else, no prior findings and no hint that remediation had occurred — and the comparison was made afterwards by hand, scored only on products present in both reads. One high-severity pattern from the first read was checked against live variant records, disproved and excluded; one characterization in the first report was corrected in the second. The findings here are what remained, with the brand's identity removed.

Case Study  —  Client anonymized  ·  The Resolution Layer
EKOM