Skip to content
← SelectLAB·04PT
LAB · 04 / 09

Generic drugs in data

Generic versus original prices, who competes, antibiotics in winter and a screen of portfolio opportunities. Anvisa · CMED · SNGPC

How it works

Visual mode: shadows, ambient occlusion, depth of field and quality that adapts to your device. Light mode: no shadows or post-processing. Each bar is one cell of the data; the full analysis is right below.

Sheet of each analysis

Objective, why, target variable, predictors, method, metric, validation and whether the objective was reached.

How much cheaper the generic is
Objective
Measure the generic’s actual list discount versus the original.
Why
Entry price sets the margin of the whole generics portfolio; knowing where it clusters shows how much regulation decides and how much is left for strategy.
Target variable
Discount = 1 − generic price ÷ original price.
Predictors / explanatory variables
Substance, identical presentation, category (generic × new).
Method
Exact matching by substance and presentation; discount distribution.
Metric
Median discount; % of pairs below 35%.
Validation
Peak at 35% matches the CMED rule, which confirms the matching.
Objective reached?
Yes: 35% median; the discount is regulatory.
More competitors, lower list price?
Objective
Test whether more competitors lower the list price.
Why
If list price reflected competition it could feed pricing models; if not, other data is needed. Testing first avoids a wrong model.
Target variable
Median discount per presentation.
Predictors / explanatory variables
Number of labs selling the same generic (log).
Method
Linear regression on log(competitors) and medians by band.
Metric
R².
Validation
Bands with fewer than 5 cases left out of the chart.
Objective reached?
Yes, with the hypothesis rejected (R² = 0.9%): the regulated ceiling hides competition.
Who competes in generics
Objective
Map who competes in generics.
Why
Competition per molecule sets how many rivals a launch will meet.
Target variable
Active generic registrations by company.
Predictors / explanatory variables
Holding company, category, status.
Method
Count and HHI on registrations.
Metric
Top-10 share; HHI.
Validation
Active registrations only.
Objective reached?
Yes: 121 companies, HHI 403, unconcentrated.
Antibiotics in winter
Objective
Measure winter’s effect on antibiotic sales.
Why
Antibiotic production must be ready before the peak; misjudging its size means pharmacy shortages or expiring stock.
Target variable
Jan → Jul unit change per antibiotic, coverage-adjusted.
Predictors / explanatory variables
Active ingredient, month, prescription type; controlled drugs as coverage reference.
Method
Jul/Jan ratio divided by the controlled-drug ratio; GLP-1 set apart.
Metric
Adjusted % change.
Validation
Non-respiratory antibiotics (cefalexin, nitrofurantoin) fall, as expected.
Objective reached?
Yes: azithromycin +174%, amoxicillin-clavulanate +46%; ciprofloxacin flagged for checking.
Screening: high demand, few generics
Objective
List molecules with demand and almost no generic.
Why
The next molecule is a generics maker’s biggest decision; starting from proven demand cuts the risk of launching what nobody buys.
Target variable
Score = log(units) × log(price) ÷ (1 + generics).
Predictors / explanatory variables
SNGPC units, original price (CMED), companies with a registered generic.
Method
Exact name join; score-based screen.
Metric
Score ranking.
Validation
Prefix-based version dropped for mixing molecules; 5,000-unit minimum.
Objective reached?
Partial: screen ready; patent and bioequivalence checks still needed.
Sub-lab · GLP-1 pens
Objective
Explain the low uptake of local liraglutide and set the price condition for local semaglutide.
Why
A launch with no price or dosing advantage burns investment and shelf space; understanding why the first pen did not take off is the cheapest way to get the second one right. Cost per treatment month is the sum doctors and patients actually do, so I compared in that unit, not per box.
Target variable
Each molecule’s share of GLP-1 units sold; monthly treatment cost (R$).
Predictors / explanatory variables
Molecule, month, ceiling price per mg, maintenance dose, injection frequency.
Method
SNGPC aggregation; cost per month from each presentation’s concentration and volume.
Metric
Share (%) and R$/month.
Validation
Manual check of the CMED presentations parsed; Jan × Jul comparison.
Objective reached?
Yes: the uptake gap is explained by price parity with the original and daily dosing; the semaglutide price condition is quantified.
Sub-lab · The Medley deal
Objective
Map the deal’s concentration and overlap before CADE decides.
Why
If CADE requires divesting registrations, whoever already has the list negotiates better and faster. HHI is the measure competition authorities use, so speaking their language anticipates the outcome.
Target variable
HHI change per molecule (ΔHHI) and post-deal HHI.
Predictors / explanatory variables
Active registrations by company and molecule; the buyer group’s companies; Medley’s registrations.
Method
Herfindahl-Hirschman index on registration shares; ΔHHI = 2 · s_group · s_Medley · 10,000.
Metric
Molecules with HHI > 2,500 and ΔHHI > 200; new × overlapping molecules.
Validation
Group company list checked against the restructuring news; stated limit: a registration is not a sale.
Objective reached?
Yes, as a screen: 18 molecules to look at first and 82 overlaps for integration.
Sub-lab · Content uniformity
Objective
Quantify the risk of an out-of-spec batch being approved and set the maximum process variability.
Why
A recall costs the batch, reverse logistics, fines and reputation, and happens after the damage. The simulation shows release testing alone does not protect when process variation is high, so control has to sit earlier, at the machine.
Target variable
Probability that the batch passes the uniformity test.
Predictors / explanatory variables
Mean content (% of label) and coefficient of variation across units.
Method
Monte Carlo simulation of the two-stage test (4,000 batches per cell).
Metric
P(pass); fraction of units outside 85–115%.
Validation
Edge cases checked: mean 100% with low CV gives pass ≈ 1; mean 90% gives pass ≈ 0.
Objective reached?
Yes: a CV ≤ 6% target and the range where the test lets a bad batch through.
Sub-lab · Biologics and biosimilars
Objective
Prioritise biological molecules for biosimilars by competitive room.
Why
A biosimilar takes years and hundreds of millions to reach the market; the biggest risk is picking the wrong molecule and arriving with ten competitors. Price without competition is where the return still pays for that investment.
Target variable
Number of registered companies and median price per molecule.
Predictors / explanatory variables
Molecule, factory price (CMED), active biological registrations (Anvisa).
Method
CMED × registrations join by substance name; grouping by number of companies.
Metric
Molecules with 1 company; median price by competition band.
Validation
Known contested molecules (infliximab, trastuzumab, rituximab) show 6 to 10 companies, as expected.
Objective reached?
Partial: the screen is ready; patent dates (INPI) are still needed to close the list.
Sub-lab · Children’s antibiotics
Objective
Identify the molecules where the pediatric form is critical.
Why
A shortage of children’s antibiotics in winter is the most visible problem a manufacturer can have. Knowing which molecules depend on children says where safety stock and quality matter most.
Target variable
Share of units sold to patients aged 0–14 and 0–4.
Predictors / explanatory variables
Active ingredient, age band, sex.
Method
SNGPC aggregation by molecule and age band (1.3 GB file read in chunks).
Metric
% of units for children.
Validation
Age filled in for 97% of antimicrobial units.
Objective reached?
Yes: pediatric ranking ready for suspension planning.
Sub-lab · Data quality
Objective
Check whether SNGPC allows state comparison and propose a correction.
Why
Every regional forecast inherits the data’s biases. Measuring coverage before modelling avoids shipping product to where the system transmits more, rather than to where there are more patients.
Target variable
Units per thousand inhabitants; antimicrobials ÷ controlled ratio.
Predictors / explanatory variables
State, class (controlled, antimicrobial), IBGE 2025 population.
Method
Per-capita normalisation and by a reference class.
Metric
Highest-to-lowest state ratio; spread of the corrected ratio.
Validation
The January-to-July change in controlled drugs (+27%) confirms coverage also changes over time.
Objective reached?
Yes: the limitation was measured and corrected before becoming a decision.
  1. 01

    Three Anvisa databases

    CMED price list (26 thousand presentations), the registration database and pharmacy sales of controlled drugs and antimicrobials (SNGPC, January and July 2026).

  2. 02

    Corrections before concluding

    Pairs only with identical presentations, changes divided by the shift in SNGPC coverage, and GLP-1 drugs set apart from antibiotics because they now use the same retained prescription.

