Black Friday fake discounts: I built two Apify Actors to check if a sale is real

The EU says a "was" price has to be the lowest price of the last 30 days. I couldn't find an Apify Actor that checked it, so I built one. I also built a Shopify tracker that catches inflated compare-at prices before Black Friday on 27 Nov.

~7 min read

Black Friday fake discounts: EU Omnibus 30-day lowest price checker and Shopify compare-at tracker

Short answer: In the EU, when a shop advertises a price cut it has to show a prior price — and that prior price is the lowest price it charged in the last 30 days, not a short-lived spike from early November. To check whether a Black Friday discount is real, compare the sale price with that 30-day lowest price, not with the crossed-out "was" price. I built two Apify Actors that do this at scale: the EU Omnibus Discount Checker and the Shopify Discount & Promo Tracker.

Black Friday lands on Friday 27 November 2026. Between now and then, a lot of prices will quietly go up so that they can come down with a big red badge. This post is about catching that, with code instead of gut feeling.

The rule: what counts as the "was" price in the EU

Here's how this works in the EU, in plain words (not legal advice):

Not legal advice. This is a builder's summary of how EU price-reduction labelling is usually explained. National rules differ, and an Actor verdict is a flag for human review, not a legal finding. If you're a shop owner with a real compliance question, ask a lawyer in your country.

How I found the gap in the Apify Store

When I visit shops around Black Friday or Christmas, I always check the small price tag under the big sale price — the one that shows what it "was." Too often that "original" looks like what the promoted price should have been, and it gets hard to navigate between real discounts and fake ones. If that happened to you last year too, this post — and the Actors below — is for you.

That habit pushed me into Actor research, the same loop I describe in How I create Apify Actors people actually pay to use: write the buyer sentence, then check competitors before writing a line of code.

I searched the Apify Store for "omnibus" and "black friday". There were plenty of price scrapers and a few holiday deal trackers. I could not find one that answered the question I cared about: is this discount honest under the 30-day rule? That's a narrow, seasonal and very checkable job, which is exactly the kind of gap a small Actor can own. (Apify is already the scraping layer in my 2026 vibe coding stack, so building there was the obvious move.)

So I stopped scrolling the Store and started building. If nobody else was checking the 30-day rule, the first honest checker would have the niche to itself.

Actor 1: EU Omnibus Discount Checker

How to run

  1. Paste EU product page URLs into the Actor input.
  2. Run once (HTML first; browser only if needed).
  3. Read the per-product verdict — Compliant, Overstated, Missing 30-day lowest, and the rest.

You give it product pages from EU shops. For each one it reads:

Then it calculates the real discount against the 30-day lowest price and compares it with the advertised one. It recognises label wording in 11 languages (HU, DE, PL, CZ, SK, RO, FR, IT, ES, NL, EN) and parses local price formats.

Each product gets one verdict:

EU Omnibus Discount Checker · verdicts

Verdict What it means
Compliant The advertised discount matches the 30-day lowest price (within your rounding tolerance)
Overstated The badge claims more than the real discount from the 30-day lowest price
Missing 30-day lowest A reduction is announced, but no 30-day lowest price is shown
RRP comparison The "was" price is a recommended retail price, not the shop's own price
No discount claimed / price not found Nothing to check, or the page had no readable price (not charged)

It reads HTML first and only opens a real browser when a page needs it. Optional evidence screenshots save a full-page PNG per product.

Actor 2: Shopify Discount & Promo Tracker

How to run

  1. Add Shopify store domains to the input.
  2. Run once to save a baseline catalog snapshot.
  3. Schedule daily in changes mode so raised compare-at prices show up before 27 Nov.

Shopify stores show a compare-at price as the struck-through "was" price. This Actor reads a store's public product feed (no browser) and returns:

That last one is the Black Friday trick in one field. If the regular price was 40 and the compare-at suddenly says 80, you'll see it.

Start daily monitoring now. History only works if the Actor saw the "before" prices — schedule a daily run before 27 Nov.

What my test runs found

I ran both Actors on 8 Nov 2026. The first run hit rate limits and a proxy bug in my own code, which I fixed, then I re-ran everything. These are the re-run numbers. It's a small snapshot, not a market study, and I'm not naming any shop: the point is what the tools surface, not who.

30 / 30

Missing 30-day lowest

194 / 1,409

Products on sale

158 / 159

One store almost all on sale

