Decilion · LAC Pharmacy Price Extractor

What medicines cost online across Latin America and the Caribbean

A reusable extraction system that reads the sticker prices patients actually face at commercial online pharmacies in all 33 LAC countries, built to be compared against out-of-pocket health spending. This report walks through the methodology, the preliminary results from the first two extraction waves, a first answer to the headline question, and what comes next.

Johnattan García Ruiz · Decilion · updated July 6, 2026 · preliminary, not for citation

33countries covered by the census
14essential medicines (WHO/HAI basket)
10,230clean price observations, two waves
~38working scrape recipes, 11 platforms
21countries with a validated full basket

01 · The question

Why scrape pharmacy prices at all?

Across Latin America and the Caribbean, a large share of health spending comes straight out of patients' pockets, and medicines are the biggest single component of that spending. Yet the price a patient faces at the counter is surprisingly hard to observe at scale: official price databases track regulated ceilings or public procurement, not what a pharmacy actually charges on a Tuesday.

Online pharmacy storefronts changed that. The region's largest chains now publish their retail catalogs on the open web, which means the private cash price, the deliberate counterpoint to out-of-pocket expenditure, can be measured directly and repeatedly. This project builds the instrument: a stable, reusable extractor that reads those prices across all 33 LAC countries.

Two scope rules are absolute. Only commercial pharmacies are included, never government price observatories, because regulated ceilings are not what patients pay. And every observation is labeled as a private retail point-of-sale price so it can never be confused with public or insured prices.

02 · Methodology

