Resolution Layer Case Study  ·  Read & Diagnose

Tires & batteries.

A catalog read across the tire and battery lines of a national automotive service and tire retailer — where a shopper chooses by model and size, and the model name, the page address and the specification table are what every other system joins on.

Scope
Every record in the retailer's tire and battery product search index, plus its sitemaps and a set of live product pages
Lead finding
The same tire filed under two spellings, splitting its sizes across two entries
Issues surfaced
7 findings  ·  3 high severity  ·  4 verified live
Method
Deterministic census of the search record  ·  live page checks
Vertical
Automotive service and retail — tires and batteries
This pass
Read & diagnose — step one of the arc
Prepared by
EKOM
Type
Case study — client anonymized

What this is.

This is a real EKOM catalog analysis, with the client's identity removed. The client is a national automotive service and tire retailer that sells tires and batteries online alongside its service business. EKOM read every record in the product search index behind the retailer's own site search, the sitemaps that publish the catalog to search engines, and a set of live product pages. Seven findings are reported here.

This read is shaped by its source. The record behind site search holds little more than a name, a brand, a category, an image, a short description and a size count for each product. So nothing here was raised by a model pass: every finding was measured by counting records or reading pages, and four were confirmed on the live site. The count is low because the source is thin, not because the catalog is clean. Specification accuracy, description quality and attribute coverage could not be examined at all.

Nobody buys a tire by looking at it. They buy a model in a size — so when the model is filed under two names, the size they need can sit under the one they did not open.

Tire and battery brands, model names, page addresses and field values have been removed or generalized, because on a retailer's catalog a brand, a model and a defect together can identify the retailer. Ratios and counts are exact.

What's inside

At a glance.

Nothing was supplied and no internal system was touched. Everything below was read as an anonymous visitor, with no credentials, from what the retailer's site serves to every browser.

7
Findings
reported
3
High
severity
4
Verified
live
5
Upstream
mechanisms

Where the seven sit

Finding
What it is
Severity
Split model names
At least twenty-six tire models under two spellings
High
Duplicate addresses
Eight tires published at two page addresses
High
Battery specification tables
Placeholders and a copied value in the spec fields
High
Orphaned page
A tire page with no record behind it, still serving
Medium
Empty commerce fields
No price, stock or rating in the search record
Medium
Codes in a name field
Numeric category codes where a category name belongs
Medium
Lossy addresses
A "+" model told apart only by a trailing hyphen
Low

How EKOM read this catalog

1
Read
The retailer's own product search index, its sitemaps and its live product pages — no file handoff, no credentials, no integration.
Every record in the index, with the per-brand counts summing exactly to the index's own total.
→
2
Measure
Count the conventions the catalog sets for itself — how a model is named, how an address is formed, what a field holds — and every break from them.
The index keeps one record per size and the sitemap one page per model, so names were compared at the model level.
→
3
Verify
Open the pages behind the findings in an ordinary browser and record what they serve.
Four findings confirmed live, two days after the index was read.
Counted, not inferred — and not merchant-verified. Severity ratings are EKOM's. Some of what is reported may prove intentional, which is why each finding is tied to what the record or the page actually shows.

The same tire, filed twice.

The search index stores one record per tire size and groups the sizes under a model name. At least twenty-six models are grouped under two spellings of that name, which splits each model's sizes across two entries. The count is conservative: a name that differs by a meaningful "+" was treated as a different tire, never as a duplicate.

High  ·  Split model names
A shopper who opens the smaller entry sees a fraction of the sizes the retailer carries.
On one high-performance model, about one size in eighteen sits under the second spelling. A shopper who reaches that entry sees a short list and may conclude their size is unavailable, while the rest of the range sits under the first spelling.
Kind of break
What differs between the two names
Seen on
Punctuation
A hyphen or a slash present in one spelling, absent in the other
performance and light-truck tires
Casing
The same word capitalized two ways
performance and all-season tires
Spacing
A stray double space inside the name
performance tires
High  ·  Duplicate addresses  ·  Verified live
Eight tires are published at two addresses, and every one EKOM opened declares itself the original.
Tire pages are addressed by a slug built from the model name, so the naming split reaches the sitemap: eight tires appear at two addresses each, every pair checked against the index and kept only where the index holds a single product for it. EKOM opened four of the pairs. All eight addresses returned a live page, and each page's canonical tag pointed at itself — so neither tells a search engine which one to keep, and whatever the product earns in search can be split between two addresses. One more group carries three addresses for two products.

The two findings are one defect seen twice. Where a name is typed rather than governed, every copy of it — the entry in site search, the slug, the page title — inherits the variation.

What a battery page says about itself.

The search record carries no specifications, so EKOM opened battery product pages directly. Ten pages from one battery brand were read — AGM, flooded, EFB and marine. Every one publishes the same specification table, with the same placeholder values in the same fields.

