Catalog Analysis  ·  Vertical Overview

A Canadian open-box
appliance retailer.

A full read of a live storefront — every open-box, scratch-and-dent, and refurbished
listing across the catalog. One link in, zero manual setup, this is what came back.

Dataset
754 variants × 418 attributes
Vertical
Home Appliances — Open-Box & Graded Resale
Coverage
205 products · 12+ categories · 30+ brands
Findings
65 analytical · 20 critical
Prepared by
EKOM
Prepared for
A Canadian Open-Box Appliance Retailer

Before the findings.

The retailer sells open-box, scratch-and-dent, and refurbished appliances across Canada — fridges, ranges, dryers, dishwashers, washers, televisions, and more, at meaningful savings off new. The entire proposition rests on one promise a shopper has to take on faith before they ever touch the product: that the condition grade on the listing is the condition of the appliance that shows up. There's no showroom floor to walk. The grade is the transaction.

That means the handful of fields behind every listing — condition, price, weight, the product itself — aren't back-office data. They're the whole of what a shopper is trusting when they click buy on something they can't inspect first. Get the grade wrong and a customer opens a box expecting "like new" and finds a scratch-and-dent unit. Get the shipping weight wrong and a $500 range quotes as a $0 freight charge, or fails at checkout entirely. Those aren't edge cases on a resale storefront — they're the product.

42% of shoppers say they want to see a grading report before buying a refurbished item — and in the same survey, 96% associated the "Good" condition tier with heavy visible wear, a grade meant to signal the opposite. CCS Insight for Alchemy, "Unlocking Growth in the Refurbished Electronics Market," June 2026

EKOM ran this retailer's live public storefront through our analysis pipeline exactly as we would a new account's catalog: one link, no hand-built schema, no one telling the system it was looking at appliances or what "condition" was supposed to mean. What came back was concentrated in exactly the place a graded-resale business can least afford it — the condition field itself, wrong in five distinct ways — alongside a pricing pattern, a set of listings pointing at the wrong product, and a shipping-data gap that turns real freight costs into failed checkouts. None of it required access to the retailer's own systems to find.

Four things this pass
had to get right.

This retailer runs on Shopify. No one briefed the system on what kind of store this was, how to model graded resale inventory, or what to look for — it had to work all of that out on its own before a single finding could be trusted.

01
Zero-setup ingestion
✓ Pass
The storefront is public — the same product feed and pages any shopper can load. No engineering, no data handoff, no access to the retailer's backend.
205 of 205 product pages read successfully. Both the storefront's own product feed and a page-by-page pass for the fuller spec sheets each listing carries.
A feed alone gets you a short marketing description. The product page gets you up to 23 structured specs per item — the difference between a shallow read and a real one.
02
Understanding the business, unprompted
✓ Pass
The system is handed a generic catalog by default. It has to recognize what it's actually looking at before analysis can be meaningful.
Correctly re-classified the catalog from a generic default to home_appliances and identified "product" as the right unit of analysis — without being told.
Get the vertical wrong and every downstream check is measuring the wrong thing.
03
Reading at the right grain
✓ Pass
A resale catalog isn't 205 products — it's 754 individually graded physical units, each with its own condition, price, and availability.
Modeled the catalog one row per variant (754), not per product (205) — deliberately, because collapsing graded units together erases the exact signal a shopper is paying to know.
Two units of the same model, one "Open Box - Good" and one "Mixed Grade," are different products to a buyer even though they share a listing.
04
Catching what no schema tells you
✓ Pass
Some of the strongest catches in this pass came from comparing the catalog against itself — no external spec sheet, no manufacturer database.
An Electrolux front-load dryer's stated width, depth, and height were flagged as outliers against every peer Electrolux front-load dryer already in the same catalog.
The catalog already contained the answer. It just hadn't been checked against itself before.

At a glance

65
Analytical
findings
20
Critical
(31%)
754
Variants
analyzed
82%
Critical + High
share
Scope note. This pass analyzed the 418 catalog fields with enough populated data across variants to say something meaningful about — out of 1,132 raw columns the storefront carries. Fields that appear on only one or two products are a long tail not yet examined. Every count here is a snapshot from a single point-in-time pass.

Beyond the checklist.

No one flagged this one in advance — it surfaced because the pipeline checks a listing's own fields against each other, not just against a rulebook. It's also the closest thing to a controlled check in this run: an analyst spotted it by hand while spot-checking the scrape, before the automated pass ran. The pipeline caught it independently.

