Priorprice

Article 6a · Directive 98/6/EC

The price a stranger saw, written down

Paste a product page and Priorprice reads it the way an inspector would: from outside the shop, in a fixed order, with the place on the page each price came from.

This one page is free, now. The ledger that writes it down every morning is $29 a month for one store.

0 of 30

no prior price yet: 0 of 30 days captured

Every ledger starts at zero. It holds a prior price thirty mornings after its first capture, and not a day sooner.

This page, read the same way: https://priorprice.vercel.app/ sells a subscription, publishes no Product price, and so is reported unread.
What the capture wrote down
Read at (UTC)MethodResult
every buildnoneunread: no machine-readable price
Looked for, in this order
MethodFoundNote
JSON-LD Product.offers0
microdata itemprop="price"0
Open Graph product:price:amount0
Shopify /products/<handle>.jsonnot triednot tried: the address is not a Shopify /products/ page
WooCommerce .woocommerce-Price-amount0

Start the Ledger

Every morning at 05:00 UTC, up to 100 pages

$29 a month, one store

Thirty mornings after the first capture, every page on the list carries a prior price.

  • A capture of every listed page each morning, from the public page
  • A private ledger page with every day, read or missing
  • A signed prior-price receipt for any page and date
  • An email the morning a reduction is seen, with the prior price to show

A 500-page ledger and a one-off receipt for a single sale exist on request: [[CONTACT EMAIL NEEDED]]. Prices in US dollars; Stripe takes the payment and Priorprice never sees the card.

A receipt prints its holes

A specimen: a made-up coat on a made-up shop, derived by the same code that writes real receipts. Two of its thirty mornings could not be read, and they stay in the table where an inspector can count them.

The rule the receipt applies

Since 28 May 2022, Article 6a of Directive 98/6/EC has asked one thing of every price reduction announced in the EU:

“The prior price means the lowest price applied by the trader during a period of time not shorter than 30 days prior to the application of the price reduction.”

The percentage counts from that price too. On 26 September 2024, in C-330/23, Aldi Süd, the Court of Justice held that a reduction announced as a percentage “must be determined on the basis of the ‘prior price’”.

The Prior Price

What missing it has cost

On 14 January 2026 Poland's UOKiK fined Zalando PLN 30,945,000 and Temu's operator PLN 5,910,900 over the 30-day price, about EUR 7.1 million and EUR 1.35 million. Neither decision is final.

In the 2025 Black Friday sweep, 25 countries and the Commission screened 314 traders: “Only 40% of traders fully complied with EU price reduction rules.” The authorities followed each product's price history with EU eLab, from outside the shop, which is the side Priorprice reads from.

Read in this order; the first answer wins

  1. JSON-LD Product.offersThe structured data most themes publish, one reading per variant.
  2. microdata itemprop="price"The older markup, read from its content attribute.
  3. Open Graph product:price:amountThe price a page gives link previews.
  4. Shopify /products/<handle>.jsonFetched only when the page itself published nothing.
  5. WooCommerce price markupThe sale amount when one is shown, never the struck price.

A price drawn only by a script, or shown only in an image, is reported unread and never guessed. A page behind a bot wall cannot be read from outside: that morning is a hole, and the receipt prints it.

Read the Method

Check a receipt without trusting us

Each receipt is canonical JSON named by its own SHA-256 and signed with Ed25519. Paste one into the verifier and your browser recomputes both; the receipt never leaves the page.

Verify a Receipt