EU Omnibus Discount Checker — 30-Day Lowest Price Audit
Pricing
from $6.00 / 1,000 product checkeds
EU Omnibus Discount Checker — 30-Day Lowest Price Audit
Check EU shop discounts against the legally required 30-day lowest price. One verdict per product: compliant, overstated or missing label. 10 languages, no price history needed.
Pricing
from $6.00 / 1,000 product checkeds
Rating
0.0
(0)
Developer
Viktor Kondas
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Features
Share
Check whether an EU shop's discount is real. Paste product URLs and get one verdict per product — compliant, overstated, or missing the legally required 30-day lowest price — with the evidence text from the page. JSON, CSV or Excel, via API, schedules, n8n, Make, Zapier and AI agents (MCP). $0.006 per product checked, no subscription.
Independent tool. Not legal advice. Reads publicly visible product pages only — no login, no personal data.
What does EU Omnibus Discount Checker do?
- Reads the current price, the "was" price, the % badge and the 30-day lowest price label from an EU product page.
- Calculates the real discount against the 30-day lowest price — the reference EU law requires — and compares it to what the shop claims.
- Recognises the label wording in 10 languages plus English (HU, DE, PL, CZ, SK, RO, FR, IT, ES, NL, EN) and handles local price formats (1 299 Ft, 1.299,00 €, 24 990 Kč).
- Needs no price history — it reads the label shops are obliged to display, so the first run already gives answers.
Who is it for?
| You are… | You use it to… |
|---|---|
| Deal site or affiliate publisher | Verify discounts before publishing them |
| E-commerce pricing / compliance manager | Audit your own promo pages before a campaign goes live |
| Competitive-intelligence analyst | Compare competitors' claimed vs real discounts every week |
| Journalist or consumer organisation | Sample hundreds of Black Friday deals in minutes |
Ready-made examples (one click)
| Example | What you get |
|---|---|
| Audit Black Friday discounts on German shops | Verdict per product for major German retailers |
| Check fake discounts on Hungarian webshops | Hungarian shops, HUF prices, Hungarian labels |
| Audit Polish e-commerce promotions for Omnibus compliance | Polish shops, PLN, "najniższa cena z 30 dni" |
| Verify deal discounts before you publish them | Mixed EU shops, plain-language explanations |
| Monitor competitor discount claims weekly | Schedule-ready competitor watchlist |
How to use it
- Paste product page URLs (or open an example above).
- Set Max products — this is also your cost cap.
- Click Start. Filter the dataset by
verdictor download it.
Input
| Field | Required | Description |
|---|---|---|
productUrls | yes | Product pages (not category pages) |
maxProducts | no | Cap on products and cost. Default 100 |
renderMode | no | auto (default) tries fast HTML first, then a real browser if no price is readable. html never uses a browser, browser always does |
tolerancePct | no | Allowed rounding gap in percentage points. Default 1 |
includeEvidenceScreenshot | no | Save a full-page screenshot as evidence ($0.01 each). Pages are rendered in the browser |
countryOverride | no | Force a country if auto-detection is wrong |
proxyConfiguration | no | Apify Proxy by default; use residential proxies in the shop's country for big shops |
Output
{"productUrl": "https://shop.example.hu/product/123","domain": "shop.example.hu","country": "HU","currency": "HUF","productName": "Wireless headphones X","currentPrice": 34990,"referencePrice": 49990,"referenceType": "strikethrough","lowest30dPrice": 36990,"lowest30dLabel": "Az elmúlt 30 nap legalacsonyabb ára: 36 990 Ft","claimedDiscountPct": 30,"discountVsReferencePct": 30.0,"discountVsLowest30dPct": 5.4,"verdict": "pct_overstated","severity": "high","explanation": "Shown as -30%, but the price is only 5.4% below the 30-day lowest price.","renderedWithBrowser": false,"screenshotUrl": null,"sourceUrl": "https://shop.example.hu/product/123","status": "ok","scrapedAt": "2026-11-27T08:00:00.000Z","schemaVersion": 1}
| Verdict | Meaning |
|---|---|
compliant | Discount matches the 30-day lowest price (within your tolerance) |
pct_overstated | The shown discount is bigger than the real one vs the 30-day lowest price |
missing_lowest_30d | A discount is shown but the 30-day lowest price is not |
rrp_comparison | Only a recommended retail price comparison — whether the rule applies depends on the member state, review manually |
no_discount_claimed | No discount on the page |
price_not_found | Nothing readable (also blocked pages, 404, robots.txt skips) — free, with the reason in explanation |
A run summary (counts per verdict, failed URLs, stop reason, charged events) is saved to the OUTPUT record of the key-value store.
How much does it cost?
| Event | Price | When |
|---|---|---|
| Actor start | Apify default | Once per run |
| Product checked | $0.006 | Each product with a verdict |
| Evidence screenshot | $0.01 | Only if you switch it on |
100 products ≈ $0.60 · 1,000 products ≈ $6. Pages that fail, are blocked or show no price are not charged. Set Max cost per run in the run options for a hard budget — the Actor stops as soon as it is reached. Higher Apify plans get Store discounts automatically.
Schedule it
Black Friday week: run daily at 08:00 on your watchlist. Rest of the year: weekly (Monday 07:00) is enough to catch campaign changes.
Use with AI agents (MCP)
"Use kondasviktor/eu-omnibus-discount-checker to check whether these 20 Black Friday deals are real discounts under the EU 30-day rule."
FAQ
What is the EU 30-day lowest price rule? Since the Omnibus Directive, an EU shop that announces a price reduction must show the lowest price it charged in the previous 30 days, and the EU Court of Justice confirmed the advertised percentage must be calculated from that price.
Is this legal advice? No. It flags discount claims for human review. Member states allow some exceptions (e.g. perishable goods, progressive discounts, shorter look-back for new products).
Why price_not_found? The page didn't expose a readable price — try renderMode: browser or a residential proxy. These rows are free.
Which shops work? Any EU shop with public product pages. Big shops sometimes block datacenter IPs — use a residential proxy in the shop's country. The Actor respects each shop's robots.txt and skips disallowed URLs.
Can you add a language or shop? Yes — open an issue with a product URL. Fixes within 48 hours.
Limitations
- Product pages only in v1 (no category crawling).
- Uses the default variant on multi-variant pages.
- Cannot prove what the price was 30 days ago — it checks what the shop declares. Pair it with a weekly schedule to build your own history.
- Label wording is matched per language; an unusual wording shows up as
missing_lowest_30d— report the URL and it gets added.
Related Actors
- Peppol e-invoicing checker — Peppol registration, document types and access-point details
- Shopify Discount & Promo Tracker — sale depth and promo trends on any Shopify store
- Product Catalog Scraper — full product lists with prices
- Website Change Monitor — watch promo / PDP pages after an audit
- OpenAI Ads Check & Convert — get your shop's products ready for ChatGPT ads
Built by Viktor Kondas · Vibe Coder's Life · Custom audits: hello@vibecoderslife.com