Resolution Layer Case Study · Read & Diagnose
Mineral supplements.
A catalog read across the mineral category of an online vitamin and supplement retailer — magnesium, calcium, zinc, iron and the rest, where every product carries a label panel that says exactly what it is, and a second copy of the product, written for machines, is supposed to say the same thing.
This is a real EKOM catalog analysis, with the client's identity removed. The client is an online vitamin and supplement retailer carrying its own brand alongside many others. EKOM read every product page in the retailer's mineral category — magnesium, calcium, zinc, iron, selenium, chromium and their blends — from the public storefront, and flagged eleven findings. Eight are reported here as actionable catalog defects. Three were withdrawn: two described EKOM's own reading of the page rather than the catalog, and one was simply wrong. None is in any count below, and page eight says what happened to each.
What makes this category different is that every product already carries the truth about itself. A supplement page renders a facts panel — the serving, each ingredient's amount, the warnings — and that panel is the field the rest of the record can be tested against. Beneath the page a person reads sits a second copy of the product, written for Google, for shopping listings and for AI assistants: a price, a category, a product type. The two copies are supposed to agree. On these products, in a few repeatable ways, they do not.
The shopper reads the panel. The machine reads the record. When they disagree, the shopper and the machine are told two different things about the same bottle.
Product names, brands, prices and field values are described rather than quoted here, because on a multi-brand retailer a product, a price and a defect together can identify the retailer. Counts are exact, and every one of them is the analyst's recount from the archived pages, not the automated pass's first estimate.
What's inside
- At a glance — the severity split, where the eight concentrate, and how the read was done.
- What a machine is told — a structured-data price that is the pre-sale price, and supplements filed as hair color and cleaning supplies.
- The page a shopper reads — the one iron product whose page omits the statement every other iron product carries.
- Filled in is not the same as right — why none of this appears on a completeness report.
- Confirming against source — the three findings that did not survive, and the counts that moved.
- Where it traces back, and what's next — the four mechanisms most of these findings collapse into, and the order to correct in.
Nothing was supplied and no internal system was touched. Everything below was read from the retailer's public product pages, and the headline products were re-read live six days after the first read.
8
Actionable findings
(11 flagged)
Where the eight concentrate
Theme
What it is
Findings
Machine-facing price
The structured-data offer carries the "was" price, not the selling price
1
Machine-facing category
Supplements filed under other categories, or under none
3
Label statement absent
One iron page without the statement its siblings carry
1
Storefront copy
A broken closing tag rendered as text
1
Supplement type
Two products missing the type that qualifies them for supplement results
1
Option label
A blank option label on single-size products — real, not material
1
How EKOM read this catalog
1
Read
Every product page in the category, fetched the way a search engine or an assistant fetches it — no file handoff, no credentials, no integration.
Each page read in full, label panel and structured data included.
→
2
Profile
Join five statements of what each product is — the product record, the site-search record, the label panel, the page's own product data and the machine-facing structured data — and hold them against each other.
The label panel is the most reliable field on the page. Most findings test the rest against it.
→
3
Analyze
Surface the disagreements, rate severity, bind each to the products behind it — then recount every magnitude from the archived pages.
8 findings, 6 themes, 4 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. No health or labeling characterization. Where two fields on one product disagree, this analysis says so as a factual inconsistency; whether any inconsistency carries labeling consequences is a question for the retailer and its counsel, and this document does not answer it.
The price a machine is told.
The lead finding is about price — the field a shopping listing is built on, and the one a shopper compares before anything else. On this storefront the page and the record disagree about it exactly when a product is on sale.
Critical · Machine-facing price
On twelve of the thirteen discounted products, the structured data carries the "was" price, not the price the page charges.
Every product with a "was" price was checked three ways: the product record, the price the page renders, and the offer price in the structured data that Google Shopping and search read. On ten of the eleven products on sale, the structured data advertised the pre-sale figure — roughly double what the page charged, and up to two and a half times it. One product published its real selling price. Where a search engine or a shopping listing reads the structured data, the sale is invisible, and a price that disagrees with the landing page is the kind of mismatch Google's own shopping guidance says can get a product disapproved.
Field
What the record holds, on a typical sale item
Verdict
Page price
the sale price
correct
Page "was" price
the pre-sale price
correct
Structured-data offer
the pre-sale price
disagrees
Critical · The same rule, inverted
Two products carry a "was" price lower than the price — and on one of them, a subscription that costs more than buying once.
The automated pass first read these two as swapped prices. The rule above explains them: their structured data again carries the "was" figure, only here the "was" sits below the price. On the live re-read, one of them offered its subscription — labeled as the saving — above its one-time purchase price. Which of the two figures is intended is the retailer's call, and the analysis holds it as a question rather than correcting it.
It is one behavior, not twelve defects: wherever a product has a second price, the machine-facing copy takes the wrong one. Where a product has no "was" price at all, the structured-data price matches the record exactly — which is what makes this a rule to correct once rather than a list of prices to chase.
Magnesium, filed under cleaning supplies.
Each product page declares a category in its structured data — the one Google Shopping and search read to decide what a product is. On most of the category it reads as a vitamin or a mineral. On fifty-two products it reads as something else, or as nothing — twenty-three wrongly, fifteen blank, fourteen debatably.
Critical · Machine-facing category
Twenty-three mineral supplements tell Google they are something else.
Eight magnesium, silver, iodine and potassium products declare a cleaning-supplies category. Seven magnesium and zinc products declare amino acids. Chromium and selenium tablets declare bath additives; strontium and zinc declare collagen; a colloidal silver declares hair color — and did again on the live re-read. The values read like a mapping from another system's taxonomy, applied without a check against the label panel. Every one of these products sits in the retailer's own minerals category.
High · Machine-facing category
Fifteen more declare no category at all — and every one was created since spring of this year.
Three flavors of one magnesium drink mix, a zinc, an iron, two magnesium powders, a set of stick packs and others. The date is the tell: the products added this year are not getting a category, which makes this a gap in how new products are published rather than fifteen separate mistakes. A further fourteen are debatable rather than wrong — a digestive-supplements value on calcium and magnesium powders, a herbal value on colloidal silver, a drugs value on an antacid-style calcium that carries a supplement panel. Defensible individually; inconsistent as a set, and reported as a question for the retailer rather than corrected.
One observation sits outside the count, because it belongs to the whole store rather than to this category: the record's standard category field is empty on every product the store sells. Categorization lives only in category pages and site search, so anything reading that field — a shopping listing, an app, a marketplace integration — sees an uncategorized store.
The page a shopper reads.
Two findings sit on the copy a person reads rather than in the machine's copy. One of them is the finding in this study that matters most.
Critical · Label statement absent
The highest-dose iron product in the category is the one dedicated iron supplement whose page omits the accidental-overdose statement its siblings carry.
Of the mineral products whose facts panel lists iron, all but four display the same standard statement about accidental overdose in young children. Three of the four are liquids and blends with far less iron per serving. The fourth delivers more than three and a half times the daily value per serving — the most iron of any product in the category — and its page carries an iron warning line about something else entirely: interaction with certain antibiotics. On the live re-read the word "overdose" did not appear anywhere on its page.
Product
What the page's warning holds
Verdict
A sibling iron tablet
the standard accidental-overdose statement
present
The highest-dose iron
an antibiotics interaction caution
absent
This is what the web page shows. The printed bottle label was not examined and may well carry the statement — which is exactly why the finding is held for the retailer rather than corrected. What the read establishes is the pattern: one page out of step with the rest, on the product where the statement would matter most.
The same page carries the study's smallest defect: its description ends with a broken closing tag, so the last sentence a shopper reads is followed by two stray characters of markup. A trivial correction — and it sits on the one iron page that already needs a look.
Filled in is not the same as right.
One idea about the findings rather than more findings — because it explains why almost none of this would appear on a fill-rate report.
Nearly everything this study found is filled in. The structured-data price is populated — with the wrong figure. The structured-data category is populated — with hair color. The iron page has a warning line — about antibiotics. A completeness check scores every one of those fields at a hundred percent, and every one of them gives the wrong answer. The fifteen missing categories are the one critical-or-high defect a fill-rate report would catch — and they are the least consequential of the three category findings.
What is strong · stated before the accounting
The catalog contains its own answer key.
Every product in the category renders a label panel, and the right kind — a supplement panel on the supplements, a product-facts or drug-facts panel on the handful that are not. The machine-facing record is real structure: a category, a price, availability and an identifier on nearly every page, with all but two carrying the identifier. And where a product has no second price, its structured-data price is exact. Nearly every finding here was made by comparing a product to a sibling that gets it right, which is what makes each correction a convention the retailer already follows rather than a new rule to approve.
The defects are wrong values in fields that exist, not fields that are missing. A correction has somewhere to land, and it reaches Google through a channel that already works.
Confirming against source.
Eleven findings were raised and eight are reported. Every one of the other three is accounted for here — and so is every figure that moved between the automated pass and the analyst's recount.
Withdrawn — the reading, not the catalog · two findings
One said a rating value was empty on a run of products. Those products have no reviews and therefore no rating block; the empty value was written by EKOM's own reading of the page, not by the retailer. One said an iron product's overdose statement sat in the wrong field; the field in question is a column EKOM derives from the label, and the product carries the statement in full.
Withdrawn — wrong · one finding
One said a magnesium product's days-of-supply figure used a serving size not on the label. The page's range matches the label's directions for the higher serving. The analysis was wrong; the page is right.
Recounted · five figures
The automated pass's first counts did not match the archived pages, and the analyst recounted each: twelve blank categories became fifteen; one swapped price became a rule touching twelve of thirteen discounted products; the wrong categories were redrawn to twenty-three, with the debatable ones set apart; one product missing the supplement type became two; two blank option labels became five. The recounts are the figures used throughout.
Kept at its true weight · one finding
The blank option labels are real and in the data, and the automated pass rated them as breaking a selector shoppers use. The recount found that none of the five products shows a selector at all, so the shopper-facing claim was removed and the finding kept — real, not material.
Withdrawing three findings is what a cold read is for. A report that had shipped them would have told a retailer its ratings were broken and its iron labeling incomplete when neither was true — and every other finding in it would have been doubted.
Eight findings sounds like eight problems. Most of them collapse into four upstream 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.
The machine-facing offer bound to the wrong price field
The tell: in twelve of thirteen cases the structured-data offer equals the "was" figure, whichever direction the "was" points — and on every product without one, it equals the selling price exactly.
A category mapped from another system's taxonomy
The tell: the wrong values are not random — they are real category names from a different vocabulary, assigned to products whose own label panel contradicts them, while the catalog's dominant value is used correctly on the rest.
A publish path for new products that skips the category
The tell: every blank category sits on a product created in the same recent window; older products are never blank.
Label statements that live in free text
The tell: the overdose statement appears on the iron pages inside free-text warnings copy, so one page can carry a different caution in the same place and nothing in the record itself distinguishes the two. The read found it by comparing siblings.
Correcting twenty-three categories corrects twenty-three products. Deriving the machine-facing category from the label panel corrects those, fills the fifteen blanks, and holds for every product published after them.
Google's Merchant Center guidance is plain about the lead finding: it "uses structured data markup to understand prices on your product landing pages," and where that price disagrees with the product data, "the product with the mismatch may be disapproved." On this storefront the structured data carries the "was" price on twelve of thirteen discounted products.
A supplement retailer sells trust as much as inventory. The shopper comparing two magnesium glycinates reads the panel, the dose, the price and the warnings, and assumes the page is telling one story. Online, the fields carry that alone — and these findings are what happens when the copy written for machines drifts from the page a person reads, with nothing holding the two together.
What this class of defect costs is not a missed click. A sale the structured data does not carry is a sale no shopping listing can show, and a price that disagrees with the landing page is the mismatch that gets a product pulled. A magnesium supplement filed as a cleaning supply is absent from the search it belongs in. A product added this year with no category is one Google is not told how to place. And one iron page, on the product with the most iron in it, says something different from nearly every iron page beside it.
A second clock runs underneath. Some shoppers now start a comparison by asking an assistant, and an assistant reads the record, not the page: it takes the price, checks the category, looks for the warnings. On these products it can find a "was" price presented as the price, a colloidal silver filed under hair color and a subscription that costs more than buying once. 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 the one correction that looks most urgent deliberately waits.
This pass read and diagnosed. The same structural understanding powers what follows — turning a diagnosed catalog into one that tells a shopper, a search engine and an assistant the same thing about every bottle.
1 · Apply the corrections the record already answers for itself
Derive the machine-facing category from the label panel — the value the rest of the category already uses — correcting the twenty-three wrong ones and filling the fifteen blanks in one pass, and run the same rule on every product published from now on. Give the two supplements missing their type the type their siblings carry. Close the broken tag. Fill the five blank option labels from the size the record already holds. Approved as patterns, not product by product.
2 · Settle the questions that gate the rest — starting with the iron page
Making the structured-data offer the selling price is one rule the retailer confirms once; the two inverted price pairs wait on which figure is intended. The iron statement waits on what the printed label says, because only the label can supply the text the page should carry. The fourteen debatable categories wait on one ruling per value. Each is a judgment the data can show but cannot make.
3 · Hold the line at publish
Keep ongoing intelligence where the label panel meets the machine-facing record, so the next product published without a category, or the next sale whose structured data carries the wrong price, is caught the day it goes live rather than found later by Google.
This is how EKOM moves a catalog from insight to impact —
and keeps the machine's copy of every product agreeing with the page as the business grows.