Bonus Finding  ·  Content Integrity  ·  Caught Twice, Independently
A television served at a URL naming an entirely different product.
The product's own listing page is a 75" Samsung Crystal UHD television. The URL it lives at — the handle a shopper might share, bookmark, or find through search — identifies it as a 65" LG OLED G4. Three fields disagree with the URL at once.
How it was caught
Field
Value
Status
Brand (from URL)
LG
✗ Disagrees
Screen size (from URL)
65"
✗ Disagrees
Panel type (from URL)
OLED (G4)
✗ Disagrees
Actual listing
Samsung 75" Crystal UHD
✓ Ground truth
Not an isolated slip: a separate listing was found under a handle referencing an entirely different model. Elsewhere in the catalog, one product handle even carried a competing marketplace's brand name as a suffix. On a storefront, the URL is often the first thing a shopper — or a search engine — sees. When it names the wrong product, that's a trust and findability problem before a shopper ever loads the page.

How EKOM read this catalog.

Three passes ran before any finding was generated. Each builds on the last — no step was told what the one before it found.

1
Reading the Storefront
Walked the storefront's own product feed, then fetched every individual product page for the fuller spec table the feed doesn't carry.
205 of 205 pages read successfully. Zero failures. The storefront changed mid-read — a live reminder this is a snapshot, not a static file.
2
Understanding the Business
Classified the vertical and the right unit of analysis, then modeled the catalog at the grain that actually matters for graded resale.
Vertical auto-corrected to home appliances. Grain set to one row per variant (754) rather than per product (205) — each physical unit carries its own grade.
3
Cross-Record Validation
Checked every record's fields against each other, against sibling variants of the same product, and against the categories they claim to belong to.
65 analytical findings, each tied to specific products — plus 434 lower-confidence structural observations held back as not client-ready on their own.

What’s actionable now.

Two corrections below are pattern-based and high-confidence — ready to apply once the retailer confirms the pattern. Two more require a business or data-sourcing decision only the retailer can make.

condition'UsedCondition'
Critical7 variants · 3 products
Seven Open Box and Mixed Grade variants across three dryer models carry condition = NewCondition, contradicting the grade a shopper actually sees on the listing. Every other Mixed Grade variant in the catalog is correctly labeled — this is the exception, not a new convention.
ELFE763CAT · ELFG7637AT · ELFE433CAW
Appliance Typecanonical set
Medium7 strings, 1 field
The category field uses seven different strings to describe categories that are functionally the same, splitting what should be one shopper-facing filter bucket into several. A canonical mapping resolves it in one pass, catalog-wide.

Catalog-wide flags — require a decision

FindingSeverity
Most Used and Mixed Grade items carry a compare_at_price exactly $1.00 above the selling price — the mechanical pattern is unambiguous, though the finding's characterization of it as a possible compliance issue is the model's own read, not EKOM's legal assessment. Worth a look before it reaches a shopper's cart as a "was/now" badge.Critical
One product page carries 139 serialized inventory units modeled as Shopify variants — a structural choice that is the likely root cause behind several of the duplicate, pricing, and image findings elsewhere in this report.High
Four variants show a bare 8-digit inventory number where the condition grade should be — the actual grade isn't in the data we can see and needs to be sourced from the retailer's own records.Critical

Column-level flags — normalization strategy needed

Energy CertificationHigh
Four different spellings of the same certification status. Every variant splits a filter bucket a shopper would otherwise use to narrow results.
CapacityHigh
Dryer capacity recorded in five different formats. Needs one normalized numeric convention before it's usable as a filter or a comparison point.
Noise LevelHigh
Mixes "dB" and "dBA" — related but not interchangeable units. Needs a single unit convention applied consistently.

Findings ledger.

A representative cut of the 65 analytical findings, grouped by root cause. Where the fix is mechanical, EKOM can propose and apply it directly once connected to the retailer's catalog. Where it depends on the retailer's own records or a business call, it's routed accordingly.