Generic drugs in data

Three public Anvisa databases tell the story of a generics maker: the CMED maximum price list, the registration database (who may sell what) and pharmacy sales of controlled drugs and antimicrobials (SNGPC). Together they answer what a generic costs, who competes and where demand meets thin competition.

Real-world use

Portfolio and production planning: choosing the next generic to register and adjusting antibiotic production to winter, when demand shifts.

01

How much cheaper the generic is

QuestionWhat is the price gap between the generic and the original drug?

Decision and whyCMED does not flag the reference product, so I compared each generic with the "New" (original brand) product of the same substance and the same presentation, using the factory price before taxes. Only identical presentations are paired: 500 mg × 21 tablets with 500 mg × 21 tablets.

ResultAcross 1,004 pairs, the median discount is 35%, with a sharp peak between 30% and 40%: the signature of the CMED rule that caps a generic’s entry price at 65% of the original’s. 32% of pairs sit below a 35% discount: the original may have cut its price later, or the "New" product in the pair is not the one used as reference in the registration.

Source: CMED/Anvisa · lista de preços PMC, 09/10/2026

Analysis technical sheet
Objective
Measure the generic’s actual list discount versus the original.
Why
Entry price sets the margin of the whole generics portfolio; knowing where it clusters shows how much regulation decides and how much is left for strategy.
Target variable
Discount = 1 − generic price ÷ original price.
Predictors / explanatory variables
Substance, identical presentation, category (generic × new).
Method
Exact matching by substance and presentation; discount distribution.
Metric
Median discount; % of pairs below 35%.
Validation
Peak at 35% matches the CMED rule, which confirms the matching.
Objective reached?
Yes: 35% median; the discount is regulatory.

