We Checked 857 Offers Across 43 Categories. None Carried a Complete Comparison Total.

A census of what retailer offers actually state — item price, mandatory shipping, seller identity, variant match — across 43 shopping categories, with the method and the query, so anyone can repeat it.

What this is, and what it is not

On 2026-09-03 03:41Z we ran one search for each of our 43 shopping categories and recorded what the returned offers stated. Not what they cost, and not which was better — only which facts were present. That came to 857 offers. Every count below is over those rows, and the method is printed at the end so the work can be repeated or contradicted.

This is a census of what our own engine could see on one morning, through the retailer feeds and search sources it is connected to. It is not a survey of American online shopping, and it is not a judgement about any retailer. A shop whose offers reached us without a stated shipping cost may publish that cost perfectly clearly at its own checkout; the point is that it did not travel with the offer.

We earn affiliate commission when a visitor buys through a link on this site, which is disclosed on every page. That relationship does not change the arithmetic, but you should know it exists while reading a study published by the party it flatters.

What we found

Item price is universal: 857 of 857 offers stated one. That is the number a comparison site can show you, and it is the number almost everyone does show you.

Mandatory shipping was stated on 677 of 857. The remaining 180 said nothing about it either way — not that it was free, simply that the figure was absent.

Seller identity narrowed things further. 374 of 857 offers came from a seller in our qualified-merchant set; the rest came from marketplace sellers we cannot vouch for. 56 offers were flagged as a different variant of the product searched for — a part, a bundle, or a different configuration wearing a similar title.

And none of the 857 offers carried everything needed for a complete comparison total: item price, mandatory shipping, applicable tax and fees, from a seller we could identify, for the configuration actually searched.

Offers returned per category, 2026-09-03 03:41Z. "Qualified seller" means the merchant was in our verified set; "different variant" means the engine flagged the listing as not the same purchase.
CategoryOffersItem priceShipping statedQualified sellerDifferent variantComparison total
Air Fryers3030291310
Air Purifiers3030282100
Blenders3030171300
Bluetooth Speakers3030202000
Cameras3030201000
Coffee Makers3030241500
Dash Cams555010
Drones2424201100
E-Readers885020
Electric Scooters666000
Electric Toothbrushes3030271610
Espresso Machines3030251200
External SSDs555000
Fitness Trackers191916420
Gaming Chairs888000
Gaming Consoles887200
Gaming Headsets333000
Gaming Laptops2121415110
Gaming Mice554000
Graphics Cards3030231700
Headphones3030182200
Laptops2929271510
Mattresses303027610
Mechanical Keyboards252522720
Monitors3030222010
Office Chairs2828211340
Pressure Cookers777010
Printers3030261700
Projectors444000
Robot Vacuums2828251520
Running Shoes1919121000
Security Cameras333000
Smartphones998000
Smartwatches13138210
Sneakers885110
Soundbars3030262200
Standing Desks3030278170
Tablets2323191010
Treadmills666000
TVs3030241400
Vacuum Cleaners151512510
Wi-Fi Routers181813330
Wireless Earbuds3030191520

Why the last column is empty

The obvious reading is that the data is bad. We think the honest reading is narrower: a delivered total is not a fact that retailers publish, so it is not a fact that can be read. It is assembled at checkout out of things that depend on you — where you live, what the tax rate is there, which shipping tier applies at that basket size, whether a fee is levied on that category in that state.

That has a consequence we would rather state plainly than bury. A price comparison that shows you item prices side by side is comparing the one number that travelled with almost every offer we checked, and none of the numbers that decide what you pay. It is a useful starting point and a bad finishing point, which is why this site sends you to the retailer basket to finish.

It also sets our own roadmap. If the total cannot be read, it has to be computed — tax from a destination and a taxability class, statutory fees from published schedules, shipping from stated rate rules — and then checked against a real checkout to the cent. Until that reconciles, we do not have it, and we will not print a number that implies we do.

What we changed because of this

These 43 measurements used to sit one per page, on 43 category pages that were otherwise generated from a single template. Measured on 4 September 2026, with site furniture excluded, those pages were 76.5% identical to one another — the same introduction, the same four tips and the same question and answer, with the category name swapped in.

We removed those pages from our sitemap and marked them noindex on 4 September 2026. They are still there, still linked, and still work for anyone who wants a category starting point; they are simply no longer offered to search engines as 43 separate articles, because that is not what they were. The measurements they carried are on this page instead, where 43 rows are the point rather than a repetition.

We are describing this in public because it is the kind of thing a site usually fixes quietly. The pages were scaled content. Publishing the census is the version of them that is worth reading.

Method, so you can repeat it

One query per category, run against our own search endpoint on 2026-09-03 03:41Z, with the returned offers classified by the same code that labels them on the site. A category returned between 3 and 30 offers depending on how much the sources held for it, which is why the per-category counts are small and why we publish counts rather than percentages: 56 out of 857 is a fact, and a rate computed from 3 offers is decoration.

The script that produces the measurement file, and the record it writes for each category, are below. Re-running it overwrites the figures on this page, because this table is generated from that file rather than typed out.

# regenerate the measurement file this study is built from
node scripts/growth/measure-category-evidence.mjs

# one record per category, in src/data/categoryEvidence.json
{
  "laptops": {
    "measuredAt":        "2026-09-03 03:41Z",
    "query":             "laptop",
    "offersChecked":     29,   // offers returned for this category
    "itemPrice":         29,   // stated an item price
    "shippingStated":    27,   // stated a mandatory shipping cost
    "sellersQualified":  15,   // seller in the qualified-merchant set
    "differentVariant":  1,    // flagged as not the same purchase
    "comparisonTotal":   0     // had every field needed for a total
  }
}

Related guides