HomeGadgets.caHomeGadgets.ca🍁

Methodology

Last updated: August 22, 2026

This page describes exactly how HomeGadgets collects, matches and publishes prices, including the parts that are incomplete. It is written against the code that is actually running, not against our intentions for it. Where the two differ, this page follows the code.

The short version: we track online retailer advertised prices from Canadian retailers’ own public product pages, we attach an offer to a product only when a manufacturer identifier says it belongs there, we rank by price and nothing else, and we would rather show you a gap than a guess.

Coverage, as measured right now

141
retailers*
130+
brands*
20,000
SKUs* tracked

How often prices are checked

Prices are refreshed at least weekly.

An offer expires after 14 days. If a retailer has not re-confirmed an offer within 14 days, it stops counting toward “available at N retailers” and stops rendering as a buy link.

We have real time price tools under development since all retailers update their prices continuously. If our information is wrong it is because the retailer changed its prices after we verified its offer. Always confirm on the retailer’s own page before buying.

How an offer is attached to a product

This is the part that makes a price comparison either trustworthy or worthless. If a comparison site attaches offers by product name, it will eventually put a 55-inch TV’s price on the 65-inch model, a lens kit’s price on the bare camera body, or a cyan ink cartridge’s price on the magenta one, and every one of those errors looks completely normal on the page.

Our resolution order is: barcode, then exact manufacturer part number, then a short list of declared reformatting rules, then nothing. Concretely:

Variants and duplicate listings

A different manufacturer part number is a different product until a written per-brand rule proves otherwise. That is the whole variant policy, and everything else follows from it:

The same discipline runs the other way. When two of our own product records turn out to be the same manufacturer part number, they are merged and their offers re-pointed, so a single product does not appear twice with half its offers each.

Open-box, refurbished and marketplace offers

The main price table contains new items sold by the retailer itself, and nothing else. That is the comparison, and it is the only thing that can set the best price we show.

Where this is incomplete. Only a small number of our collectors currently capture and label a non-new offer. The rest discard it: if the retailer publishes a condition signal we can read, the offer is dropped rather than shown. That is safe, a discarded open-box offer can never become a headline price, but it means the second table is far from complete, and its absence on a product page does not prove the retailer has no open-box stock. Separately, a listing that publishes no condition signal at all is treated as new. That assumption is the one place this could be wrong, and it is why we are converting collectors to explicit capture rather than leaving the default in place.

Availability, and where we are uncertain

We store four availability states, not two: in stock, out of stock, special order (orderable, not on hand), and call for pricing (a real product behind a quote or minimum-advertised-price gate). Collapsing those four into a yes/no would misrepresent a large part of the appliance market, where “ships in 4–8 weeks” is a normal, buyable state.

The rule we want everywhere is to read the retailer’s own published purchase state from the product page: orderable language wins first, explicit unavailable language next, then a working add-to-cart control. A disabled cart button reads as out of stock; a priced product with a quote form instead of a cart reads as special order, not as unavailable, because some retailers legitimately sell without a cart at all.

Where we are uncertain, stated plainly:

When a product goes out of stock everywhere, we do not delete the page. It stays online, states the date it went out of stock, and shows no price and no buy button, for 90 days on major appliances and 45 days on electronics, because appliances restock slowly. A product that has not returned by then is retired, and its address returns a permanent “gone” response rather than pretending to be a page that might come back.

Canadian dollars only

Every price on this site is a Canadian-dollar price quoted by a Canadian storefront. We do not convert currencies, we do not apply an exchange rate, and we do not show US prices. A converted price is not a price you can pay, and it goes stale the moment the rate moves.

This needs an active guard rather than good intentions. Some manufacturers’ “Canadian” storefronts actually quote US dollars, and because a price is stored as a plain number, a US figure would silently become a Canadian one. Rows from storefronts confirmed to quote in USD are dropped at the single point every collector writes through, for every collector, automatically, and the drop is logged. A storefront is added to that list only once its currency is confirmed, and removed only when it ships a genuine Canadian-dollar price.

Prices exclude taxes and shipping.

Ranking and independence

Offers are sorted by price, with ties broken alphabetically by retailer name. Nothing else enters the ordering, not commission, not a commercial relationship, not traffic. Some outbound links earn a referral commission, and that has no effect on which retailer is shown first, on the best-price calculation, or on what the on-site AI assistant says. We are not owned by, and do not act for, any retailer or manufacturer.

Corrections

If a price, a specification, or a product match on this site is wrong, tell us and we will fix the collector, not just the row. A wrong row that we patch without finding the cause comes back on the next run. Use the bug report form or contact us. Our standing statement on what the site and the AI assistant can and cannot do is on the limitations page.

* We continuously add and update this roster adding more retailers, products and brands. The three figures above are read from a single measurement, taken against our own database and shared by every page on this site that states a coverage number, so they cannot disagree with one another.