FindingSev.Resolution
Condition & Grade Integrity — the field the business rests on
Open Box / Mixed Grade variants labeled NewCondition (7 variants, 3 dryer models)CriticalEKOM proposes
condition blank on all variants of some products despite the grade sitting in the shopper-visible option fieldCriticalEKOM proposes
Bare 8-digit inventory numbers appear as variant titles and condition labels in place of the actual grade (4 variants)CriticalNeeds retailer's source data
Pricing & Trust
Used / Mixed Grade items priced with compare_at_price exactly $1.00 above the selling priceCriticalRetailer decision
52% price anomaly on one of 139 variants of the same product ($241.99 vs. $498.99)CriticalNeeds verification
Fulfillment & Shipping
Zero shipping weight (grams = 0) on shippable fridges, dryers, and a ~2,630g cordless vacuum — produces $0 or failed freight quotes at checkoutCriticalNeeds retailer's source data
Listing Accuracy
A 75" TV served at a handle identifying it as a different brand, size, and panel technologyCriticalRetailer decision
A range carries the full structured attribute set of a washing machine — will file under laundry in faceted searchCriticalEKOM proposes
A separate listing found under a handle referencing a different modelHighRetailer decision
One product handle carries a competing marketplace's brand name as a suffixHighRetailer decision
Discovery & Facet Integrity — every one splits a filter bucket
Energy Certification has four spellings of the same statusHighEKOM proposes
Dryer Capacity recorded in five different formatsHighEKOM proposes
Noise Level mixes "dB" and "dBA" unitsHighEKOM proposes
Appliance Type uses seven strings for categories that are functionally the sameMediumEKOM proposes
Structural
139 serialized inventory units modeled as Shopify variants on a single product page — none meaningfully distinct to a shopperHighRetailer decision
Duplicates
Same TV model listed twice under US and Canadian model numbersHighEKOM proposes
Ghost unavailable variants sharing a SKU with their active replacementsHighEKOM proposes
Spec Accuracy
Title states 12 cu. ft.; manufacturer spec states 11.6 cu. ft.CriticalNeeds manufacturer source
Coil-element range lists "Stainless Steel" as its cooktop surface materialCriticalEKOM proposes
Stick vacuum carries a 30" width — a large-appliance template default never overwrittenCriticalEKOM proposes
Note. This is a representative cut of the 65 analytical findings, ordered by shopper and data-integrity impact. The full machine-readable list, with the remaining formatting and completeness items, accompanies this report.
EKOM proposes. High-confidence, pattern-based corrections EKOM's pipeline can apply directly once connected to the retailer's catalog — the pattern gets confirmed once, not SKU by SKU.
Retailer decision / needs source data. Items requiring a business call, a policy decision, or ground truth only the retailer has. Once confirmed, EKOM applies the resolution.

Catalog profile.

Twenty findings touch fields that were emitted as populated — not blank, not missing from any completeness report the retailer might already run. They're wrong, or empty in substance while technically filled. That's a harder class of problem to catch than a blank cell, and it's most of what this pass found.

Populated isn’t the same as trustworthy

conditionCritical · 9 finding records
Never blank on the affected variants — populated with NewCondition on items that are visibly graded Open Box or Mixed Grade elsewhere on the same listing. A completeness check would show this field at 100%. It would be wrong to do so.
compare_at_priceCritical
Populated with a real-looking number on most Used and Mixed Grade items — exactly $1.00 above the actual selling price, producing a strikethrough "was/now" badge with no real markdown behind it.
gramsCritical · 7 finding records
Populated as a literal 0 on fridges, dryers, and a vacuum that weighs roughly 2,630g in reality. Not a blank field — a wrong value that reads as complete to any system checking only for presence.
Variant title / condition label
Populated with a bare 8-digit warehouse inventory number on four variants, in the exact spot where the shopper-facing condition grade belongs.
Note on scope. This pass narrowed to the 418 fields with enough populated signal across the catalog's 754 variants to analyze meaningfully — of 1,132 raw columns the storefront's full page structure carries. Attributes appearing on only one or two products weren't examined; that long tail is unaddressed by this pass, not ruled clean by it.

What this means for the vertical.

growth by 2030 34%
The U.S. re-commerce market is projected to grow 34% by 2030 to $306.5 billion — 8% of total retail spend, with 93% of Americans having bought secondhand in the past year. Open-box and graded resale isn't a niche; it's a category becoming a default way people shop.
OfferUp, 2025 Recommerce Report, September 2025
For most retailers, product data is an operations problem — get it wrong and search or filtering suffers. For a graded-resale business, it's closer to the whole offer. A shopper choosing open-box over new is making a bet that "Open Box - Good" means what it says, that the price shown is the real price, and that what ships is what was pictured. Every finding in this analysis sits somewhere on that promise.
The pattern in what surfaced here is instructive for the vertical as a whole: nothing in this catalog points to disarray. It points to a well-run storefront where the handful of highest-consequence fields — condition, price, weight, identity — carry small, specific, correctable defects that a standard completeness check would never catch, because every one of them is "populated." That's the harder class of problem to find, and the one worth finding first in any open-box or graded-resale catalog.
A pass like this is diagnosis — reading a catalog and naming what's there, accurately, at no cost of the retailer's team time or system access. The natural next phase for any business in this category is enrichment: completing the category-specific attributes that are typically thin, structuring the catalog so it's ready for wherever shoppers search next — marketplaces, comparison engines, AI-driven shopping assistants — and holding that line automatically as new inventory comes in, rather than re-auditing it after the fact.
Request a catalog analysis. We're ready to run the data and show you what we find.
Jonah Santo
EKOM
Confidential  —  Case Study
EKOM