Generic discount versus the original (factory price)

0 % – 5 %: 235 % – 10 %: 510 % – 15 %: 1515 % – 20 %: 820 % – 25 %: 1225 % – 30 %: 2330 % – 35 %: 23835 % – 40 %: 42940 % – 45 %: 5345 % – 50 %: 3650 % – 55 %: 2855 % – 60 %: 3660 % – 65 %: 1965 % – 70 %: 1570 % – 75 %: 1075 % – 80 %: 1580 % – 85 %: 1885 % – 90 %: 1690 % – 95 %: 595 % – 100 %: 0rule: ≥ 35%0 %15 %30 %45 %60 %75 %90 %
02

More competitors, lower list price?

QuestionWhen more labs sell the same generic, does the list price fall?

Decision and whyI counted how many labs sell the same generic in the same presentation and regressed the discount on the log of that count. That was the natural economic hypothesis: more supply, deeper discount.

ResultThe hypothesis did not hold for list prices: the median discount stays around 35% with 1, 3 or 8 competitors, and the fit explains 0.9% of the variation. The CMED price is a regulated ceiling. Competition happens below it, in discounts to pharmacies, which are not public. Useful result: list prices are the wrong data to study real pricing.

Source: CMED/Anvisa · analises/farma.py

Analysis technical sheet
Objective
Test whether more competitors lower the list price.
Why
If list price reflected competition it could feed pricing models; if not, other data is needed. Testing first avoids a wrong model.
Target variable
Median discount per presentation.
Predictors / explanatory variables
Number of labs selling the same generic (log).
Method
Linear regression on log(competitors) and medians by band.
Metric
R².
Validation
Bands with fewer than 5 cases left out of the chart.
Objective reached?
Yes, with the hypothesis rejected (R² = 0.9%): the regulated ceiling hides competition.

Median discount by number of competing labs

1 (232 cases): median discount 35 %1 (232 cases)35 %2 (77 cases): median discount 36 %2 (77 cases)36 %3 (43 cases): median discount 35 %3 (43 cases)35 %4–5 (50 cases): median discount 35 %4–5 (50 cases)35 %6–8 (23 cases): median discount 35 %6–8 (23 cases)35 %9–12 (9 cases): median discount 35 %9–12 (9 cases)35 %
03

Who competes in generics

QuestionIs the generics market concentrated?

Decision and whyI counted active generic registrations by holding company in Anvisa’s database. A registration is not a sale, but it shows the breadth of each lab’s portfolio.

Result121 companies hold active generics. The top 10 hold 56% of registrations and the HHI is 403, an unconcentrated market. A broad portfolio is the norm among leaders, so the edge becomes reaching new molecules first.

Source: Anvisa · DADOS_ABERTOS_MEDICAMENTOS.csv

Analysis technical sheet
Objective
Map who competes in generics.
Why
Competition per molecule sets how many rivals a launch will meet.
Target variable
Active generic registrations by company.
Predictors / explanatory variables
Holding company, category, status.
Method
Count and HHI on registrations.
Metric
Top-10 share; HHI.
Validation
Active registrations only.
Objective reached?
Yes: 121 companies, HHI 403, unconcentrated.

