← All questions

What the Omnibus directive requires and how to comply automatically

The requirement is one sentence, but meeting it needs a dated record of every price change. What counts, where stores get it wrong, and how the registry keeps itself.

This page describes how the requirement is met technically. It is not legal advice — for a specific case, ask a lawyer.

Short answer

Whenever you announce a price reduction you must state as the prior price the lowest price you applied over the preceding period of at least 30 days. Not the regular price, not the price just before the promotion — the lowest. To do that you need a dated record of every price change, with its source. That record is either kept automatically or it is not kept at all.

What it actually requires

The legal basis is Article 6a of Directive 98/6/EC as amended by Directive (EU) 2019/2161 (the "Omnibus" directive), transposed into Bulgarian consumer protection law and in force since 28 May 2022.

The wording is short, but there are three places where stores trip.

First: which price counts. The price that counts is the one actually applied to consumers — the effective price. If the product was on promotion two weeks ago, that promotional price enters the calculation. A struck-through price nobody paid does not.

Second: progressive reductions. If the reduction deepens without interruption within the same campaign, the prior price remains the one from before the first reduction. This is an explicit exception — otherwise each new step would only ever be compared with the one before it.

Third: repeat promotions. Running a promotion on the same product again within thirty days is allowed. But the reference price includes the previous promotional price, so the second reduction has to go below the first to be announceable.

Why it is hard in practice

The requirement looks like paperwork. It is actually a data problem.

A product's price moves from several directions: a pricing rule based on cost, a manual correction, the start of a promotion, its end, a restore after a pause. If those changes come from different places and none of them keeps a log, the lowest price over thirty days is a reconstruction from memory.

Hence the usual failures: a struck-through price higher than anything actually charged, a reduction announced against a price that was never held for thirty days, and no way to prove anything under inspection.

How it is solved

The mechanism is one thing: an append-only registry of the effective price. Every change is written as a new row with a date, a value and a source. Nothing is overwritten. The reference price for a given date is computed from that registry — the lowest value in the thirty-day window before it.

Everything else is a safeguard built around it.

How Kronixon PI does it

The registry is the single source of truth for price history. It is written from every point where a price can change — price sync, a fixed price, the start and end of a promotion, a progressive change, a base alignment. A row is written only on an actual change.

A hard block at activation. If even one line of a campaign has a promotional price that is not below the thirty-day low, the whole campaign does not start. There is no override. The campaign is paused with a record in its history so it does not retry on every cycle.

The struck-through price is aligned automatically. On activation the base price in the store is brought down to the thirty-day low. That way the struck-through price and the discount percentage the customer sees are lawful by construction, not merely computed internally.

Progressive reductions. The reference is frozen at activation and is not recalculated while the campaign runs. When it ends the freeze is cleared, and next time the reference is computed afresh — the campaign's own records are excluded, while promotional prices from other campaigns count, exactly as the repeat-promotion rule requires.

Report and export. There is a "Price registry" tab: search a product and see the thirty-day low as at any date, the full price history and the promotional periods. There is an XLSX export for inspections.

Reconciliation and restore. A daily reconciliation compares the registry with the store's actual prices and catches discrepancies and new products. History is kept for twenty-four months.

For operators the word "Omnibus" does not appear in the interface — it says "Price registry" and "30-day low". The people running campaigns should not have to know the number of a directive.

Frequently asked questions

Which price is stated as the prior price in a reduction? The lowest price actually applied over the preceding period of at least thirty days — not the regular price and not the price immediately before the promotion.

Do earlier promotional prices count? Yes. The registry records the effective price, the one the customer paid. If there was a promotion in the last thirty days, its price is part of the calculation.

Can I promote the same product twice in one month? Yes, that is allowed. But the reference price includes the earlier promotional price, so for the second reduction to be announceable it has to go below the first.

What happens with a progressive reduction? If the reduction deepens without interruption within the same campaign, the prior price stays the one from before the first reduction. In Kronixon PI the reference is frozen at activation for exactly this reason.

What does the system do if a promotion does not meet the requirement? It blocks the whole campaign at activation and leaves it paused with a record in its history. There is no way to force it through.

How far back is price history kept? Twenty-four months by default, and the value is a setting. There is an XLSX export for inspections.

Related module: Promotions →
Request a demo
Contact

Let’s talk about your routine

Tell us what eats your team’s day. We will show you — on our own live system — how much of it can simply disappear.