From 33 countries to comparable prices, in seven steps

  1. A fixed basket of 14 essential medicines

    The test input follows the WHO / Health Action International survey method: 14 widely used molecules (metformin, amoxicillin, omeprazole, bisoprolol, salbutamol and others), each pinned to one strength and form, with multilingual search terms per molecule (Spanish, Portuguese, English, plus verified brand names).

  2. A census of the online pharmacy market

    For each of the 33 countries, background agents mapped the commercial pharmacy landscape: 161 pharmacies recorded, each probed and given a measured verdict on whether it shows products and prices online. Bigger chains are preferred because they proxy the street price most patients face.

  3. Recipe-driven extraction

    Each scrapeable pharmacy gets a small declarative recipe. One harvester covers the VTEX e-commerce platform that dominates the region's big chains; a generic engine handles the rest through backend APIs, rendered pages, or structured product data. Around 38 recipes across 11 platforms are live, and a pre-wave smoke test checks every recipe still works before any wave runs (recipes rot as sites change).

  4. Relevance gating at the door

    Search endpoints pad results with unrelated products. Every scraped record must prove it belongs to its molecule, by active-ingredient tokens or a web-verified brand vocabulary of 56 single-ingredient brands, before it is stored. Combination products that ride on a plain brand's name (the "Duo", "Plus" and "Forte" line extensions) are rejected by a suffix guard.

  5. Brand classification

    Each product is classified as originator (the innovator company's own brand, verified against a curated registry), branded generic, or unbranded generic. The originator-plus-generic matched pair per molecule is the unit the brand-premium analysis needs, and pair completeness is measured per country as its own quality gate.

  6. Validation gates, measured not assumed

    A country is GREEN only when at least 8 of the 14 molecules return real prices, YELLOW when partial, RED when its market has no scrapeable prescription channel. Waves are idempotent: re-running a country replaces its slice instead of double-counting, and a uniqueness constraint in the database makes duplication structurally impossible.

  7. Normalization to comparable units

    Pack price becomes per-unit price (only for products matching the exact basket strength), converted to USD at the observation's own currency, then expressed three ways: MPR (ratio to the MSH international reference price), PPP dollars per defined daily dose, and days of minimum wage needed for a month of therapy.

03 · Data quality

The cleaning that makes the numbers trustworthy

Before the second wave, a five-lane adversarial audit reviewed the entire pipeline: every suspected defect was independently re-verified against the code and the live database before being accepted. The audit confirmed 15 issues; all were fixed. Wave 1's raw output shrank by two thirds in the process, and that shrinkage is the point: what remains is defensible.

Wave 1: from raw scrape to clean dataset

Observations remaining after each cleaning stage

Raw scrape
13,448
Deduplicated
6,967  ·  exact re-run duplicates removed
Relevance-gated
4,135  ·  search filler and combos purged
Brands restored
4,472  ·  verified brand-titled products rescued

The purge removed, for example, a B-complex vitamin stored under all 14 molecules by one chain whose search ignores the query. The restore step brought back genuine products titled only by brand (Corbis is bisoprolol, Amoval is amoxicillin), each verified by web lookup before entering the vocabulary.

Every brand decision is logged with its evidence, and the verification pass earned its keep: name similarity alone would have admitted valsartan as diazepam, topiramate as amitriptyline, and an herbal sedative as an antidepressant. All were caught and rejected.

04 · Preliminary results

Two waves, eleven days apart

Wave 1 (June 23) produced 4,472 clean observations; wave 2 (July 4), run through the hardened pipeline in about 25 minutes, produced 5,758 across 27 countries and 39 sources. The gate map after honest re-measurement: 21 GREEN, 6 YELLOW, 6 RED. Two countries dropped from GREEN once search filler stopped counting toward their totals, which is the measurement working, not coverage lost.

How expensive are medicines, country by country?

Median price ratio (MPR) across basket molecules, wave 2. MPR = local median unit price in USD ÷ international reference price. An MPR of 10 means patients pay ten times the international supplier benchmark. Countries with at least 3 molecule cells shown.

Peru (5)
6.8
Nicaragua (4)
7.6
Mexico (10)
7.8
Brazil (14)
8.5
Haiti (4)
9.2
Colombia (12)
11.8
Paraguay (8)
18.9
Costa Rica (4)
20.2
Chile (11)
22.6
Cuba (8)
23.4
Bolivia (3)
23.9
Dom. Rep. (12)
24.7
Guatemala (10)
25.6
Uruguay (8)
29.4
El Salvador (11)
31.0
Argentina (12)
52.0
Ecuador (3)
62.3

(n) = molecule cells behind each median. Venezuela (median MPR ~210, 12 cells) is excluded from the chart: its official exchange rate diverges from street reality during hyperinflation, so its USD conversion is not yet comparable. Ecuador rests on only 3 cells. Reference prices are MSH 2015 supplier medians, the standard benchmark, so absolute levels run high by construction; the cross-country ranking is the robust signal.

The brand premium is real, and sometimes extreme

Originator price ÷ generic price for the same molecule, same country, wave 2 (matched pairs with both sides priced)

BRA ceftriaxone
33.0x
BRA omeprazole
19.1x
BRA diclofenac
6.6x
ARG omeprazole
3.7x
ARG bisoprolol
3.1x
BRA metformin
2.9x
BRA diazepam
2.2x
ARG simvastatin
1.8x

In Brazil a patient choosing the originator ceftriaxone injection pays 33 times the generic price for the same molecule at the same pharmacies. 13 matched ratios exist so far; growing this panel is a core goal of the next waves.

Affordability

Expressed in the WHO/HAI affordability metric, a month of therapy for one essential medicine costs between 0.05 and about 6 days of minimum wage across mainland markets: captopril in Nicaragua or amoxicillin in Peru cost under a tenth of a day's wage, while the worst mainland combinations approach a week of income.

Two denominators needed special treatment, now resolved. Venezuela converts at the parallel exchange rate (765.9 VES/USD, dated the same day as wave 2) and uses the USD-indexed ingreso mínimo integral (US$240/month) as its wage, since the frozen legal minimum of 130 bolívares (about 20 US cents a month) is meaningless; on that basis a month of therapy costs Venezuelans about 1.2 days of income. Cuba's affordability is disabled by design: its online prices are remittance dollars paid by relatives abroad, and no domestic wage makes that division meaningful.

What the market itself revealed

Three structural findings emerged that are results in their own right:

The English and Dutch Caribbean has an OTC-only online ceiling. Working storefronts exist in Barbados, Jamaica, the Bahamas and the smaller islands, but they sell over-the-counter goods online while prescription medicines stay behind the counter. Six RED countries reflect market structure, not scraping failure.

Originators are scarce in LAC online retail. Only 6% of clean observations are innovator brands. Several countries with strong generic coverage (Ecuador, Guatemala, Dominican Republic, Suriname) show essentially zero originator products online, which caps the brand-premium panel and is itself a finding about how these markets are served.

Cuba's only online channel is the diaspora remittance economy. Its prices are US-dollar prices paid by relatives abroad, not domestic pharmacy prices, and are treated separately throughout.

Pair coverage (both waves)Molecules with a matched originator + generic pairClass
Brazil10 of 14PAIRED BASKET
Argentina7PARTIAL
Peru, Haiti, Colombia6PARTIAL
Mexico, Honduras, Chile4PARTIAL
Venezuela, Nicaragua, Costa Rica3PARTIAL
7 further countries1–2PARTIAL
9 countries with data0NO PAIRS

Read these results with the caveats attached

  • Preliminary. Two waves, eleven days apart, from one source per country in several markets. Nothing here is publication-ready.
  • Venezuela uses proxy denominators (parallel exchange rate, USD-indexed income package), sourced and dated but proxies nonetheless; Cuba's affordability is deliberately not computed (remittance-dollar channel).
  • MSH reference prices date from 2015, standard practice for MPR but a decade old; absolute MPR levels are high by construction.
  • Online prices proxy urban chain prices. Independent and rural pharmacies, and negotiated discounts at the counter, are not observed.
  • Suspension-form molecules (pediatric paracetamol, cotrimoxazole) still mix presentations and are excluded from per-dose comparisons.

05 · The headline question

Do high out-of-pocket countries face higher medicine prices?

This is the comparison the instrument was built for. With WHO health-expenditure data joined to the cleaned wave-2 prices, each country now has two coordinates: how expensive its online essential medicines are (median MPR), and what share of its health spending comes out of patients' pockets.

The preliminary answer is: no relationship. Across the 18 countries with enough data, the rank correlation between price level and out-of-pocket share is slightly negative and statistically indistinguishable from zero (Spearman rho = −0.19, p ≈ 0.46; the affordability version is rho = −0.12). Removing Venezuela changes nothing.

Medicine price level vs out-of-pocket burden, by country

Median MPR across basket molecules (wave 2, countries with ≥3 molecule cells) against out-of-pocket spending as % of current health expenditure (WHO GHED 2023). If prices drove OOP burden, points would climb to the right. They don't. Hover or tap any point for the country's numbers.

0 20 40 60 10% 20% 30% 40% 50% 60% median MPR out-of-pocket share of health spending Argentina Ecuador Guatemala Colombia Brazil Venezuela Haiti Mexico

Spearman rho = −0.19 (n=18, p ≈ 0.46). The correlation and the underlying medians were independently recomputed by a second model family (Codex/gpt-5.5) from the raw grid and matched to three decimals. n=18 means this is "no evidence of a relationship," not yet "evidence of none."

The extremes make the point concretely. Guatemala carries the region's heaviest out-of-pocket burden (57% of health spending) at mid-range prices. Colombia carries the lightest (15%) at similar prices. Argentina has the highest mainland price level at a below-median OOP share. If this decoupling holds as the panel grows, the policy implication is that out-of-pocket burden in LAC is shaped more by coverage design, utilization, and what insurance fails to cover than by the retail price level of essential medicines themselves.

06 · The census, country by country

Every pharmacy we found, and what it can tell us

The census below is the project's foundation: for each of the 33 countries, every commercial online pharmacy identified (161 in total), with its measured status. Expand any country to see its pharmacies. This is also the honest map of representation: countries where no pharmacy delivers data are gaps in the online market itself, documented rather than papered over.

delivering price data feeding the price panel today prices online visible prices, extractor not yet built needs browser render / catalog only no online catalog / anti-bot / unreachable
Brazil6 pharmacies · 14/14 molecules · 1,783 observationsfull basket validated
  • Droga Raia needs browser render
  • Drogaria Sao Paulo delivering price data
  • Drogasil needs browser render
  • Pague Menos delivering price data
  • Panvel needs browser render
  • Ultrafarma delivering price data
Venezuela6 pharmacies · 14/14 molecules · 1,632 observationsfull basket validated
  • FarmaOnline unreachable
  • Farmacia SAAS delivering price data
  • Farmahorro unreachable
  • Farmared unreachable
  • Farmatodo delivering price data
  • Locatel Venezuela delivering price data
Argentina4 pharmacies · 11/14 molecules · 1,332 observationsfull basket validated
  • FarmaPlus delivering price data
  • Farmacias Dr. Ahorro needs browser render
  • Farmacity delivering price data
  • Farmaonline prices online
Honduras6 pharmacies · 13/14 molecules · 496 observationsfull basket validated
  • FarmaValue Honduras delivering price data
  • Farmacia Regis needs browser render
  • Farmacia Siman needs browser render
  • Farmacias Kielsa needs browser render
  • Farmacity HN needs browser render
  • PuntoFarma needs browser render
Chile3 pharmacies · 14/14 molecules · 446 observationsfull basket validated
  • Cruz Verde anti-bot protected
  • Farmacias Ahumada delivering price data
  • Salcobrand delivering price data
Colombia5 pharmacies · 12/14 molecules · 435 observationsfull basket validated
  • Cruz Verde delivering price data
  • Drogas La Rebaja delivering price data
  • Droguerias Cafam needs browser render
  • Farmatodo needs browser render
  • Locatel delivering price data
Mexico7 pharmacies · 12/14 molecules · 415 observationsfull basket validated
  • Benavides delivering price data
  • Farmacia San Pablo needs browser render
  • Farmacias Guadalajara unreachable
  • Farmacias Guadalajara (Super Farmacia) needs browser render
  • Farmacias Similares delivering price data
  • Farmacias del Ahorro anti-bot protected
  • Farmalisto delivering price data
Haiti5 pharmacies · 13/14 molecules · 410 observationsfull basket validated
  • Caribbean Supermarket needs browser render
  • Laboratoires 4C needs browser render
  • PHARMABISonline delivering price data
  • PHARx needs browser render
  • Pharma Prix Haiti needs browser render
Peru4 pharmacies · 14/14 molecules · 408 observationsfull basket validated
  • Boticas Peru delivering price data
  • Boticas y Salud needs browser render
  • Inkafarma delivering price data
  • Mifarma delivering price data
Ecuador4 pharmacies · 12/14 molecules · 379 observationsfull basket validated
  • Farmacias Cruz Azul delivering price data
  • Fybeca needs browser render
  • Pharmacys delivering price data
  • SanaSana needs browser render
Guyana4 pharmacies · 13/14 molecules · 310 observationsfull basket validated
  • Massy Stores Pharmacy GY anti-bot protected
  • Mikes Pharmacy delivering price data
  • Pharma-X Online delivering price data
  • Total Care needs browser render
Uruguay7 pharmacies · 10/14 molecules · 303 observationsfull basket validated
  • Farma.uy delivering price data
  • FarmaUp needs browser render
  • Farmacia America needs browser render
  • Farmacia El Tunel needs browser render
  • Farmacia San Roque delivering price data
  • Farmacity UY delivering price data
  • Farmashop needs browser render
Guatemala5 pharmacies · 13/14 molecules · 289 observationsfull basket validated
  • Cruz Verde GT delivering price data
  • FarmaValue GT needs browser render
  • Farmacias Batres delivering price data
  • Farmacias Galeno needs browser render
  • Meykos needs browser render
Bolivia5 pharmacies · 13/14 molecules · 243 observationsfull basket validated
  • Farmacia Cristal needs browser render
  • Farmacias Bolivia unreachable
  • Farmacias Chavez needs browser render
  • Farmacorp delivering price data
  • Hipermaxi needs browser render
Dominican Republic5 pharmacies · 13/14 molecules · 236 observationsfull basket validated
  • FarmaValue RD needs browser render
  • Farmacia Carol delivering price data
  • Farmacia Los Hidalgos anti-bot protected
  • Farmacia Medicar GBC needs browser render
  • Farmacia Popular unreachable
Paraguay5 pharmacies · 10/14 molecules · 224 observationsfull basket validated
  • Farmacenter delivering price data
  • Farmacia Catedral needs browser render
  • Farmacia Vicente Scavone (FVS) anti-bot protected
  • Farmatotal delivering price data
  • Punto Farma needs browser render
Suriname6 pharmacies · 11/14 molecules · 196 observationsfull basket validated
  • Apotheek Sibilo needs browser render
  • Apotheek Tjong Akiet needs browser render
  • DA Drogisterij needs browser render
  • Kirpalani anti-bot protected
  • Kring Pharmacy delivering price data
  • NV Soma Apotheek needs browser render
Costa Rica7 pharmacies · 10/14 molecules · 154 observationsfull basket validated
  • Farmacia Fischel needs browser render
  • Farmacia La Bomba needs browser render
  • Farmacia Sucre delivering price data
  • Farmacias Trebol needs browser render
  • Farmavalue needs browser render
  • La Farma needs browser render
  • Walmart Costa Rica Farmacia delivering price data
El Salvador5 pharmacies · 12/14 molecules · 120 observationsfull basket validated
  • FarmaValue El Salvador needs browser render
  • Farmacia Las Americas unreachable
  • Farmacias Economicas delivering price data
  • Farmacias San Nicolas needs browser render
  • Farmacias UNO unreachable
Panama5 pharmacies · 9/14 molecules · 119 observationsfull basket validated
  • FarmaValue Panama needs browser render
  • Farmacias Arrocha needs browser render
  • Farmacias El Javillo delivering price data
  • Farmacias Metro Plus needs browser render
  • Super Farmacia Rey delivering price data
Nicaragua5 pharmacies · 7/14 molecules · 113 observationspartial basket
  • FarmaValue Nicaragua needs browser render
  • Farmacia La Union delivering price data
  • Farmacias Kielsa Nicaragua needs browser render
  • Farmadescuento needs browser render
  • Super Farmacias Medco Xolotlan delivering price data
Cuba5 pharmacies · 13/14 molecules · 94 observationsfull basket validated
  • Alawao needs browser render
  • Cubatel Market needs browser render
  • Enviemax needs browser render
  • Katapulk needs browser render
  • Supermarket23 delivering price data
Trinidad and Tobago6 pharmacies · 3/14 molecules · 44 observationspartial basket
  • Aventa TT needs browser render
  • Invent Life Pharmacy no online catalog
  • Kappa Drugs needs browser render
  • Medl needs browser render
  • Sky Pharmacy no online catalog
  • SuperPharm delivering price data
Dominica2 pharmacies · 1/14 molecules · 22 observationspartial basket
  • Bullseye Pharmacy needs browser render
  • Jollys Pharmacy delivering price data
Grenada4 pharmacies · 1/14 molecules · 22 observationspartial basket
  • Gittens Pharmacy needs browser render
  • Grenada Pharmacies Ltd needs browser render
  • Mitchell's Wellness RX needs browser render
  • eCartGrenada (Gittens affiliate) delivering price data
Bahamas6 pharmacies · 2/14 molecules · 3 observationspartial basket
  • Bahamas Medical & Surgical Supplies delivering price data
  • Da Medicine Place no online catalog
  • KZ Pharmaceuticals no online catalog
  • Lowes Pharmacy no online catalog
  • The Prescription Centre prices online
  • Your Friendly Pharmacy unreachable
Antigua and Barbuda2 pharmacies · 1/14 molecules · 2 observationspartial basket
  • Epicurean Fine Foods & Pharmacy unreachable
  • OmniCare Pharmacy delivering price data
Belize6 pharmacies · 0/14 molecules · 0 observationsno online Rx channel
  • Belize Medical Associates needs browser render
  • BelizeRX needs browser render
  • Brodies needs browser render
  • Med Store Belize needs browser render
  • Medsafe Belize needs browser render
  • Vincenta Pharmacy needs browser render
Barbados7 pharmacies · 0/14 molecules · 0 observationsno online Rx channel
  • Aqua Pharmacy no online catalog
  • Collins Limited unreachable
  • Knights Pharmacy unreachable
  • Massy Stores Barbados (Pharmacy) prices online
  • Pearsons Pharmacy no online catalog
  • Standard Pharmacy Barbados prices online
  • iMart Pharmacy no online catalog
Jamaica5 pharmacies · 0/14 molecules · 0 observationsno online Rx channel
  • Fontana Pharmacy prices online
  • Lees Food Fair Pharmacy unreachable
  • MegaMart Pharmacy needs browser render
  • Pharma Pack N Go prices online
  • ValuDrug Pharmacy no online catalog
Saint Kitts and Nevis2 pharmacies · 0/14 molecules · 0 observationsno online Rx channel
  • Best Way Pharmacy needs browser render
  • Essential Plus Pharmacy prices online
Saint Lucia4 pharmacies · 0/14 molecules · 0 observationsno online Rx channel
  • M&C Drugstore needs browser render
  • Massy Stores St. Lucia needs browser render
  • VE Medical Pharmacy Orange Grove needs browser render
  • Vision Express Pharmacy needs browser render
Saint Vincent and the Grenadines3 pharmacies · 0/14 molecules · 0 observationsno online Rx channel
  • Deane's Pharmacy unreachable
  • People's Pharmacy SVG unreachable
  • PharmacyPlus prices online

Status measured by an automated per-pharmacy audit (June 29 to July 4, 2026) plus browser-render verification of ambiguous cases; "delivering" means the pharmacy contributed priced observations to the current dataset. Some pharmacies in already-covered countries are deliberately left unbuilt; effort goes to countries that would otherwise be unrepresented.

Which essential medicines can actually be bought online?

Availability itself is a finding. Fourteen essential medicines were searched in every country with a working source; the number of countries where each returned a real online price varies widely, and the pattern is clinical, not technical: chronic and OTC-adjacent medicines are broadly available, while acute injectables and controlled substances thin out.

Countries with at least one online price, per basket molecule

Out of the 27 countries that produced any data (both waves)

Omeprazole
26 countries
Diclofenac
25 countries
Paracetamol (susp.)
25 countries
Amoxicillin
23 countries
Metformin
23 countries
Bisoprolol
22 countries
Ciprofloxacin
22 countries
Salbutamol inhaler
22 countries
Cotrimoxazole (susp.)
20 countries
Amitriptyline
19 countries
Ceftriaxone (inj.)
19 countries
Simvastatin
19 countries
Captopril
16 countries
Diazepam
13 countries

Diazepam (a controlled benzodiazepine) and captopril (an older molecule increasingly displaced by newer antihypertensives) are the scarcest online; omeprazole and diclofenac are near-universal. The 33-country target is capped by the six markets with no online prescription channel at all.

07 · Explore the prices

What each medicine costs, country by country

The table below is the live output of the pipeline for wave 2 (July 4, 2026): pick a medicine and see what it costs across every country with data. Prices are medians of all strength-matched products found at that country's covered pharmacies, converted to USD per unit (one tablet, capsule, or vial) at dated exchange rates.


Median online price, USD per unit

Same data as the table below; bars re-draw with the medicine you pick.

Countryproductsmedian USD/unit MPRdays of wage/month originator USDgeneric USD

MPR = median unit price / MSH 2015 international reference price. Days of wage = cost of one month of therapy in days of minimum wage (Venezuela: USD-indexed income package; Cuba: not computed, remittance channel). Originator / generic medians appear where that side of the market was captured; a blank means no such product was found online, which is itself information. Cells rest on as few as one product in thin markets; read small-n rows gently.

08 · Next steps

From instrument to study

09 · Supporting this work

What support would unlock

Everything in this report was built and run as an independent Decilion project: the census, the extractors, two full price waves, and the analysis pipeline, all reproducible from a versioned repository. The instrument works. What it needs now is fuel to become a standing regional resource:

If this work is useful to your organization, or you want the underlying data, methods detail, or a collaboration conversation: j.garcia@decilion.com · decilion.com