Baseline 8 Nov Recheck ~25 Nov Black Friday 27 Nov

EU Omnibus Discount Checker: 30 discounted product pages from 3 German fashion and basics Shopify stores

WAS €107.99

NOW €31.49

BADGE −20%

Crossed-out price implies ~71% off — the −20% badge disagrees.

WAS €59.99

NOW €48.99

BADGE −30%

Maths is ~18% lower — the −30% badge disagrees.

Two honest caveats. A badge can refer to a different variant or an extra code, and several items were bundles, where "-15%" can mean bundle savings rather than a cut from a previous price. A verdict here is a flag for a human to look at, not proof of a breach.

Shopify Discount & Promo Tracker: 6 of 8 stores read, 1,409 products scanned

Shopify Discount & Promo Tracker · 8 Nov 2026 retest

Store (anonymised) Scanned On sale Average Median Deepest
A German lingerie brand 159 158 (99.4%) 22.5% 15% 50%
A German sock and basics brand 250 24 (9.6%) 13.3% 15% 35%
A US shoe brand 250 11 (4.4%) 46.8% 50.5% 58.6%
A US cosmetics brand 250 1 (0.4%) 14.4% 14.4% 14.4%
A US bedding brand 250 0 n/a n/a n/a
A German sustainable fashion brand 250 0 n/a n/a n/a

That's the real lesson for Black Friday: start watching now. History is what turns a crossed-out price into evidence.

How to check a Black Friday deal yourself

  1. Find the 30-day lowest price label on the product page. In the EU it should be there whenever a reduction is announced.
  2. Do the maths from that number, not from the crossed-out price.
  3. Look at the price history if a price-tracking tool or chart is available.
  4. Be careful with "up to -70%" banners. Check how many products actually carry the headline discount.
  5. At scale, paste product URLs into the Omnibus checker, or put a list of Shopify stores on a daily tracker schedule. New to Apify? Create an account (referral link, same as on our Tools page).

Verify EU deals before publishing

EU Omnibus Discount Checker

Watch competitor Shopify stores through November

Shopify Discount & Promo Tracker — daily, changes mode

Find the deepest real Shopify discounts for a newsletter

Shopify tracker with a minimum discount filter, then spot-check with the Omnibus checker

Want to build Actors like these?

Both Actors came out of the same system: find a narrow buyer job, check the Store for competitors, model pay-per-event margins, then ship a small, honest tool. That loop is in the Apify Actor Playbook toolkit (€37 once).

Black Friday offer: use code BLACKFRIDAY for 50% off (€37 → €18.50). Enter it at Checkout. Get the Playbook →

Want my Black Friday Actor notes and next week's build? Subscribe to Vibe Coder's Life →

FAQ

How do I know if a Black Friday discount is real?

Compare the sale price with the shop's lowest price in the 30 days before the sale. In the EU, shops announcing a reduction should show that prior price. If the "-50%" is measured from a higher, short-lived price, the discount is overstated.

What is the EU 30-day price rule?

In the EU, an announced price reduction should be measured from the lowest price the shop charged in at least the 30 days before the cut — not from a temporary higher "was" price. Country details can differ; this is not legal advice.

Is it illegal to raise prices before Black Friday?

Raising a price isn't illegal by itself. The issue is the announced discount: in the EU, it has to be measured from the 30-day lowest price, so a price raised just before the sale shouldn't become the reference. National rules and penalties differ. This is not legal advice.

What is a compare-at price on Shopify?

It's the original price a Shopify merchant sets, shown struck through next to the current price. The Shopify Discount & Promo Tracker flags a compare-at price that is more than a set tolerance above the highest regular price it observed for that product.

Does the 30-day lowest price rule apply outside the EU?

The rule comes from EU law, so it applies to traders selling to consumers in EU Member States. Other countries have their own price-advertising rules.

Can I check discounts automatically?

Yes. The EU Omnibus Discount Checker on Apify takes EU product URLs and returns a verdict per product (compliant, overstated, missing 30-day lowest and others). For Shopify stores, the Shopify Discount & Promo Tracker tracks sale depth and price changes on a schedule.

When is Black Friday 2026?

Friday 27 November 2026, the day after US Thanksgiving (26 November). Cyber Monday is 30 November 2026.

Disclosure: Apify signup is a referral link. Actor Store links are my Actors, and the Playbook is my product. No paid placement by Apify for this article.

Questions? Get in touch — or subscribe for the next issue.

← All posts