SummaryMost international drug price comparisons are wrong before the first number is compared. Not because the data is bad, but because the two prices being compared sit at different points of the distribution chain, in different currencies units, with different tax treatment and different coverage. A Swedish pharmacy purchase price against a Polish manufacturer price differs by the wholesale margin before any real price difference appears. This article sets out the five errors that break cross-country comparisons, the mechanism that makes national prices depend on each other, and a routine that produces a defensible result.
Because most European countries set their prices by looking at other countries. External reference pricing, sometimes called international reference pricing, takes the price of the same medicine in a defined basket of countries and derives a national maximum or reimbursement price from it. In a 2015 survey, 29 of 31 examined countries applied external reference pricing.
The mechanics differ sharply, and the differences decide how one country's price travels:
For a comparison this matters twice. A German price change propagates into Norwegian maximum prices, and a Norwegian price then feeds the Dutch calculation. Prices in Europe are not 30 independent observations.
The single most common mistake. Published price levels differ by country: Central and Eastern Europe and the Benelux countries regulate the manufacturer price, Scandinavia the pharmacy purchase price, and France, Spain, Portugal and Estonia publish the consumer price.
Converting between levels is possible, but it is regulation, not arithmetic. In Germany the wholesale margin is capped at 37.80 euro, and that cap applies from a manufacturer price of 1,200 euro upwards. In Portugal and Spain the margin bands sit on the manufacturer price level, and reading them the wrong way round produces a deviation of up to 3.23 euro per pack in Portugal. In Croatia the published figures are margin ceilings, so a back calculation yields an upper bound of the manufacturer price, not a price.
Where no formula exists, the honest label is estimate. For Denmark, Finland, the Netherlands, Sweden and Cyprus, a manufacturer level figure is reconstructed with a margin assumption borrowed from the Austrian price commission.
Three traps, all silent:
A currency conversion applied on top of a wrong unit produces a number that looks plausible and is off by two orders of magnitude.
VAT on medicines differs across Europe and changes. Finland raised VAT on medicines to 13.5 percent on 1 January 2026, while the consolidated version of the relevant law still showed the older schedule. If one side of your comparison carries VAT and the other does not, the difference you measure is partly a tax rate.
National lists carry list prices. They do not carry the discounts that are negotiated afterwards, and in several markets those discounts are confidential by design. Even the authority database EURIPID, which harmonises four price levels across roughly 26 countries, had not implemented net prices in the sense of actually paid prices as of 2022, although the European Parliament had called for them in 2017.
The practical consequence: a list price comparison is a comparison of published policy, not of what a payer or a wholesaler actually pays. Say so in the output, and the comparison stays defensible.
Two countries with the same number of rows can cover very different shares of their market. France's public database carries a price for 13,648 of 20,900 packs, because the remainder is not reimbursed. Spain's Nomenclátor covers roughly 20,500 of about 67,000 presentations and carries no manufacturer price at all. Malta does not regulate medicine prices and publishes no price list.
Coverage also decides which segment you are measuring. A comparison built only on reimbursed products silently excludes the self pay and OTC segments, which in several countries is where price competition actually happens.
The countries where a comparison is defensible today are those with a clear legal position and a stable technical route. Six qualify: Belgium, Finland, France, Italy, Norway and Sweden. Here is what each one requires before the numbers are comparable.
| Country | What you start from | What you have to do | Residual uncertainty |
|---|---|---|---|
| Belgium | Ex-factory, published directly, daily | Nothing, the level is already correct | None on the level itself |
| Italy | Classe H carries ex-factory directly, Classe A retail | Apply the verified factor for Classe A, use the monthly transparency lists for currency | Main lists can lag by months |
| France | Consumer price, gross | Back calculate through the statutory margins | The formula changes on 20 January 2027 |
| Norway | AIP and AUP | Use AIP, no manufacturer factor is published | No proven route to manufacturer level |
| Sweden | AIP, daily | Use AIP, or estimate manufacturer level with an external margin | Manufacturer level is an estimate |
| Finland | Wholesale via Hila, consumer via Kela | Apply the 3 percent margin, then VAT at 13.5 percent | Manufacturer level is an estimate |
Read the last column before the numbers. In four of the six countries the manufacturer price is either derived through a statutory formula or estimated with an assumed margin. Only Belgium and the Italian hospital list publish it directly. A table that presents all six as if they were measured the same way is the error this article is about.
Prices sit on packs, so a comparison needs pack level identity. The national pack code is the load bearing key: PZN in Germany, CNK in Belgium, CIP13 in France, AIC in Italy, Vnr in the Nordics. Pack size is a check value.
Three identity traps decide whether an automated match works:
Where pack size has to be parsed from free text, the parser must stop on ambiguity rather than guess. A wrong pack size turns a price per pack into a wrong price per unit, and price per unit is what most comparisons ultimately report.
International drug price comparisons mislead when they hide their assumptions. The five errors above are all avoidable with information that is available before the comparison starts: which level, which unit, which tax, list or net, and how much of the market the file actually covers. External reference pricing then explains why the remaining differences are smaller than the headlines suggest, because the countries are reading each other's prices.
Related reading: European Drug Pricing Database: how cross-border prices work and Pharma pricing Germany: how the system works, plus drug prices by country.
pharmazie.com is the consolidated pharmaceutical data platform by DACON Datenbank Consulting GmbH that bundles 25+ specialist databases into a single search, exclusively for healthcare professionals. Price coverage focuses on the DACH region and a number of further EU countries, with more countries following in the coming months.
Partly because of national pricing policy, partly because published prices sit at different points of the distribution chain. Before any real difference can be measured, both prices have to be normalised to the same level.
Denmark publishes in øre, a factor of 100 against kroner. Romania publishes in RON despite a methodology document naming EUR. Bulgaria switched to the euro on 1 January 2026 without marking older rates.
A country derives its national maximum or reimbursement price from prices of the same medicine in a defined basket of other countries. Norway, for example, uses the average of the three lowest prices from nine countries.
Through the national pack code, such as PZN, CNK, CIP13, AIC or Vnr. In France CIP13 is a valid GTIN-13 across all 20,900 packs, while in Czechia the GTIN field is empty in all 69,759 records.
Yes, but label them as list prices. Negotiated discounts are confidential in several markets, and even the authority database EURIPID had not implemented actually paid prices as of 2022.
Belgium and the Italian hospital list publish it directly. France requires a statutory back calculation, and Finland, Sweden and Norway require an estimate or offer no manufacturer level at all.