Active generic registrations by company (top 10)

Ems: registrations 2,567Ems2,567Prati Donaduzzi: registrations 2,422Prati Donaduzzi2,422Laboratorio Teuto Brasileiro: registrations 2,096Laboratorio Teuto Brasileiro2,096Germed Farmaceutica: registrations 1,930Germed Farmaceutica1,930Eurofarma Laboratorios: registrations 1,882Eurofarma Laboratorios1,882Brainfarma: registrations 1,686Brainfarma1,686Multilab: registrations 1,475Multilab1,475Legrand Pharma: registrations 1,202Legrand Pharma1,202Geolab: registrations 1,172Geolab1,172Ache: registrations 1,086Ache1,086
04

Antibiotics in winter

QuestionDoes antibiotic demand change between summer and winter enough to change the production plan?

Decision and whyI compared January and July 2026 in SNGPC. Two precautions: (1) since 2025 GLP-1 agonists (semaglutide, tirzepatide) use the same retained prescription as antimicrobials, so I set them apart; (2) reported volume changes from month to month, so I divided each change by that of controlled drugs, which are not seasonal.

ResultControlled drugs rose 27% from January to July from coverage and trend alone. Net of that, azithromycin rises 174% and amoxicillin-clavulanate 46%, respiratory-infection antibiotics. Cefalexin, for skin and urinary infections, falls 18%. The ciprofloxacin jump (206%) is too large to be seasonal and needs a registration check before it becomes a plan.

Source: Anvisa · SNGPC, EDA_Industrializados_202601 e 202607

Analysis technical sheet
Objective
Measure winter’s effect on antibiotic sales.
Why
Antibiotic production must be ready before the peak; misjudging its size means pharmacy shortages or expiring stock.
Target variable
Jan → Jul unit change per antibiotic, coverage-adjusted.
Predictors / explanatory variables
Active ingredient, month, prescription type; controlled drugs as coverage reference.
Method
Jul/Jan ratio divided by the controlled-drug ratio; GLP-1 set apart.
Metric
Adjusted % change.
Validation
Non-respiratory antibiotics (cefalexin, nitrofurantoin) fall, as expected.
Objective reached?
Yes: azithromycin +174%, amoxicillin-clavulanate +46%; ciprofloxacin flagged for checking.

Jan → Jul change, coverage-adjusted

Cefalexina: adjusted change -18 %Cefalexina-18 %Azitromicina: adjusted change 174 %Azitromicina174 %Amoxicilina + Clavulanato: adjusted change 46 %Amoxicilina + Clavulanato46 %Amoxicilina: adjusted change 9 %Amoxicilina9 %Cefalexina: adjusted change -18 %Cefalexina-18 %Amoxicilina + Clavulanato: adjusted change 32 %Amoxicilina + Clavulanato32 %Ciprofloxacino: adjusted change 206 %Ciprofloxacino206 %Sulfametoxazol + Trimetoprima: adjusted change -13 %Sulfametoxazol + Trimetopri…-13 %Metronidazol: adjusted change -6 %Metronidazol-6 %Nitrofurantoina: adjusted change -8 %Nitrofurantoina-8 %

Bars left of the line (orange) are declines.

05

Screening: high demand, few generics

QuestionWhich substances sell well, have a high price and almost no registered generic?

Decision and whyI crossed January sales (at least 5,000 units in the month) with the original’s CMED price and the number of companies with a registered generic. Score = log(units) × log(price) ÷ (1 + generics). I used exact name matching: the first, prefix-based version mixed different molecules.

ResultThe list mixes two kinds: recent high-value molecules (tirzepatide, brexpiprazole), where a patent most likely still blocks generics, and old molecules with no registered generic (primidone, clobazam, haloperidol decanoate, cefuroxime axetil), where demand already exists and the barrier tends to be industrial or regulatory. It is a screen: each name still needs a patent check (INPI), bioequivalence and manufacturing capacity.

Source: SNGPC jan/2026 × CMED × registros Anvisa · analises/farma.py

