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 one retailer runs out, we remove only that retailer’s offer. If a retailer says a product is out of stock, or its link to the product has stopped working, and at least one other retailer still has it in stock, that offer leaves the page. The product stays up with the retailers that have it. Special order, backorder and pre-order count as in stock, because the retailer will still sell it to you.

When no retailer has it, the page stays and a clock starts. A product that is out of stock at the last retailer keeps its page, which states the date it went out of stock and shows no price and no buy button. If any retailer has it in stock again, the clock is cleared and the page goes back to normal.

What happens when the clock runs out. For 60 days after the last retailer stopped having it, the page stays up, marked no longer available, with similar items that are in stock in the same category. That is the same 60 days for every kind of product, and it does not depend on whether the record came from the manufacturer or from a retailer. If no retailer has it in stock again by then, its address sends you permanently to the most relevant category page: the brand’s page in that category when there is a full one, otherwise the category itself. The address never answers “not found” or “gone”, and if a retailer lists the product again later, its page comes 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.

The deal score

The deal score compares the current best price against historical prices from the past 90 days across all retailers. 70+ is a good deal, 40-69 is average, below 40 means prices have been lower. It is computed from new, first-party offers only: an open-box, refurbished, used or marketplace price never sets it.

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.