Drug Pricing
September 23, 2026
8 min

Sweden drug prices: TLV decisions and pharmacy purchase prices

The most convenient bulk download in European drug pricing, what it actually covers, and the parser trap that costs an afternoon.

Blog Image
Table of contents
    Summary
    • Sweden offers the most convenient bulk download in European drug pricing: one constant address, no login, free under the open data law.
    • The file is regenerated daily even though price periods are monthly, so a monthly fetch misses within period corrections.
    • Coverage stops at the high cost protection scheme. Non reimbursed prescription products and the whole over the counter range are absent.
    • The file is served with a content type for an old binary spreadsheet format while the content is a modern one, which breaks parsers that trust the header.
    • The 2.8 percent factor to the manufacturer level was 2.7 percent in the 2018 version of the same regulation, so it has to be versioned rather than hard coded.

    Sweden offers the most convenient bulk download in European medicine pricing: one constant address, no login, no form, no session, backed by the national open data law. A single request retrieves the full dataset. Two things temper that. The route is undocumented, and the file covers only the part of the market that falls under the high cost protection scheme, which leaves the non-reimbursed prescription range and the whole over the counter segment outside.

    What the pricing authority publishes

    The dental and pharmaceutical benefits agency publishes the prices it has decided on.

    PropertyValue
    Price levelsPharmacy purchase price and pharmacy retail price, each also per smallest unit
    CurrencySwedish kronor, decimal with a comma separator
    File generationDaily
    Price periodsMonthly, on a three month application cycle
    FormatSpreadsheet, served with a misleading content type
    CoverageOnly what falls under the high cost protection scheme
    LicenceFree under the national open data law

    In our retrieval the medicines file was 1,274,120 bytes with 14,599 pack rows, and the consumables file 274,823 bytes with 4,293 items.

    The rhythm correction that matters for a pipeline

    Most descriptions say Sweden updates monthly. That is half right and it is the wrong number to build on.

    Price changes take effect in monthly periods, following an application cycle of three months: application month, decision month, start of the price period. But the file itself is regenerated daily, and the agency states as much on its open data page.

    The operational rule is therefore to fetch daily even though the content changes materially once a month. A pipeline that fetches monthly will miss corrections made within a period, and those corrections are exactly the kind of change that is invisible in a comparison against a stale copy.

    The coverage gap is real

    The database contains what the agency has decided on and what falls within the high cost protection scheme. Non-reimbursed prescription products and the entire over the counter range are absent.

    The size of that gap is easy to underestimate. Sweden's file holds 14,599 pack rows. Denmark, with roughly a fifth of the population, publishes 11,589 pack records. The difference is not a difference in market size, it is a difference in scope.

    For full national coverage the route is the national product and article register, obtainable over SFTP on an informal application, with no contract required. That is an unusually light procedure by European standards and it is worth starting early, because the price file alone will not support a claim of national coverage.

    The parser trap

    The bulk file is served with a content type that indicates an old binary spreadsheet format, while the content is a modern spreadsheet format. A parser that selects its reader from the content type will reach for the wrong one and fail on a file that is perfectly valid.

    This is the kind of detail that costs an afternoon and never appears in any documentation. Select the reader from the file signature, not from the header.

    Why the per unit columns are worth keeping

    Alongside the pack level purchase and retail price, the Swedish file carries both figures per smallest unit. That is unusual and more useful than it sounds.

    Cross-pack comparison is one of the standing problems in pharmaceutical price work: a 30 tablet pack and a 100 tablet pack of the same product are not comparable at pack level, and deriving a per unit figure requires a reliable pack size, which many European sources do not provide in structured form. Sweden does the division itself, in the same row, using its own pack data.

    For a European dataset that gives two benefits. It supplies a per unit view for Sweden without any parsing, and it provides a check on your own per unit calculations elsewhere: if your derived unit price for a comparable product differs wildly from the published Swedish logic, the pack parsing in the other country is the first thing to inspect.

    Two files, two questions

    The medicines file and the consumables file are separate downloads with separate scopes. Mixing them produces an average across two regulatory regimes and two very different product populations.

    Keep them apart at import, with the source file recorded per row. It costs one column and it prevents the most common reporting error in Swedish data, which is a national figure that quietly includes devices alongside medicines.

    The route is undocumented

    The bulk address is stable and works with a single request. It is also not named in any official documentation. The agency's open data page describes only that the information can be downloaded as a spreadsheet.

    The address is therefore an implementation detail of the agency's own front end. It can change without notice, and the correct posture is to monitor it rather than to trust it: check the status code and the row count on every run, and alert on a file that is suddenly much smaller rather than absent, because a partial file is the failure mode that silently corrupts a dataset.

    A second bulk file is worth knowing about: the monthly product of the period list, which names the substitution product for each period. In our check it carried 7,985 data rows for a single month. For anyone modelling Swedish substitution rules rather than price levels, that is the operative file.

    Getting to the manufacturer level

    Sweden publishes the pharmacy purchase price. The step down to the manufacturer level uses a margin of 2.8 percent.

    As with Denmark and Finland, that figure comes from an Austrian price commission regulation used as a substitute assumption, in the version in force from 1 February 2025, where the percentages are expressly related to the pharmacy purchase price.

    Sweden is the best illustration of why such a factor must be versioned rather than hard coded: in the 2018 version of the same regulation the Swedish rate was 2.7 percent. It changed. A stored Swedish manufacturer price without a rule version and an effective date cannot be reproduced, and a time series built from it will contain a step that looks like a market movement.

    What Sweden is good for

    Fast implementation. One request, no authentication, no HTML parsing, a licence that permits commercial use. Nothing else in our review is this quick to stand up.

    Both trade levels in one row. Purchase and retail price arrive together, and both are also given per smallest unit, which makes cross-pack comparison straightforward without any parsing.

    Substitution analysis, through the period list, which is a distinct question from price level and better documented than in most markets.

    What it is not good for, without the additional register, is any statement about the Swedish market as a whole.

    How Sweden fits into a Nordic view

    Sweden is the fastest of the four Nordic countries to integrate and the narrowest in scope. Denmark charges a small fee and delivers a legally fixed rhythm with full pharmacy coverage. Finland offers an open interface, a ten year archive and the best pack data model. Norway publishes ceilings but hands you a GTIN.

    A Nordic price view built from all four therefore has one shared caveat and four different ones. The shared caveat is that none of them publishes a manufacturer price. The individual ones are scope in Sweden, encoding in Denmark, article number handling in Finland and the ceiling nature of the Norwegian figures.

    A checklist for Swedish prices

    1. Fetch daily, even though the content changes monthly.
    2. Choose the spreadsheet reader from the file signature, not from the content type.
    3. Monitor the undocumented bulk route on every run, including the row count.
    4. State the coverage limitation: the high cost protection scheme, not the national market.
    5. Apply for the national product and article register early if full coverage is needed. The application is informal and needs no contract.
    6. Archive every day's file. The download is always the current state and no price archive exists.
    7. Store the 2.8 percent factor with its version and effective date, and label the manufacturer level as an estimate.

    Conclusion

    Sweden is the easiest country in Europe to fetch and one of the easiest to misrepresent. A single request gives you both trade levels, per pack and per unit, under a free licence and with a daily refresh. The two caveats belong in the same sentence as the data: the route is undocumented and can disappear, and the file describes the reimbursed core rather than the Swedish market. Add the national register, monitor the route, and version the conversion factor.

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

    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

    Where can I find Swedish drug prices?
    Does the Swedish file cover the whole market?
    What price levels does Sweden publish?
    Why does my parser fail on the Swedish file?
    How often is the Swedish price file updated?
    How do I reach the Swedish manufacturer price?
    Since 1989, over 1,000 customers have placed their trust in our data.

    The most comprehensive drug database for pharma professionals.