Analysis technical sheet
Objective
List molecules with demand and almost no generic.
Why
The next molecule is a generics maker’s biggest decision; starting from proven demand cuts the risk of launching what nobody buys.
Target variable
Score = log(units) × log(price) ÷ (1 + generics).
Predictors / explanatory variables
SNGPC units, original price (CMED), companies with a registered generic.
Method
Exact name join; score-based screen.
Metric
Score ranking.
Validation
Prefix-based version dropped for mixing molecules; 5,000-unit minimum.
Objective reached?
Partial: screen ready; patent and bioequivalence checks still needed.
substanceunits (Jan)genericsoriginal price
Tirzepatida369,1540R$ 1,593.93
Brexpiprazol32,2660R$ 459.82
Axetil Cefuroxima35,8120R$ 155.20
Cloridrato De Tapentadol11,2970R$ 147.65
Cloridrato De Dapoxetina11,7200R$ 140.31
Modafinila7,5870R$ 154.56
Decanoato De Haloperidol5,5060R$ 118.10
Primidona21,9910R$ 45.09
Sulfato De Morfina Pentaidratado23,2441R$ 1,613.42
Clobazam114,0140R$ 17.93

Median factory price of the original’s presentations, before taxes.

What each dataset contributed

  1. CMED list: measured the actual list-price discount and showed the effect of regulation on entry prices.
  2. Competition test: rejected a natural hypothesis and avoided using the wrong data to study price.
  3. Registration database: gave the map of who competes in each molecule.
  4. SNGPC: brought real demand per molecule and the winter effect on antibiotics, after correcting for coverage and the GLP-1 rule change.

Limits of this analysis

  • SNGPC covers only controlled drugs and antimicrobials sold in private pharmacies, not the whole market.
  • Two months are not a series: seasonality here is a hint. Files from 2021-11 to 2025-12 are not published.
  • List price is a ceiling. Transaction prices and market share by value are not public.

Analysis code: analises/farma.py

Sub-labs: a generics maker’s strategy

Six short analyses, each starting from a recent public fact in the sector: a launch that did not take off, a deal under CADE review, a quality failure, a delayed biosimilar, a children’s antibiotic recall and a data problem. For each: the objective, why it matters, how I measured it and whether I got there.

Public context

The first Brazilian-made liraglutide pens reached pharmacies in 2025. Their advertising was suspended by Anvisa in April 2026 and an ad campaign was suspended by Conar in September. With the semaglutide patent expiring in Brazil in 2026, local labs registered their own versions, promising a price about 30% below the original.

QuestionWhy did Brazilian liraglutide not win the market, and what does Brazilian semaglutide need to avoid the same fate?

How I measured itI measured demand from retained-prescription sales in SNGPC (January and July 2026) and the cost of one month of treatment as the CMED ceiling price per milligram times the label maintenance dose (liraglutide 3 mg/day; semaglutide 2.4 mg/week; tirzepatide 15 mg/week).

ResultIn July liraglutide sold 23,743 units, 2.1% of GLP-1s, versus 603,433 for semaglutide and 486,516 for tirzepatide. At ceiling price the local version costs R$ 961 a month, practically the same as the original (R$ 986): no price advantage, and a daily instead of weekly shot. For semaglutide, the ceiling of the local versions (R$ 1,860/month) sits above the original’s cheapest presentation (R$ 1,501). The promised 30% would mean R$ 1,302, below the original: the discount has to be real at the pharmacy, not just on the list.

Where this helpsA monthly SNGPC dashboard by state and molecule measures share right after launch, and a cost-per-treatment-month model sets the minimum competitive price before launch, not after.

Analysis technical sheet
Objective
Explain the low uptake of local liraglutide and set the price condition for local semaglutide.
Why
A launch with no price or dosing advantage burns investment and shelf space; understanding why the first pen did not take off is the cheapest way to get the second one right. Cost per treatment month is the sum doctors and patients actually do, so I compared in that unit, not per box.
Target variable
Each molecule’s share of GLP-1 units sold; monthly treatment cost (R$).
Predictors / explanatory variables
Molecule, month, ceiling price per mg, maintenance dose, injection frequency.
Method
SNGPC aggregation; cost per month from each presentation’s concentration and volume.
Metric
Share (%) and R$/month.
Validation
Manual check of the CMED presentations parsed; Jan × Jul comparison.
Objective reached?
Yes: the uptake gap is explained by price parity with the original and daily dosing; the semaglutide price condition is quantified.

Sources: Futuro da Saúde · Meio & Mensagem (Conar) · Atlas Público (Anvisa RE 1.809) · SNGPC + CMED · analises/farma_estrategia.py

GLP-1 units sold, January × July 2026

Drag to orbit · hover a bar

2.1%liraglutide share of GLP-1 units (Jul)
R$ 1,302semaglutide/month at a 30% discount