Resolution Layer Case Study · Read & Diagnose
Outdoor apparel markdowns.
A catalog read across an outdoor apparel and gear brand's complete public catalog — where an outlet runs beside the full-price store, and the labels on the price no longer agree with it.
This is a real EKOM catalog analysis, with the client's identity removed. The subject is an outdoor apparel and gear brand that sells direct and through retail partners — and online, where an outlet section sits beside the full-price store. EKOM read the brand's whole public product feed. Ninety-four findings are reported here. Confirming against source, near the end, accounts for the ones that were not.
A brand that runs an outlet keeps two facts about every product: what it costs, and what that price means. The first lives in the price and the original price. The second lives in tags — full price or outlet, and how deep the outlet discount goes — and tags are what outlet collections, sale badges, discount filters and promotion rules can be built from. This read asks whether the two facts still agree.
Every markdown changes a price. If the label beside it is kept separately, every markdown is also a chance for the two to disagree.
Product names, prices and tag values are described rather than quoted here. Counts are exact, as of the day the catalog was read.
What's inside
- At a glance — where the ninety-four concentrate, how far they reach, and how the read was done.
- The price says one thing, the label another — the lead finding, in the full-price tags and the outlet tiers.
- One product, two listings — older styles left up beside newer ones, often at different prices.
- Copy, sizes, origin and the rest — copy that describes another product or arrives damaged, sizes and SKUs, and facts kept where no filter can read them.
- Confirming against source, and where it traces back — what was withdrawn, what the data cannot tell, and the seven mechanisms EKOM reads in the rest.
Nothing was supplied and no internal system was touched. Everything below was read from the product feed the brand publishes. The four figures are products, not findings.
198
Discounted products
tagged full price
111
Products with the
wrong outlet tier
18
Products listed twice
under one title
16
Products with damaged
characters in their copy
Where the ninety-four concentrate, and how far they reach
Theme
What it is
Reach
Markdown labels and prices
Full-price and outlet tags that disagree with the price; prices that differ inside one style
198 tagged full price; 111 with the wrong tier
The same product listed twice
An older and a newer style under one title
18 titles; on 13, both copies can be bought
Copy that describes another product, or none
Wrong-product copy, a sentence from another colorway, empty descriptions
1 wrong-product page; 7 with no description
Broken text
Damaged characters, straight quotes, copy broken into markup, typos
16 damaged; 23 with straight quotes
Sizes, SKUs and origin
Sizes in the wrong system, a shared SKU, an origin badge that does not follow the SKU
56 without the origin badge; dozens of variants with no origin code
Product types
Categories split in two, system codes published as names
About twenty types; three categories split in two
Tags, color names and web addresses
Campaign tags left live, internal color markers, addresses from old names
Over a hundred with a fulfillment-status tag
Published with nothing to buy
Products with no size or color in stock
Over a hundred published products
Facts kept in prose and codes, not fields
Material, gender, fit, origin and color family with no field of their own
The whole catalog
How EKOM read this catalog
1
Read
The brand's public product feed — every merchandise product, in every size and color. No file handoff, no credentials, no integration.
The whole catalog, not a sample.
→
2
Analyze
Infer what each field is for from how the catalog itself uses it, then hold every product to that. Surface the disagreements, rate severity, and tie each to the products behind it.
94 findings, 9 themes, 7 mechanisms.
→
3
Check
Every headline figure was counted again across the whole catalog, down to each size and color, and every product cited re-read against the feed.
Two findings withdrawn.
Signals from a read of the published data, checked by an analyst; not a verified defect list. Where a tag and a price disagree, the data cannot say which is wrong, and some differences may be intentional — which is why each is tied to the values behind it. One catalog, one day. The data is a point-in-time read.
The price says one thing, the label another.
The brand tags each product with its price state — full price or outlet — and each outlet product with its discount tier. On 198 of the 428 discounted products — nearly half — the price-state tag still says full price.
High · Markdown labels and prices
198 discounted products are still tagged full price.
A product counts as discounted when at least one size or color sells below its original price; 428 do. 198 of them carry the full-price tag, and 179 of those also carry an outlet tag — so one product claims to be full price and outlet at once. Only 18 products in the catalog use the outlet price-state tag at all. Where only some sizes or colors are marked down, the full-price tag may be intended; a product tagged both full price and outlet contradicts itself.
High · Markdown labels and prices
111 outlet tags name a discount the price does not give — almost always one tier short.
The most common case is a 40% outlet tag on a product that is half off (56 products), then a 30% tag on a product that is 40% off (37). On 60 of the 111, a separate tag marking a deeper discount sits beside the old tier — likely a price cut that never reached the outlet tag.
Anything built from these tags reads the tag, not the price: an outlet collection, a sale badge, a filter by discount, a promotion meant to leave outlet goods out. Wherever the tag is displayed, a shopper can be shown a different discount from the one the price gives — and a marked-down product tagged full price can be left out of what is built for the outlet. The fix is to set price state and outlet tier from each product's own price and original price, once the brand confirms the rule — and where the tag was right and the price wrong, the same comparison lists those products for a pricing fix instead.
One product, two listings.
When a product moves to a new style code, the new style can go up as a new product — and the old one can stay.
High · The same product listed twice
18 titles appear on two separate products. On 13 of them, both copies can be bought.
Each pair is an older and a newer style — the SKUs differ — with a numeral added to one web address. The two copies are often priced differently: a jacket on one page at a price 40% below the other, and other pairs priced apart. A shopper may find either, or both; a search engine sees two pages with the same name.
One listing, five problems
An older jacket listing suggests how a listing left behind can stop being kept.
It shares its title with a newer listing. Its copy describes a sleeveless version of the garment. It has nothing in stock. Its outlet tag names a 30% tier on a price that is 40% off. And it carries the full-price tag beside its outlet tag.
The rest of the price record
- Prices that differ inside one product or style: one size of a product at a different price from its siblings with no original price, and a tee priced higher in two colors than the original price shown on the other two — which price is current, only the brand can say.
- Outlet tags with no markdown (3): products tagged as outlet that sell at their regular price, with no original price.
- A "sale" of nothing (3): an original price equal to the selling price.
- One jacket, two prices by color: full price in one color and half off in two others — possibly a core color kept at full price on purpose.
Copy that describes another product, or arrives damaged.
Product copy is what a shopper reads before buying, and what Google Shopping and AI assistants can quote when they describe it.
Critical · Copy that describes another product
A jacket page describes a sleeveless version.
The copy describes a garment without sleeves. The other listings of the same jacket carry jacket copy, so the right text already exists in the catalog. Elsewhere, a shirt's description carries a sentence written for a different colorway, and seven products have no description at all — some of them beside sibling colors with full copy.
High · Broken text
Character damage on 16 products, and one jacket's construction details lost in three colors.
Five products show the replacement character, such as where an apostrophe or a dash belongs; eleven show garbled sequences, such as where an inch mark was meant. On one jacket, the description has been broken into markup, so several sentences about how it is built never appear. Twenty-three products use a straight double quote as an apostrophe, several carry typos, and one stops mid-sentence.
For a brand whose customers read the copy before they buy, the copy is where the product's care reaches an online shopper — and every channel that takes the description can carry the damage with it. Most of it is correctable from the catalog's own record; the lost jacket copy has to come from the brand's original.
Sizes, origin, types and the rest.
Medium · Sizes, SKUs and origin
The SKU records where a product was made. The origin badge does not follow it.
The brand's SKUs end in a country-of-origin code. 56 products whose SKUs carry a single origin code — the brand's home country — have no origin badge; the badge itself is spelled two ways. A missing badge may be deliberate — whether each product should carry the claim is the brand's call — but where the badge builds a collection or a filter, the two records disagree.
The smaller items
- Sizes and SKUs: a handful of belts and pants whose first size is a waist-by-inseam value where every other size is a plain waist; gift cards that share one SKU across amounts; dozens of variants with no origin code.
- Product types (11 findings): about twenty types, with hats, bags and vests each split across two, truncated system codes published as category names, and a non-merchandise item published as a product.
- Tags, colors and addresses (17 findings): dated campaign tags on live products, one of them on some full-price goods; a fulfillment-status tag on over a hundred products; color names carrying internal markers; web addresses that still name an old product.
- Published with nothing to buy (4 findings): over a hundred published products with no size or color in stock.
- Facts kept in prose and codes (15 findings): material, gender, fit, origin and color family with no field of their own — read from descriptions, titles and SKU codes, where no filter or AI assistant can use them as fields.
Confirming against source.
The automated analysis raised ninety-six findings. Ninety-four are reported. Both of the others are accounted for here.
Withdrawn · two findings
Both said every product carries the same last-updated time. That reflects how the public feed is served, not the brand's data, and both were withdrawn.
Counted across the whole catalog
Every headline figure was counted across the whole catalog, down to each size and color, and every product cited was re-read against the feed. The counts in this case study come from that check. Six days later, a sample of the headline findings was re-opened on the live store, and each still stood, though new colors had since been added to one jacket.
What the data cannot tell
Where a tag and a price disagree, the feed shows the disagreement but not which side is wrong. Some duplicate listings and some price differences between colors may be intentional. And the feed shows tags, not what they drive — which ones build a collection or trigger a promotion is visible only inside the store.
A finding that names the disagreement without choosing a side is not a weaker finding. It is the one the brand can act on, because only the brand knows which price was intended.
Read together, most of the findings collapse into seven likely mechanisms — and a mechanism can be corrected once and stopped from recurring. Each tell below is a pattern in the data; the mechanism is EKOM's reading of it.
Markdowns made on the price, labels not updated with it
The tell: outlet tags almost always exactly one tier short, and on 60 of them a separate deeper-discount tag beside the old tier.
A new style published as a new product, and the old one left up
The tell: the same title on two products with different style codes in the SKU, and a numeral on one web address.
Copy carried between colorways and not rewritten
The tell: a sentence that is another colorway's real sentence, and sibling colors with full copy beside ones with none.
Text likely converted badly on its way to the store
The tell: the same garbled sequences recurring across unrelated products.
System codes published as shopper-facing values
The tell: truncated category names and internal markers where a word belongs.
Facts kept in prose and codes rather than fields
The tell: material, gender, fit and origin present in the record, but in a description, a title or a SKU suffix.
Campaign and operational tags left on after their purpose may have passed
The tell: tags named for a past season, a flash deal or a fulfillment state on live products.
What this means, and what's next.
A brand that runs an outlet beside its full-price store runs on one record for both. That record is where the two have drifted apart: a jacket that is half off labeled with a shallower tier, a marked-down product labeled full price, the same jacket on two pages at two prices. The labels and the prices no longer agree.
None of this needed access to the brand's systems. Every finding here came from data the store already publishes to anyone who asks.
This pass read and diagnosed. The same structural understanding powers what follows — turning a diagnosed catalog into one where every label and price agree.
1 · Prepare the corrections the record already supports
Set price state and outlet tier from each product's own price. Repair damaged characters. Carry the right copy across from sibling colors. Lift origin and style code out of the SKU into fields. Approved as patterns, not product by product.
2 · Settle the questions that gate the rest
Which side is right where a tag and a price disagree, which older styles stay up, which tags still drive a collection or an app, and which products should carry the origin claim. Each is a judgment the data can show but cannot make.
3 · Hold the line at every markdown
Keep ongoing intelligence where prices change, so the next markdown reaches the label along with the price.
This is how EKOM moves a catalog from insight to impact —
and keeps every label true as the prices move.