High  ·  Specification placeholders  ·  Verified live
The cranking-amps field holds a terminal type, and voltage reads "not available" on batteries whose page address says 12V.
Field
What all ten pages hold
Verdict
Cold cranking amps
A real figure, different on each battery
correct
Cranking amps
The same terminal-style value the terminal-type field holds
copied
Voltage
"n/a", including where the address states 12V
placeholder
Length, width, height, weight, reserve capacity
"n/a"
placeholder
Wet or dry
The same value on every battery type
does not distinguish
The one field that varies is the one that is right. The rest read as a template or a single upstream default filling the table rather than the product — which is why the same values are likely on pages EKOM did not open, and why one correction at that point would likely reach all of them.
Medium  ·  Orphaned page  ·  Verified live
A tire page with no record behind it still serves, with a placeholder where the model name belongs.
When the index was read, one tire page was listed in the sitemap with no record in site search — reachable by a search engine, not findable through the site's own search. Two days later it had left the sitemap, which is the right direction. The address still serves a page, marked noindex, whose title and social-sharing title print a JavaScript placeholder in place of the model name. Anyone following an old link lands on it; a redirect closes it.

Behind the search box.

The first two findings below sit in the record itself — the layer behind the page, and the one any other system would read first. The third is in how page addresses are formed.

Field in the search record
Empty on
Reading
Price
100%
supplied at page render
Promotional price
100%
supplied at page render
Stock status
100%
not in the record
Rating
100%
not in the record
Image
0%
complete
Short description
0%
complete

Medium · Empty commerce fields. Shoppers do see prices: the storefront supplies them when the page renders. The gap is in what the record can tell anything else that reads it. Whether anything does cannot be seen from outside — if nothing does, this is a note rather than a defect; if a feed, a merchandising rule or a shared platform draws on it, that system is reading a catalog with no prices and nothing in stock. The study reports it as a question, not a conclusion.

Medium · Codes in a name field. Purely numeric category codes sit in the human-readable category field, concentrated in one battery brand, with a handful across a few tire lines.

Low · Lossy addresses · Verified live. Five "+" models are told apart from their predecessors only by a trailing hyphen in the address — the slug turns the "+" into a hyphen at the end. Both pages of the pair EKOM opened are live and are different tires. Fragile rather than broken: a trailing hyphen is easy to lose when a link is copied, trimmed or cleaned up.

What is strong here is strong. Counted in the same unit — models, not sizes — the sitemap publishes at least as many products as the index holds, all but one sitemap tire model has a search record, and every battery in the parts sitemap matches the index on product ID. The catalog is fully exposed. It is the record, not the reach, that needs work.

Where it traces back.

Seven findings collapse into five 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.

Model names typed rather than governed
The tell: the two spellings of a model differ only by a hyphen, a capital or a space — the variation of hand entry, not of two products. It produced the split model names.
Addresses generated from names
The tell: the duplicate addresses track the naming variants exactly, and the slug scheme turns a "+" into a trailing hyphen. It produced the duplicate and lossy addresses.
A specification template filling fields the product never supplied
The tell: the same placeholder values in the same fields across four battery types, while the one product-specific figure varies correctly.
Internal values leaking into display fields
The tell: numeric codes in a field meant for words, and a placeholder printed where a model name belongs when the record behind it is missing.
Two layers, one catalog
The tell: the search record carries no commerce fields while the page shows prices. Whatever reads the record and not the page sees a different catalog. Inference, settled by knowing what reads the record.
Merging the split models by hand fixes those models. Governing how a model name is entered fixes them and every model added next — and every address, title and search entry built from it.

What this means.

A tire retailer's catalog is a fitment promise. A shopper arrives knowing a model and a size, or a battery group size, and the record is what answers whether this business can put it on their car. Online, the model name, the page address and the specification table carry that answer alone — and these findings are what happens when the same model is entered two ways, and a specification table is filled by default rather than by the product.
The costs are concrete. A shopper looking for a size the retailer carries can be shown an entry that does not list it. A search engine is offered two pages for one tire and, in every pair EKOM opened, told by each that it is the original. A battery whose address says 12V publishes its voltage as not available, and its cranking-amps field names a terminal type — on the table a shopper reads to decide which battery fits.
A second clock runs underneath. As catalogs are shared across banners, feeds and platforms, the fields that let two records be recognized as the same product stop being presentation and become the keys everything joins on. A model spelled two ways does not join; it duplicates. A specification made of placeholders gives a shared system nothing to check against. Those are not rankings to trade off. They are wrong answers, and they do not correct themselves.

What's next.

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 shopper, a search engine and a shared platform can all read the same way.

1  ·  Apply the corrections the record already answers for itself
Collapse the stray double spaces that split a model in two. Replace numeric codes where they map to a named category elsewhere in the catalog. Fill voltage where the page address already states it. Approved as patterns, not product by product.
2  ·  Settle the questions that gate the rest — starting with the house spelling
Merging every split model looks mechanical, and it waits: casing and punctuation need a house rule, and the surviving spelling decides which of each duplicate address survives. Where the battery specifications are meant to come from, what the wet-or-dry field should convey, and whether anything reads the search record all come from inside the business first.
3  ·  Hold the line at intake
Keep ongoing intelligence where new models and supplier data enter the catalog, so the next model typed a second way is caught as it lands rather than found later by a shopper who could not find their size.
This is how EKOM moves a catalog from insight to impact —
and keeps every model, address and specification reading right as the business grows.
EKOM
The Resolution Layer
ekom.ai
Case Study  —  Client anonymized  ·  The Resolution Layer
EKOM