How to Spot Fake Black Friday Deals and Track Price Changes
Check a deal against the exact product’s price history, compare total prices, and verify the seller and return terms before you buy.
A large discount label does not prove that a Black Friday deal is unusually good. Identify the exact product and model, compare its current total price with its own price history and other sellers, then check the seller and purchase terms. A price history shows what an item has cost; a price alert can tell you when its price changes. Neither one guarantees that every seller or listing is covered.
Which? reported that nine in ten Black Friday deals in its examined set were cheaper or the same price at other times of the year. That is a finding about the products, retailers, and periods in its study, not a universal rate for all deals. Which?’s 2025 findings and its deal-checking advice are useful context.
1. Match the exact product before comparing prices
First confirm that listings refer to the same product. Check the brand, model number, generation, size, color if it affects the item, capacity, and included accessories. Compare bundles with the same contents. A similar-looking product or an older model can make a sale price appear better than it is.
- Record the model number from the manufacturer’s product page or the retailer’s listing.
- Check storage, dimensions, compatibility, and bundle contents.
- For multipacks or bundles, compare the total quantity and what is included.
- Keep the product page or listing details so you can check them again at checkout.
2. Check the price history, not just the crossed-out price
A “was” price or discount percentage is a comparison shown by the seller. It does not, by itself, tell you whether today’s price is low for this product. Look up the exact item in a price-history service that covers the retailer and region, and inspect the chart or records around the dates that matter to you.
- Find the exact product listing and note its current price.
- Check whether a price-history service tracks that retailer, product, and country.
- Inspect the history over a useful period. Look for previous lows, recurring sale prices, and how long the current price has been available.
- Compare the current offer with the product’s own past prices, not only with a displayed reference price.
- Check the seller’s price and the total price at other retailers for the same model.
Price records can be incomplete: a service may not cover a seller, product variant, region, or older period. Treat missing data as unknown, not as evidence that the current price is a record low. Which? has investigated pricing histories of sale items; its findings and advice should be read in the context of the products and time periods examined. See its Black Friday investigation.
3. Compare the total price at other sellers
Compare like with like across more than one retailer. The headline price can leave out delivery, handling, or other charges. Add unavoidable costs before deciding which offer is cheaper. Check whether a lower-priced listing is sold by the retailer itself or by a third-party marketplace seller, and whether the product is new, refurbished, or used.
| Check | Why it matters |
|---|---|
| Exact model and bundle | Different specifications or included items make the prices incomparable. |
| Delivery and unavoidable charges | These affect what you actually pay. UK CMA guidance says price information should include charges consumers cannot avoid. |
| Seller identity | A marketplace listing may have different dispatch, returns, and support arrangements from the retailer. |
| Condition and availability | Used, refurbished, backordered, or unavailable items are not equivalent to an in-stock new item. |
The UK Competition and Markets Authority’s price-transparency summary describes UK guidance. It is not a universal legal rule. The European Commission’s March 2026 online sales sweep reported that 34% of traders displayed price comparisons, and 60% of that subset did not clearly explain where reference prices came from. Those figures describe the Commission’s sweep, not all online merchants. European Commission sweep.
4. Use price alerts for timing, not proof
A price alert can notify you if a tracked item changes price. It answers a different question from a history chart: the history helps you judge past prices, while the alert can tell you when a change occurs. The Federal Trade Commission notes that some sites offer price alerts. Coverage varies, so confirm that the service supports the exact retailer and listing; do not assume it watches every seller. FTC online shopping advice.
- Choose a target price based on the item’s history and your budget.
- Set an alert with a service that covers the relevant product and retailer.
- Check the alert’s terms, including whether it tracks a specific listing or a product across sellers.
- When notified, revisit the listing and verify the model, seller, stock, and final checkout total.
An alert is a prompt to recheck the offer, not a guarantee that the price is the lowest available or that the item will remain in stock.
5. Read the terms and check the seller
Before paying, review the details that affect the actual cost and your options if something goes wrong:
- Delivery date, delivery cost, and any unavoidable fees.
- Refund policy, return window, and who pays return shipping.
- Restocking fees or restrictions on opened, personalized, or clearance items.
- Warranty and support, especially for marketplace sellers or products shipped from another country.
- Seller name, contact details, and whether the site is the retailer you intended to visit.
The FTC advises shoppers to check deal terms, seller details, and return policies. It also warns that fake seasonal shopping sites may take payment without sending the advertised goods, or send something different. Be cautious if an unfamiliar site appears through an unexpected ad or message, and independently navigate to a retailer you recognize before entering payment details. FTC shopping advice and FTC online shopping scam guidance.
6. Treat urgency as a prompt to verify
Countdown timers, “limited time” labels, and low-stock messages are advertising cues, not evidence that an offer is good. Pause long enough to check the exact product, price history, seller, and checkout total. If a claim cannot be checked independently, do not let the countdown replace that check.
7. A practical deal-checking checklist
- Product: I matched the exact model, specification, and bundle.
- History: I checked available price records and understand what the service does not cover.
- Comparison: I compared the current total price with another seller’s price for the same item.
- Terms: I checked delivery, unavoidable charges, refunds, return shipping, and any restocking fee.
- Seller: I verified who is selling the item and reached the site independently.
- Timing: If I set an alert, I will recheck the live listing and final total when it fires.
8. Keep a record of a price change
If you want to document a listing over time, capture its page at intervals and keep the date, URL, product identifier, and displayed price with each capture. A screenshot can preserve what the page showed at that moment, but it does not establish the full price history, prove that a seller’s reference price is accurate, or replace checking the terms and seller. Respect the retailer’s terms and avoid collecting personal information displayed on a page.
DIY browser capture with Playwright
For a page you are allowed to access, Playwright can save a full-page screenshot. Install Node.js, then run:
npm init -y
npm install playwright
npx playwright install chromium
Save this as capture.mjs and run node capture.mjs "https://example.com/product":
import { chromium } from 'playwright';
const url = process.argv[2];
if (!url) throw new Error('Usage: node capture.mjs <product-page-url>');
const browser = await chromium.launch({ headless: true });
try {
const page = await browser.newPage({ viewport: { width: 1440, height: 1000 } });
await page.goto(url, { waitUntil: 'domcontentloaded', timeout: 45000 });
await page.screenshot({ path: 'product-page.png', fullPage: true });
console.log(`Saved product-page.png for ${page.url()}`);
} finally {
await browser.close();
}
Use only pages you are permitted to access. A page may show a consent dialog, bot check, or content that loads only after interaction; a screenshot records the rendered page state and does not bypass access controls. For price tracking, store captures with timestamps and compare the same product listing over time.
Or skip the browser setup
ScreenshotNeo is a website screenshot API and MCP server. One GET request can return a screenshot or PDF. See the API documentation.
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://example.com/product -o shot.webp
import requests
r = requests.get(
"https://api.screenshotneo.com/v1/shot",
params={"access_key": "YOUR_API_KEY", "url": "https://example.com/product"},
timeout=90,
)
r.raise_for_status()
open("shot.webp", "wb").write(r.content)
const q = new URLSearchParams({
access_key: 'YOUR_API_KEY',
url: 'https://example.com/product',
});
const res = await fetch(`https://api.screenshotneo.com/v1/shot?${q}`);
if (!res.ok) throw new Error(`Screenshot request failed: ${res.status}`);
const bytes = new Uint8Array(await res.arrayBuffer());
await (await import('node:fs/promises')).writeFile('shot.webp', bytes);
Cookie banners are accepted and removed before the shot, along with known newsletter popups and chat widgets; each step can be turned off. Bot checks, blank pages, failed loads, timeouts, and cache hits are not billed, and response headers identify the page verdict and billing status. Its MCP server gives AI agents tools to take screenshots, get page information, and capture PDFs. The free plan includes 1,000 screenshots a month with no card; paid plans start at $5 for 3,000. Sign up for 1,000 free screenshots a month, no card required.
Performance, reliability, and cost notes
- Price tracking: Check how often the tracker updates and which retailers it covers. The research here does not verify any specific tracker’s coverage, update frequency, or alert behavior.
- Browser captures: Launching a browser for every page takes more resources than reusing a browser process. For small personal checks, keep the script simple; for repeated captures, use a controlled queue, sensible timeouts, and a clear interval.
- Reliable comparisons: Save the product URL, capture time, model identifier, and observed total. Prices, stock, and page content can change between visits, and a screenshot is only a record of one visit.
- Cost: A DIY script uses your compute and maintenance time. A screenshot API charges according to its plan and billing rules; ScreenshotNeo’s listed plans are Free at 1,000 shots/month, Starter $5 for 3,000, Growth $15 for 15,000, Pro $39 for 60,000, Scale $99 for 250,000, and Business $249 for 1,000,000. Yearly billing gives two months free; every feature is on every plan.
Troubleshooting
| Problem | Likely cause | What to do |
|---|---|---|
| The price-history chart has no data | The service may not track that retailer, region, variant, or time period. | Check the exact listing and supported coverage; compare current totals directly at other sellers. Treat absent history as unknown. |
| An alert never arrives | The service may not cover that seller or listing, or the price has not crossed your threshold. | Confirm coverage and alert settings, then revisit the live listing manually. |
| Two listings show different prices for the “same” item | They may differ by model, capacity, condition, bundle, seller, or delivery. | Compare model identifiers and checkout totals before deciding. |
| The final checkout price is higher | Delivery, taxes, handling, or another charge may have been added. | Review the itemized total and applicable terms before payment. Check local price-information guidance where relevant. |
| Playwright times out at navigation | The page may load slowly, wait on resources, or restrict automated access. | Use a reasonable timeout and an appropriate load condition; check the URL and network. Do not attempt to evade a bot check or access restriction. |
| The screenshot misses a price or product image | That content may load after scrolling, a delay, or user interaction. | Inspect the page manually and adjust the capture flow for permitted interactions; record that the capture may be incomplete. |
FAQ
Does a large discount percentage mean the deal is fake?
No. It is a reason to verify the reference price and compare the exact item’s history and current total elsewhere; the percentage alone proves neither a bargain nor fraud.
Can a price alert tell me whether a deal is good?
It can notify you of a tracked price change. Use price history and comparisons to judge the price, and check what the alert service actually covers.
Do the cited pricing figures apply everywhere?
No. The Which? result concerns its examined set, and the European Commission figures concern its 2026 sweep. FTC consumer guidance, UK CMA guidance, and EU findings concern different jurisdictions and contexts.
Can a screenshot prove that a seller advertised a particular price?
It can preserve what a page rendered at a particular time, but it does not independently verify the seller’s price history, reference-price basis, or the full terms of purchase.


