Drug Pricing
September 20, 2026
8 min

Denmark medicine prices: Medicinpriser and the pharmacy purchase price

What the Danish price publication contains, the three traps a summary will not warn you about, and why the subscription has no terms at all.

Blog Image
Table of contents
    Summary
    • Denmark publishes the pharmacy purchase price every second Monday, a rhythm prescribed by regulation.
    • All prices are stated in øre with leading zeros. Reading them as kroner is wrong by a factor of one hundred.
    • The files use an older DOS code page rather than Latin-1, and the discontinuation marker is a date field, set in 573 of 11,589 pack records.
    • The annual fee is 2,894.40 Danish kroner excluding tax, roughly 380 euro. It is a cost recovery charge, not a licence fee.
    • There are no subscription terms at all, so redistribution is neither granted nor prohibited and has to be settled by a written question.

    Denmark publishes its medicine prices every second Monday, by law, in a format that has not changed in decades and contains a trap that costs a factor of one hundred. The data is behind a small annual fee, the fee is a cost recovery charge rather than a licence, and the terms of the subscription do not exist at all. That last point is not a figure of speech: there is no contract clause, no consent box, nothing.

    What Medicinpriser publishes

    The Danish medicines agency operates the price publication. The public front end answers single queries, the business portal sits behind a login, and the bulk files come over classic FTP with credentials.

    PropertyValue
    Price levelPharmacy purchase price, in the original terminology the apotekets indkøbspris
    CurrencyDanish kroner, with all values expressed in øre
    RhythmEvery second Monday, prescribed by regulation
    FormatASCII, fixed record length, positional, delivered as a ZIP
    Pack codeThe Nordic article number
    Pack sizeStructured
    AccessAnnual fee, bulk over FTP

    Coverage in the sample we parsed: 7,595 records at product level and 11,589 at pack level. It includes human and veterinary medicines subject to pharmacy dispensing, and cannabis products under their own identifier prefix.

    The factor of one hundred

    The specification states it plainly in the header of the price record: all prices are in øre with leading zeros. Anyone who reads the column as kroner is out by a factor of one hundred on every row.

    This does not appear in most secondary descriptions of the Danish source, which is exactly what makes it dangerous. A pipeline built from a summary rather than from the specification will produce prices that look plausible in aggregate reporting and are wrong by two orders of magnitude.

    Two further encoding details belong with it. The files are not Latin-1, they are in an older DOS code page, which we confirmed by inspecting the byte values of Danish characters in the sample. And the marker for discontinued products is a date field rather than a text flag, set in 573 of the 11,589 pack records. A parser that looks for a text marker will treat all 573 as active.

    The rhythm is a legal obligation

    The publication rhythm is set in regulation: prices appear every second Monday. Notifications must arrive by 20:00 on the Monday fourteen days before a new two week price period takes effect.

    In practice the agency issues change lists on Friday evening, and updated prices are visible by Monday morning at the latest. For a pipeline this is close to ideal, because the schedule is both fixed and legally anchored, so a fetch can be scheduled rather than triggered by polling.

    The fee, and what it is not

    The annual subscription is 2,894.40 Danish kroner excluding tax, roughly 380 euro, and the amount is confirmed in the regulation itself. The previous year it was 2,766.40, so it rises annually. It covers a full calendar year with no refund if a subscription is cancelled part way through.

    Three things follow, and they are commercially more interesting than the amount.

    It is a cost recovery charge, not a licence fee. The authority earns nothing from it and operates no competing product. That is a very different negotiating position from a private publisher that sells its own database.

    There are no subscription terms. No clause, no consent box, nothing. The right to redistribute is therefore neither granted nor prohibited. It is simply unregulated.

    The correct move is a written question, not a negotiation. Where terms are silent, the useful step is a precise letter that forces an answer on one point: may the data be redistributed as part of a commercial product after processing. A negotiation assumes there is a position to move. Here there is only a gap to be filled.

    Getting to the manufacturer level

    The published level is the pharmacy purchase price. Reaching the manufacturer level means removing a distribution margin of 6.5 percent.

    That figure does not come from Danish law. It comes from an Austrian price commission regulation used as a substitute assumption, in the version in force from 1 February 2025. The same document sets 3.0 percent for Finland and 2.8 percent for Sweden, and it is explicit that the percentages relate to the pharmacy purchase price.

    Two limitations belong with any use of it. The Austrian regulation itself allows companies to demonstrate individual margins that differ, so even in its own procedure the rate is a substitute rather than an exact value. And the figures change: in the 2018 version the Swedish rate was still 2.7 percent.

    The practical rules that follow are the same for all three Nordic countries in that regulation. Store the factor with a version and an effective date rather than hard coding it. And label every manufacturer level figure derived this way as an estimate.

    The technical route, in detail

    Bulk delivery runs over classic FTP with credentials, on port 21, with no secure variant discernible. The file name is constant, the content is ASCII with fixed record lengths, and there is no interface and no open dataset.

    Anonymous access is refused, which we confirmed on both the current and the historical host name. There is also a host name trap worth knowing: the address without the www prefix returns HTTP 200 but serves a web server error page rather than the site.

    History is buildable from the change lists and the two week full files, but only from the start of your own subscription. No archive of older price periods is publicly documented, so a gap in your own collection is permanent.

    How Denmark compares with the other Nordics

    CountryPublished levelAccessManufacturer level
    DenmarkPharmacy purchase priceAnnual fee, FTPEstimate, 6.5 percent
    SwedenPharmacy purchase and retail priceFree bulk downloadEstimate, 2.8 percent
    FinlandWholesale and consumer priceFree, open interfaceEstimate, 3.0 percent
    NorwayMaximum purchase and selling priceFree bulk fileNo factor exists

    Denmark is the only one of the four that charges, and it is also the only one where the charge buys a legally fixed publication rhythm. Sweden and Finland are free but rest on routes that are undocumented or, in Finland's case, unusually good and recent. Norway publishes ceilings rather than prices and has no derivation factor at all.

    Read as a group, the Nordics share one property that matters more than their differences: none of them publishes a manufacturer price. Every manufacturer level figure from this region is a derived estimate, and that label belongs in the data model rather than in a footnote.

    What Denmark is good for

    A reliable, legally fixed rhythm. Few European sources let you schedule a fetch with this confidence.

    Clean pack structure. The pack size is present in its own fields, which removes the parsing work that dominates the French and Spanish implementations.

    A cheap entry. Roughly 380 euro a year is not a commercial licence, and the absence of a private gatekeeper makes Denmark one of the least politically complicated countries in Europe for a data platform.

    What it is not good for is a manufacturer level comparison without caveats, or an assortment view beyond the pharmacy dispensed range.

    A checklist for Danish prices

    1. Read the price columns as øre. Divide by one hundred.
    2. Decode the files with the correct legacy code page, not Latin-1.
    3. Treat the discontinuation marker as a date field, not a text flag.
    4. Schedule the fetch on the published two week rhythm rather than polling.
    5. Archive every period yourself. There is no public archive of past periods.
    6. Label the manufacturer level as an estimate, with the factor, its version and its effective date.
    7. Put the redistribution question in writing before selling anything built on the data.

    Conclusion

    Denmark is a technically old, legally quiet and operationally reliable source. The rhythm is prescribed by regulation, the fee is small and non commercial, and the pack structure is clean. Against that stand three traps that a summary will not warn you about: prices in øre, a DOS era encoding, and a date field pretending to be a flag. Get those right, ask the redistribution question in writing, and Denmark becomes one of the easier countries in a European price product.

    Related reading: European Drug Pricing Database: how cross-border prices work and Pharma pricing Germany: how the system works, plus pharmacy purchase price and wholesale and pharmacy margins.

    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.

    Author Image
    Ursula Tschorn
    Ursula Tschorn is CEO of DACON Datenbank Consulting GmbH and has been building pharmaceutical information infrastructure since 1989. She writes on drug data standards, pricing regulation and market access in the DACH region.

    FAQ

    What is Medicinpriser?
    What does access to Danish price data cost?
    What price level does Denmark publish?
    May Danish price data be redistributed?
    Why are Danish drug prices out by a factor of one hundred?
    How do I get from the Danish price to the manufacturer level?
    Since 1989, over 1,000 customers have placed their trust in our data.

    The most comprehensive drug database for pharma professionals.