Resolution Layer Case Study · Read & Diagnose
Irrigation & sprinkler parts.
A catalog read across the sprinkler category of an online irrigation-supply retailer — spray bodies, rotors, nozzles and fittings, where one part is sold singly, by the bag and by the case, and the record has to know which is which.
This is a real EKOM catalog analysis, with the client's identity removed. The client is an online irrigation-supply retailer selling to contractors and homeowners, and carrying the manufacturers the trade specifies by name. EKOM read one complete product type of its public catalog — sprinklers — from the retailer's own structured product feed, and flagged 83 items. 64 are reported here as actionable catalog defects. Two were withdrawn as EKOM's own artifact: a "last updated" time that turned out to record when the feed was read, not when the catalog changed. The rest were held back at low confidence or because they could not be tied to specific products. None is in any count below.
What makes this category different is the unit of sale. The same part is sold one at a time to a homeowner replacing a broken head, and by the bag or the case to a contractor fitting out a zone. Each of those is its own item, with its own part number and its own price, and all of them live on one product page. And nobody chooses a sprinkler part by looking at it. They choose it by its numbers — pop-up height, inlet, arc, radius, operating pressure, and how many come in the box.
In most categories a wrong field costs a click. Here it costs a part that does not fit the pipe already in the ground — or a case of fifty the business cannot tell apart from a single unit.
Manufacturer names are not attached to individual defects here, because on a retailer's catalog a manufacturer, model and defect together can identify the retailer. The client's part numbers, prices, tag vocabulary and field values have been removed or generalized; ratios and counts are exact.
What's inside
- At a glance — the severity split, where the findings concentrate, and how the read was done.
- What a buyer runs into first — a unit and its case sharing one part number, and "was" prices on the wrong unit of sale.
- The receipts — filters that answer the wrong question, and specifications a contractor would act on.
- Filled in is not the same as right — why most of this never shows up on a fill-rate report.
- Where it traces back, and what's next — the six mechanisms most of these findings collapse into, and the order to fix in.
Nothing was supplied and no internal system was touched. Everything below was read from the retailer's public product feed.
64
Actionable findings
(83 flagged)
Where the 64 concentrate
Theme
What it is
Findings
Units and packs confused
Shared and missing part numbers; unit-scale "was" prices
10
Filter tags vs. variant
One height or inlet value across several
9
Labels, brand and vendor
Split filter values; a competitor's brand tag
14
Wrong products on the page
Wrong images; two products in one listing
11
Specifications
An impossible arc; a backwards pressure range
4
Stock and weight
In-stock tags on unavailable parts; zero weights
8
Tags, price and housekeeping
Untagged listings; an untaxed pair
8
How EKOM read this catalog
1
Read
The retailer's own public product feed — no file handoff, no credentials, no integration.
Archived byte for byte on the day, and the analyzed table checked field by field against it.
→
2
Profile
Infer what each field is for from how the catalog itself uses it, then hold every variant to that.
Every variant is its own item: its own part number, price and unit of sale.
→
3
Analyze
Surface defects, rate severity, and bind each one to the variants and values behind it.
64 findings, 12 themes, 6 causes.
Machine-surfaced signals from a cold read, not a verified defect list. Some will prove intentional, which is why each is tied to the values behind it.
What a buyer runs into first.
The lead finding is about the unit of sale. The catalog sells one part three ways, and in places the record does not keep them apart.
Critical · Single units and packs
A single spray body and its case of fifty carry the same part number.
The two are distinct items and correctly priced — the case is almost exactly fifty times the unit. Only the identifier is shared. Every other case of fifty on the same listing takes the catalog's own pack suffix; this one does not.
Variant
What the record holds
Verdict
The single body
the part number, sold as one each
correct
Its case of fifty
the same part number, no pack suffix
collides
Anything keyed on part number — inventory, purchasing, a supplier feed, a marketplace listing, a pick ticket — sees one item where there are two, fifty times apart.
Critical · Single units and packs
One bag of twenty-five nozzles is priced at about twenty-five times its family.
Its siblings — the same nozzle family, the same bag of 25 — all sell within a dollar or two of each other. The outlier sits almost exactly twenty-five times above them. That reads like the pack quantity applied to a price that already included it; the record does not say so, and the study does not assert it.
A third pack, a case of twenty-five, has no part number at all — so it cannot be ordered from a purchase order or reconciled in inventory. Its siblings imply what it should be, but the catalog uses two suffix styles for bags and cases, so which one it takes is the business's call rather than EKOM's.
A "was" price from a different unit of sale.
Eleven variants publish a compare-at price at or below the price being charged, so the struck-through "was" figure sits below the price in the cart. Nine of them are packs.
Pack
Pack type
Price ÷ "was"
A spray body
case of 50
35.4×
Three rotor variants
cases of 20
16–23×
One item
case of 25
14.2×
A swing joint
case of 10
11.9×
A rotor
case of 20
11.6×
Two rotary nozzles
bags of 10
6.1×
Every pack's part number carries its quantity in a suffix, and every one of these "was" prices sits on the scale of one unit, not of the pack. The comparison is between two different units of sale.
The selling prices sit on the pack's scale. It is the reference price beside them that was never scaled to the pack. So on the listings a contractor buys in volume, the storefront either suppresses the saving or shows the pack as marked up — and anything that reads compare-at pricing into a feed or a price-comparison surface inherits the same inversion.
The other two are single units — a pair of pipe rolls — whose "was" price sits below the selling price. The analysis flagged them as possibly a deliberate cost display, and the study does not assert them as errors. That is a question for the business, and it is reported as one.
Filters that answer the wrong question.
Navigation filters read tags, and tags sit on the product. The specifications they describe — pop-up height, side inlet — vary by variant. Where one product spans several and carries a single value, that value can be right for one of them at most.
Critical · Filter tags
A 2-inch, a 6-inch and a 12-inch spray body, all filed as 4-inch.
Across two spray-body listings, every variant carries a 4-inch pop-up height tag — the 2, 3, 6 and 12-inch bodies included. A contractor filtering for 2-inch bodies finds none of them; one filtering for 4-inch finds bodies that are not. The same frozen height sits on a rotor listing where only one model is actually 4-inch.
Critical · Filter tags
Side-inlet heads tagged as not side-inlet.
Twelve side-inlet variants across three listings carry the "no side inlet" value — four of them on a listing whose own option value says "Side Inlet". A side-inlet head is ordered to match pipe already in the ground; a buyer filtering for one is shown none of these.
The catalog already contains the fix. On one spray-body listing, the product carries a tag for every height and both inlet values it offers — so every variant can be found under the filter it belongs to. The store's own best practice exists; it is applied on one listing and not the next.
Also in this theme: two rotors whose own title or details say 5-inch, tagged 6-inch; rotors with a single height tag across Shrub, 6 and 12-inch models; two pipe sizes each tagged with both sizes; and a spray head tagged as a rotor. Nine findings in all, four critical.
Numbers a contractor would act on.
These are not filters. They are specifications printed on the product page — the values a buyer reads to size a zone or match a replacement — and each one is wrong or cut short.
Specification
What the page says
Severity
Spray arc, five nozzles
A "full" arc of more than 360 degrees — a figure no nozzle can have, which no arc filter or comparison tool can place
critical
Operating pressure, one spray-body line
A minimum higher than the maximum — a stray digit on the first figure, and the separator lost from the metric range. The manufacturer's own data sheet gives a normal range
critical
Specification list, one rotor line
Seven variants whose details stop at a pop-up height of "4" — no unit, and none of the bullets its complete sibling carries
critical
Description, one rotor
A last bullet that stops mid-phrase at the same character
high
Critical · Two products in one listing
A 1-inch swing joint sold under a 3/4-inch swing joint's name, description and size tag.
Two different catalog numbers with different connections share one listing, and its title, description, details and size tag all describe the smaller one. A buyer choosing the 1-inch variant reads that it has 3/4-inch inlet and outlet threads; a buyer filtering for 1-inch fittings never finds it. Four findings sit on that one listing. A fifth follows the same pattern elsewhere: two corner nozzles filed under the model for strip nozzles.
Both truncations stop immediately after a "4" — the exact point at which an inch mark would follow — and the pressure range lost its separator the same way. That suggests characters dropped somewhere between the source text and the storefront. It is inference, and the study says so: opening the source text for either one settles it.
Filled in is not the same as right.
One idea about the findings rather than more findings — because it explains why most of this would never appear on a fill-rate report.
Most of what this study found is not blank. The "was" price on the case of fifty is filled in. The height tag on the 12-inch body is filled in. The in-stock tag on the unavailable spray body is filled in. The pressure range is filled in. A completeness check — the instrument most catalogs are measured with — scores every one of those fields at a hundred percent, and every one of them gives the wrong answer.
Critical · Stock signals
Unavailable, and tagged in stock.
Spray bodies, rotary nozzles and at least two dozen other items are marked unavailable in the feed while carrying an in-stock tag. An in-stock filter surfaces every one of them, and the buyer finds out at the add-to-cart button. The opposite also appears once: an available nozzle tagged as archived.
Shipping weight, and what this study does not claim about it
Weight is the clearest case. Whole spray-body and nozzle lines carry a shipping weight of zero with shipping required. Where a weight is present it is often exactly one pound — and on one listing the single body and the case of fifty both carry that same pound. A zero and a flat pound are both filled in; neither looks like a measurement.
Nothing in the record says what reads that field, and this study does not supply the conclusion. If a weight-based carrier rate applies, a case of fifty and a single body are being quoted as the same parcel. Opening the shipping settings turns that from an inference into a number.
64 findings sounds like 64 problems. Most of them collapse into six upstream mechanisms — and a mechanism can be fixed once and stopped from recurring. Each tell below is a pattern in the data; the mechanism is EKOM's reading of it.
Pack variants that inherit from the single unit
The tell: on most packs the selling price is on the pack's scale, while the fields beside it drift — a "was" price on a unit's scale, a missing pack suffix, a missing part number. It produced the shared and missing part numbers and nine unit-scale "was" prices.
Variant specifications filed on the product
The tell: on the multi-variant listings the wrong tag is usually right for one variant and wrong for every other. It produced the frozen height, inlet and size tags.
Listings built by copying a sibling
The tell: the wrong value is a real value belonging to a neighbour — the 15-foot image on the 8-foot nozzle, the 3/4-inch copy on the 1-inch joint, the strip-nozzle model on the corner nozzles.
Characters lost between source and storefront
The tell: both truncated specifications stop after a "4", where an inch mark would follow, and a metric range lost its separator. Inference, settled by opening one source record.
A static tag doing the job of a live field
The tell: the in-stock and archived tags disagree with availability in both directions — the pattern of a tag set once rather than kept in step.
Defaults and import leftovers standing in for values
The tell: the same value regardless of what it describes — zero or one pound, a stray tag that reads like a column heading, an empty tag set.
Fixing nine "was" prices by hand fixes nine variants. Fixing how a pack variant takes its reference price fixes those nine and every pack added next — and in a catalog where so many parts are sold singly and by the pack, that is a large share of what gets added.
33%
In a survey of 750 professional buyers across manufacturers, wholesalers, distributors and retailers, a third reported order errors caused by inaccuracies on a supplier's web store, and three in four said they would switch suppliers for a smoother online experience. In this catalog the inaccuracies sit exactly where an order is formed: the part number, the unit of sale, and the specification a buyer filters on.
Sana Commerce B2B Buyer Report, published January 2025; fieldwork by Sapio Research, September 2024
An irrigation-supply catalog sells certainty as much as inventory. The contractor on the phone used to be answered by someone who knew which body fits which riser and how many come in a case. Online, the fields carry that alone — and these findings are what happens when a part sold three ways is recorded as if it were sold one way. Nobody decided that a case of fifty should share its single's part number. It was never anybody's job to check.
What this class of defect costs is not a sale — it is the wrong sale, and the trust that follows it. A contractor buying in volume sees a "was" price far below what they are paying. A homeowner filtering for a 2-inch body or a side-inlet head is told there are none, or shown the wrong one. And in this trade the wrong one is a return, a second trip to the zone, or a customer who buys the next job somewhere else.
A second clock runs underneath. Buyers comparing parts increasingly start with an assistant rather than a search box, and an assistant reads the fields before anything else: it matches a model, checks a pop-up height, confirms the pack size and the price. On this category it finds arcs that do not exist, heights that describe another variant, and packs priced against the wrong unit. Those are not rankings to trade off. They are wrong answers, and they do not correct themselves.
Three moves, in order. The first needs no new data at all — and one correction that looks mechanical deliberately waits.
This pass read and diagnosed. The same structural understanding powers what follows — turning a diagnosed catalog into one a buyer can specify from with confidence.
1 · Apply the corrections the record already answers for itself
Rebuild height and inlet tags from each listing's own variant options, on the convention one listing already follows. Correct the impossible arcs toward every other full-circle nozzle in the catalog. Normalize vendors, spellings and stray tags from the siblings and titles that already state the right value. Approved as patterns, not product by product.
2 · Settle the questions that gate the rest — starting with the pack suffix
Giving every pack its own part number looks like a mechanical fix, and it waits. The catalog uses two suffix styles for bags and cases, and a part number change touches purchasing. So does putting every "was" price on the pack's own scale. Which suffix is the convention, whether the pipe-roll prices are deliberate, what the in-stock tag is meant to track and how shipping is quoted all come from inside the business first.
3 · Hold the line at intake
Keep ongoing intelligence where manufacturer data meets the retailer's own records, so the next pack added on the wrong scale is caught as it lands rather than found later by a contractor ordering from it.
This is how EKOM moves a catalog from insight to impact —
and keeps every specification reading right as the business grows.