Resolution Layer Case Study · Read & Diagnose
An industrial hose & belting distributor.
A catalog read across food-grade hose, V-belts and sheet rubber — for a distributor that also fabricates, and where the specification is the only thing standing between a buyer and the wrong part.
This is a real EKOM catalog analysis, with the distributor's identity removed. The client is an industrial hose, belting and rubber-products distributor — Continental, Dixon Valve, Novaflex, Alfagomma, Kanaflex and TerreMax among the lines it carries — that also cuts, crimps and fabricates to order. EKOM captured 35,852 products from the public catalog, read 9,117 of them in depth across three complete slices, and surfaced 131 flagged items, 120 of which are actionable catalog defects.
What makes this catalog different from a consumer one is what the buyer is actually choosing between. Nobody is comparing two objects they can see. They are comparing an inside diameter, a working pressure, a tube compound, a cover, a ply count and an overall length. The specification is the product. Which means the defects that matter here are not missing photographs or thin copy — they are two fields on one product asserting two different specifications, with nothing to say which is true.
On a consumer catalog a wrong field costs a sale. On an industrial catalog it costs the wrong sale — a part that ships, arrives, and is not the one the application needed.
Third-party manufacturer and product-line names are kept exactly as they appeared, since on a distributor catalog they belong to the manufacturers rather than to the client. The distributor's own part numbers have been generalized; every quoted field value is verbatim.
What's inside
- What a buyer runs into first — a food-grade hose with two working pressures, and reinforced sheet that cannot agree on its own ply count.
- A record that disagrees with itself — the receipt device that needs no outside data to prove a defect.
- Names that are not products — including a product whose entire name is a single apostrophe, and one whose name is an instruction not to use it.
- Where the catalog goes dark — 12.6% of published product URLs returning nothing, and a product line two-thirds gone.
- The machine-readable surface — what a marketplace, an EDI partner and an AI assistant can actually read off these pages.
- What it means, and what's next — six upstream mechanisms, and the order to fix them in.
Nothing was supplied, nothing was requested, and no internal system was touched. Everything below was read from the public catalog.
120
Actionable findings
(131 flagged)
Where the 120 concentrate
Theme
What it is
Findings
Contradictory specs
Pressure, ply, size and colour stated two ways on one product
15
Missing brand
The first filter an MRO or OEM buyer reaches for, left blank
18
Zero price, in stock
Purchasable items priced at $0.00, with no way to signal "quote required"
11
Description artifacts
Pack codes and sort integers standing in as the only product copy
10
Unqueryable specs
Specifications that exist only inside the part number
8
Unit errors
Inches stored in a field named feet
7
Truncated names
Names cut mid-word, the remainder stranded in the next field
7
Everything else
Imagery, categories, URLs, encoding, identifiers, internal notes
44
Catalog-wide defect rates, measured across all 35,852 products rather than the three analysed slices: 41.4% carry no brand · 40.5% no meta description · 25.7% share a product name with something else · 21.3% show a platform placeholder instead of a product image · 21.0% have no description anywhere · 18.0% have no category assignment · 12.6% of published product URLs return nothing at all.
How EKOM read this catalog
1
Read
The public catalog as any customer, marketplace or assistant sees it — no file handoff, no credentials, no integration.
35,852 products, 33 fields each.
→
2
Profile
Infer what each field is for from how the catalog itself uses it, then hold every product to that.
No schema supplied. None needed.
→
3
Analyze
Surface defects, rate severity, and bind each one to the products and values behind it.
120 findings, 15 themes, 6 causes.
These are machine-surfaced signals from a cold read, not a verified defect list. A share of any such read turns out to be intentional — a naming convention with a reason behind it, a price deliberately withheld. That is why every finding is shown with the actual value behind it, and why the ones needing a judgment only the business can make are separated from the ones the record answers for itself.
What a buyer runs into first.
Three findings where the catalog states a load-bearing specification twice, and disagrees with itself.
Critical · Food & beverage · verified against the live site
An FDA food-transfer hose states two different working pressures on the same page.
On the Novaflex 6400WE bulk hose, the product description and the page's meta description disagree by 100 PSI. The rating a buyer reads depends on which part of the page they happen to read.
Field
Value
Says
short_description
150 PSI FDA SUCTION/TRANSFER HOSE (WHITE FDA EPDM TUBE, WRAPPED SMOOTH GRAY EPDM COVER)
150 PSI
meta_description
… 250 PSI white EPDM suction & discharge hose …
250 PSI
Which figure is correct is a question for the manufacturer's datasheet, not for an automated fix. EKOM reports the contradiction as a fact of the record — and it is exactly the kind of question a buyer should never have to ask.
Critical · Sheet rubber
Reinforced rubber sheet disagrees with itself on ply count.
Across a family of reinforced sheet products, the ply count in the product name and the ply count in the URL do not match. Ply count determines load capacity. It is the reason the product is specified at all — and the two sources disagree in both directions, so no single rule recovers it.
Product
Name says
URL says
A 1/4″ reinforced sheet
2-PLY
3-ply
A 1/4″ heavier sheet
4-PLY
2-ply
A 1/8″ reinforced sheet
2-PLY
1-ply
Critical · Rubber mallets
Mallet weights run four ounces apart between the name and the URL — every time.
Weight is the primary selection criterion for a mallet, and across the series the name runs consistently four ounces above the URL. The consistency is the tell: this is one transformation applied wrongly, not scattered typos. The naming is not internally consistent either — the #1 and #0 white mallets are both named 12 OZ while the #1 black is named 16 OZ.
A record that disagrees with itself.
The receipt device: no outside data needed. Each row is one product, and the product's own fields are the proof.
A field named in feet, storing inches
Short jumper assemblies whose names specify an overall length in inches carry that same number in an attribute named assembly_length_ft. A twenty-four inch jumper is filed as a twenty-four foot hose — a twelve-fold error in the one field a length filter reads.
Product name says
The length attribute holds
Actual
1-1/2 ID X 24 IN OAL WHITE FLEXWING FOOD
assembly_length_ft=24 FT
2 FT
1 ID X 24 IN OAL
assembly_length_ft=24 FT
2 FT
1/2 ID X 69 IN OAL
69 IN
5.75 FT
The same field elsewhere holds genuine inch values, and elsewhere again a correct value in feet. So the unit is not recoverable from the number, and not from the label either. Every length filter, price-per-foot calculation and assembly configurator reading this field is reading a mix.
A size stated one way in the record and another in the page title
Field
Value
Says
sku suffix
-150
1-1/2″
name
1 1/2 al dry disconnec
1-1/2″
meta_title
Dixon DBC61-150 - 2" Alum Dry Disconnect Coupler x
2″
The meta title is the line that becomes the headline in a search result. Several Dixon dry-disconnect items carry titles announcing 2″ or 2.5″ on 1-1/2″ products — they read as though they were copied from the larger counterparts. The same record shows the truncation covered overleaf: the name stops one character short of "disconnect."
A colour named one thing and described as another
GLIDETECH NITRILE hose items are named BLUE while the description reads GRAY, UHMW EASY CLEAN CORRUGATED COVER, WHITE NITRILE TUBE and the URL slug on most of them says gray. In a food and beverage plant, cover colour is often how a hose line is identified on sight. The mirror of it appears on CLEAR FDA PVC items whose colour attribute is set to Blue, and on a Gray Flexwing assembly whose cover colour is set to Green against gray siblings.
Names that are not products.
The name is what a search box matches and what lands on a purchase order. On this catalog it carries three kinds of damage.
Cut mid-word, with the rest of the sentence stranded in the next field
The name field
The next field
The product
1 ID X 300# RED MULTI-PURPOSE AIR HOSE
& WATER HOSE
an air and water hose
3'' x 22-1/2'' Gravity Drop Adapter Inli
ne Site Glass-Baylast Flat Seal
"Inline", split in two
…with orang
e stripe
"orange", split down the middle
Nothing is lost — the missing text sits in the next field. But the name alone, which is what most systems read, misstates the product. It affects 184 products.
A product whose entire name is a single apostrophe
One hose carries ' as its complete product name — verified live, where the rendered page heading is that single character. The page title holds the real name, 3” FDA Clear Braid Urethane Lined PVC Hose. The product record does not.
Names that are internal notes, on live and purchasable products
Critical · published internal note
A deprecation warning is serving as the display name of a $33.82 in-stock rubber sheet.
The name reads Do not use-See [part no.] — and the replacement it names does not appear in the slice analysed, so the instruction cannot be followed either. A second sheet, at $181.08, is named non-stock; its URL slug identifies it correctly as a tan pure gum rubber sheet, so the right name is known to the catalog and simply is not in the name field. Elsewhere, products display Item Merged. See Extended Description. and OBSOLETE PART--DO NOT USE-- as names.
In the belt line the same class takes a quieter form. One belt carries a five-letter prefix that appears nowhere else in 35,852 products, where every sibling in its series follows C{length} HY-T PLUS V-BELT — enough to break keyword search and orphan the URL slug. Another carries a cross-reference inside its own name, in the shape [size] HY-T PLUS REPLACES [cross-ref no.] V-BELT.
Where the catalog goes dark.
The sitemap is the file that tells every search engine and AI crawler what exists on a site. A meaningful share of what this one advertises is not there.
Critical · catalog-wide · verified against the live site
5,164 of the 41,024 published product URLs return a 404 — 12.6% of the catalog's own advertised addresses.
Each one is a URL the business is actively telling crawlers to visit, an address that may sit in a customer's bookmark or a supplier's link, and a page that returns nothing. This was measured across the whole of the published list, not a sample — and no page-level audit that respects a site's crawl directives can see it, because these URLs are advertised but unreachable.
High · V-belts
Two-thirds of the V-belt line is gone, and the survivors carry no content at all.
Of 4,153 V-belt URLs in the sitemap, 2,714 return a 404 — 65.4%. That single product line accounts for 52.6% of every dead URL in the catalog. What remains is not dormant stock: the 1,442 surviving belts are browsable, searchable on the site, in stock at 100%, with working add-to-cart and quantity inputs. They are being sold today.
Of the survivors
What the record holds
Rate
Description
No application notes, no temperature or oil-resistance data, nothing
0% have one
Meta description
Every page falls back to the same boilerplate string
0% have one
Queryable specs
Section, length, strand count and type live only inside the part number
none
A buyer who lands on a belt page can put it in a cart and cannot learn anything about it. A search engine ranking that page has a company name to work with and nothing else.
6,439 products — 18.0% of the catalog — carry no category assignment at all, which orphans them from browse navigation entirely. And a smaller, sharper case: a 25 FT NSF 61 potable-water assembly whose URL names the 50 FT variant and the 50 FT part number. The 50 FT product has its own correct URL, so the two are not interchangeable.
The machine-readable surface.
Everything to this point is visible to a person who opens the page. This is not. It is the layer shopping engines, marketplaces, EDI partners and AI assistants read instead of the page — and it produced the most uniform finding in the analysis.
Critical · catalog-wide · verified against the live site
100% of products publish their own part number as a global trade identifier.
Every product carries its part number in the gtin8 field, and again in mpn. A GTIN-8 is an eight-digit numeric identifier issued under the GS1 standard. A part number is not one — only 370 of 35,852 values are even eight characters of digits, and those are coincidence.
Field
Published value
Should be
sku
[the part number]
correct
mpn
[the same part number]
correct — the part number belongs here
gtin8
[the same part number again]
an 8-digit GS1 number, or nothing
The resolution is clean, and it is not a cleanup project. Either real GTIN values are obtainable from the manufacturers already carried, in which case they get filled; or they are not, in which case the field is emptied. An empty identifier is read as "unknown." A wrong one is read as a fact.
Three more the machines see first
Each is measured across all 35,852 products, and each is read by a channel before it is ever read by a person.
Placeholder product image · 7,643 products · 21.3%
Live, priced, in-stock items serving the platform's default "no image" file — on a version-pinned path that stops resolving if static content is redeployed. In the belt line the rate runs higher still, at roughly a third of items, where the cross-section is the thing a buyer is looking at.
Priced $0.00 while flagged in stock · 1,125 products · 3.1%
Nothing in the data distinguishes "call us for a price" from "we lost the price" — no price-on-request flag exists anywhere in the catalog. So every downstream reader, from a marketplace feed to an ERP integration, sees the same thing: a purchasable item at zero dollars, which it either publishes as free or rejects as corrupt.
Shares a product name with another product · 9,220 products · 25.7%
The quietest number in the study and one of the most consequential. Where sizes and compounds are the difference between two parts, two records with the same name are two a buyer cannot choose between — and two a search engine will treat as duplicates of each other.
120 findings sounds like 120 problems. They collapse into six upstream mechanisms — and a mechanism can be fixed once and stopped from recurring.
A character limit upstream
Names stop mid-word and the missing text appears, intact, at the start of the next field. It produced 184 truncated names across fittings, adapters and hose families.
A unit label attached without a conversion
The number from the part name is carried over and a unit appended — FT in one place, IN in another — with nothing converting between them. It produced inch lengths in a field named for feet, a twelve-fold error wherever it lands.
Internal status text reaching the name field
The name is an instruction to a person rather than a description of a product, and the real name sits in the URL or the description. It produced “Do not use”, “non-stock”, “Item Merged” and “OBSOLETE PART” as display names.
A numeric column landing in the wrong field
A bare integer — a pack quantity or sort code — in a field that expects sentences. It produced fittings whose entire product copy is 1, 25 or 0100.
A default used as a value
The same value on every record, distinguishing nothing. It produced the part number in gtin8, the platform placeholder image, and one boilerplate meta description across a whole product line.
Two sources with no referee
Two fields on one record, both holding a plausible value, with nothing deciding between them. It produced 150 vs 250 PSI, 2-PLY vs 3-ply, 16 vs 12 OZ, and BLUE vs GRAY.
Fixing 120 findings one at a time fixes those 120. Fixing six mechanisms fixes every product that has passed through them, and every product that will.
up to
90%
Baymard Institute benchmarked 344 leading US and European e-commerce sites and found that sites with mediocre product-list usability saw abandonment rates of 67–90%, against 17–33% for sites with even a slightly optimized filtering toolset. On this catalog a buyer cannot filter belts by section or length, cannot trust a filter on assembly length, and cannot filter by brand on two-fifths of the products.
Baymard Institute, E-Commerce Product Lists & Filtering UX benchmark
A distributor of this kind sells expertise as much as inventory: which compound survives which chemical, which pressure rating the application needs, which fitting mates to which. For decades a person at a counter carried that. Online the specification fields carry it alone — and these findings are what happens when that transfer is never explicitly designed. Nobody decided a field named in feet would hold inches; it was never anybody's job to check.
The cost is not abstract. A buyer filtering for an assembly at a given length is filtering against a column holding two units at once, so the results are wrong and there is no way to know it. Two-fifths of the catalog cannot be filtered by brand at all, and 12.6% of published URLs lead nowhere.
Three moves, in order. The first needs no new data at all.
This pass read and diagnosed. The same structural understanding powers what follows — turning a diagnosed catalog into one a buyer can specify from.
1 · Apply the corrections the record already answers for itself
Rejoin the truncated names with the text stranded beside them. Restore names that break a series pattern every sibling follows. Fill brand wherever a category path, attributes string or priced sibling already carries it. Clear the pack codes standing in as product copy. Approved as patterns, not product by product.
2 · Make the specifications queryable, and give price a status
Parse belt section, length, strand count and type out of the part number into real fields — the derivation is deterministic and no source data is missing. Then add a price-status field, so "quote required" can be said in a way a machine reads.
3 · Hold the line at intake
Keep ongoing intelligence where manufacturer data meets the distributor's own layer, so the next unit mismatch is caught as it lands, not found later by a buyer.
This is how EKOM moves a catalog from insight to impact —
and keeps every specification reading right as the business grows.