On 4 February 2020 newspapers headlines in Spain focused on the posturing of political parties after Felipe VI’s speech kicking off the legislative session. Some, but not all, mentioned the ‘Wuhan coronavirus’. They called it that because at the time it didn’t seem like our problem. It was China’s. But health workers had already detected the first imported cases. The same day, the Tenerife Health Area ordered, via emergency contract, 1,004 FFP2 masks for €1.40 each. Seven days later, it bought another 1,200 at the same price.

It made sense: the first COVID-19 cases in Spain appeared on the islands. But they were not the only early mask purchases. On 11 February, 26 February and 2 March 2020 the Cantabrian health service signed three similar contracts for a total of 1,400 masks at a lower price: 80 cents. Then the price shot up. A lot. In fact, one of the suppliers, Barna Import, the third biggest supplier of emergency contracts in 2020, raised its prices to five euros a mask on 30 March 2020, when it sold FFP2 masks to Murcia. But the price wasn’t the same for each buyer: that same day Barna Import sold masks to the Valencian Generalitat for €4.30 a mask.

Our very own database of prices per unit

We’ve extracted, cleaned and structured all emergency contracts awarded and published in 2020 on the Spanish Public Sector Contract Portal and by the autonomous communities, excluding minor contracts. We have extracted the unit prices of the most common subcategories. We’ve used three methods: first, extracting the information from its title where possible, because we could divide the total cost by the number of units listed. Then we’ve noted by hand the unit prices listed in all contracts for more than 10 million euros. Finally, we added two separate sources that included unit prices: the November 2020 INGESA framework agreement and the emergency contract data published by the region of Murcia. That means those two entities are overrepresented and the autonomous communities that reported less information are underrepresented. In the end, we kept the most common products for which we have sufficient comparable data. It is not an exhaustive list of all prices paid, but we consider it representative. This is our methodology.

The pandemic and global supply shortages combined with the appearance of middlemen who profited from these necessities drove up prices. Amidst the general price rises, public entities sometimes paid very different prices for purchases made at the same time, even from the same supplier. Some of the prices are way off the trendline, as shown by the Civio database of 2020 emergency contracts, almost 800 data points analysing what happened with gels, masks, tests and gloves in the supply wars of 2020.

The prices of FFP2 masks ranged from 25 cents to 8 euros. The first time the Spanish Ministry of Health used emergency contracting to obtain masks was 10 March 2020, just before the initial state of alarm and before masks were required–or even recommended–for the general public. It paid a little more than two euros per mask, much higher than the price paid by the Cantabrian health service just days before. But by then the pandemic was in full swing. In fact, the same Cantabrian health service later paid €5.20 per mask. Mérida paid €6.53 per mask. Prices reached their peak in April 2020: the Valencia Port Authority paid eight euros a mask to Almacenes Élite, a stationery company before the pandemic.

The worst of the price shock was past by the autumn. FFP2 prices dropped below a euro per mask. In fact, the Ministry of Health signed a multimillion-euro framework agreement in November 2020 to select different vendors of pandemic-related products thereafter. One of those companies agreed to sell FFP2 masks for 25 cents each, the lowest price in our database.

The first days of the state of alarm, given the lack of FFP2 masks, the Spanish Government authorised, as an exception, the sale of masks without the CE mark, such as KN95 masks. With a level of protection more or less comparable to the FFP2, they sold for higher prices, despite lacking the European seal of approval. FFP2 prices range from 25 cents to eight euros, but KN95 prices range from 87 cents per mask to €11.25 per mask, the price paid in June 2020 by Villa de Ingenio, a small town in Las Palmas de Gran Canaria. That is so high a price that the next most expensive price in our database is less than half: five euros per mask.

FFP3 purchases, for their part, seem to defy market logic: Extremadura signed two contracts on the same day, 16 June 2020, with the same company (Comercial Extremeña Hospitalaria) at different prices: one for €7.86 a mask and the other for €6.90 a mask. In this upside-down market, the community did not pay less per-unit for buying larger volumes. Instead, the more expensive contract was for more than twice as many masks as the cheaper contract.

Cantabria and Tenerife not only led the way purchasing FFP2 masks, they also bought surgical masks in February 2020 for four cents per mask and five cents per mask each. In March, the Ministry of Health approved three purchases, all at two cents per mask, the cheapest in our database, just before the price skyrocketed. In fact, on 23 March, just three days after awarding the last contract at two cents, the Ministry paid more than 20 times as much, almost half a euro per mask. It did so through two contracts signed the same day with FCS, the company that took the most money in 2020 via published emergency contracts. In total, the Ministry bought 430 million masks for almost 183 million euros. All in a day’s work.

Meanwhile, in other places, prices kept rising. The Agència Catalana de l’Habitatge bought a thousand surgical masks directly from a pharmacy at €1.82 per mask. After this peak, prices dropped quite a bit, but at different rates in different places.

A 19 November 2020 resolution reduced consumer prices for surgical masks to 62 cents, 4% VAT included. By then many stores were already selling surgical masks for less. Yet one day after the resolution went into force, Ferrocarrils de la Generalitat de Catalunya bought 40,000 masks for 62 cents. But that price didn’t include VAT (just like all prices mentioned in this article). So, the agency actually paid more per mask than the general public was paying at the time.

For nitrile gloves, prices ranged from €0.35 per glove to €0.02 per glove. Small differences in unit prices translate into millions of euros when purchased in bulk.

Swabs and PCR tubes at more than six euros per unit

The lack of information in each contract and the complexity of the PCR method make it impossible to compare PCR test unit prices with rigor. A given contract may cover the purchase of all the necessary chemical reagents or just some of them. The contracts almost never say. But it is possible to compare something much simpler: the number of stick packs (also called swabs) and sample tubes that are a part of each PCR test.

On 17 April, the Spanish Ministry of Health bought 700,000 of these swabs for more than six euros each, the highest price in our database. The four million euro contract was awarded to Value & Bro, a firm without employees but with contacts in China led by a lawyer from Malaga. It was an exorbitant price given that, only ten days later, Castilla y León bought them for one euro each, the cheapest according to our records.

We can also compare the prices of antigen tests. The most common and accurate is Abbott’s, which may be why Abbot took home the fourth-highest amount of money in published 2020 emergency contracts. Since signing its contract, in September 2020, Abbot has sold its tests at the same fixed price: of €4.50 per antigen test. Regardless of who was buying, that’s what Abbot’s antigen tests cost in Spain.

Sometimes, though, public entities opted for more expensive brands. The autonomous community of Castilla y León paid €6.50 per antigen test from Roche and €5.30 per antigen test from Kalea, an intermediary company that before the pandemic advised Spanish companies with interests in China. The autonomous community of Castilla La Mancha paid Biotical €5 per antigen test. But the craziest price was that paid by the Ministry of Health to Interpharma, the company that mediated to acquire the Bioeasy tests: not only were they defective (although the company claimed to have returned the money for those tests), they were very expensive: €21.50 per test. All told, the 659,000 tests cost the public 14 million euros.

Five-litre jugs of hand gel for more than one hundred euros

The biggest differences of all are in hand gel prices: they range from less than €1.40/litre to €40/litre. The differences are partly explained by how they’re delivered: five-litre jugs are cheaper, per unit volume, than pocket-sized dispensers. But that’s not the whole story.

In fact, the highest price in our database was paid by the Community of Madrid in April 2020. It bought 100 ml dispensers for 4 euros each or €40/litre. Let’s look for a comparable contract: Ferrocarrils de la Generalitat de Catalunya bought hand gel in the same format for €28.60/litre, almost 30% cheaper, less than a month later. Ferrocarrils even got its better price despite purchasing a smaller volume.

The €40/litre contract wasn’t the only one that the Community of Madrid signed that April with the Krape company. It also bought 5,000 half-litre bottles. The larger format cost less, of course: €20/litre. It still ranks among the most expensive published prices. In fact, the Generalitat Valenciana acquired similar 500 ml and 600 ml containers at the end of March 2020 from another much cheaper company: it cost less than €1.40/litre, the lowest price in our database.

The same day Valencia scored its bargain, on 27 March 2020, the municipality of Las Palmas de Gran Canaria paid a local pharmacist €22/litre for hand gel. Was it so expensive because it was for small format bottles? No. They were five-litre jugs for the local constabulary. At 110 euros a bottle that hand gel was like liquid gold.

This article is part of Tenders Guru, a project funded by the European Union.

The data used in this article comes from the Public Sector Contracting Platform (PLCSP), where the majority of Spanish public entities publish procurement data. We have downloaded all contracts published from 1 January 2020 to 31 December 2020. They total 119,976. In addition, we have also added the contracts that some regional administrations (such as Madrid and Catalonia) publish on their own websites and only summarise on the PLCSP. We found 53,838 such contracts. The goal was to create a comprehensive database for understanding emergency procurement in 2020 and detect potential abuses of the rules.

All amounts exclude value added taxes and we excluded so-called minor contracts, subject to less demanding transparency and publication rules.

Autonomous Communities

At the beginning of 2021, seven autonomous communities did not publish their procurement data directly on the national portal, but rather on their own portals: Andalusia, Catalonia, Euskadi, Galicia, Madrid, Navarra and La Rioja. The Region of Murcia published incomplete data on the national portal in 2020. Although in theory these regional portals are connected to the national one and the information should match, in practice there are problems. Not all contracts are available, and fundamental information is lacking, such as the award date and the urgency of the contract. Therefore, we have completed the contracts of these external platforms with additional details extracted from their web pages.

Unfortunately, each autonomous platform has its peculiarities. While Catalonia and Euskadi always indicate the urgency of their contracts in a clearly labelled field, Andalusia often leaves it blank, as does Galicia. La Rioja adds “Emergency” to its file code. Navarra does not always mention the emergency, but classifies the contract as “without procedure”, implying that something unusual is happening. Madrid labels its extraordinary contracts as “Other procedures,” but to find the level of urgency you have to look at the notes: “Emergency,” which it might spell “EMRGENCY” (sic) or “Emergeincy” (sic) or … Galicia classifies everything correctly but has not sent its emergency contracts to the national platform, so we had to add them by hand. (The Galicia web search engine also insists that there are no emergency contracts, although there clearly are.) Madrid does not send all its contracts to the PLCSP either, although we have not discovered the pattern: some arrive, others do not. So, we downloaded all the contracts from its website and added the ones missing from the PLCSP. Furthermore, Madrid is the only platform that does not publish the award date of its contracts, but rather the “award publication date,” which is not the same thing. Murcia published its health systems’ procurement in a spreadsheet separate from the normal contracting information. We combined all the purchases from that file and its non-health procurement to our database. Catalonia published a series of “umbrella” contracts with multiple awards in an attached spreadsheets, plus a separate summary file for the entities of the Generalitat itself. We have reviewed and cross-checked all these files and added the results to our database. Asturias already officially publishes directly in the PLCSP but continues to send some contracts to its own external platform, and some contracts have invalid URLs that do not seem to be accessible even in the Asturian platform.

In general, both for contracts published on external and national platforms, we have found many contracts where the winner of the tender was “See notes” or “See award,” which we have had to add manually. We also found many contracts where the award amount was empty or was clearly incorrect when compared to the budget. We have corrected the errors that we have detected by verifying the original award certificates. A special shout-out to this maintenance contract for six vehicles issued by the city of Oviedo, budgeted at EUR 37,200 and awarded to a local company for -supposedly- 251.52 billion euros, 6.7 million times the original contract budget and 143 times Asturias’ entire health budget. It does not seem to have attracted the attention of any of the officials involved in publishing the clearly mistaken information. (It is also surprising that the other bid did not win, for “only” 50 billion euros.)

The end result is what we believe is the most comprehensive public contracts database available in Spain. This does not mean that it contains all 2020 emergency contracts: although by law all public bodies must send their information to the PLCSP, not all platforms do it consistently, as the Independent Office for Regulating and Supervising Procurement (OIRESCON) has already reported. Some contracts must still be on the long journey (sometimes many months long) from award to publication.


Once we created the database, we reviewed it for possible errors: duplicate files, mis-classified procedures, lots with the wrong prices, mistaken fiscal identification numbers (especially in the case of non-EU companies, which tend to be inconsistently filled in) or names written differently each time, and separate contracts published together that we have had to extract and separate…

The most important revision has been in the award prices, which we always record without taxes. We have looked at what happened with those contracts that did not have any amount or reported an amount of 0. We have filled in as many gaps as possible. In the case of the -few- framework agreements, we have used the bidding price, that is, the budget, since the final expense will depend on the final amount purchased from each supplier, and that has not yet been published.

In all these cases, we have had to dig up the original award documents when needed. And, sometimes, we couldn’t even find basic information in those documents, such as what had been bought from whom and for how much money. The two main barriers have been missing information and inconsistency and typos in the data.

The categories

To establish the categories, we had to start with the basics: check which contracts were wrongly classified between supplies / works / services. From there, we have created general categories taking into account which objects were the most common. We have not been able to use the European common procurement vocabulary (CPV) code, because in most cases the descriptions were inconsistent. We had to decipher which category each contract belonged to by its object, using keywords for each of them, check them in Spain’s co-official languages, and check manually when necessary. An added difficulty: sometimes a single contract covered a variety of products or services.

Unit prices

In order to create the per-unit price database on which this article is based we created comparable subcategories within the categories masks, gels, test and gloves. In each of the subcategories we extracted the unit price of the object whenever possible, usually dividing the total amount of the award by the number of units purchased.

We also manually reviewed the documentation for all contracts over ten million euros to obtain unit prices. In addition, we added unit price data from the INGESA framework agreement and the Region of Murcia, which published everything in a spreadsheet. In cases where there is more than one price per supplier in the same contract, we used the lowest price.

We retained the nine subcategories that had enough data and that, from our point of view, were comparable: nitrile gloves, latex gloves, antigen test, PCR swabs and storage tubes, FFP2, FFP3, NK95 and surgical masks and hydroalcoholic gel. In the latter case, we have converted all quantities to litres, so there are important differences depending on the size of the containers, but we excluded contracts for the smallest containers.

We cannot compare PCRs because, unlike antigen tests, a PCR must be performed in a laboratory by specialised personnel. Workers must use swabs -whose prices we do compare- from suspected cases, tubes to transport them to laboratories and a series of chemicals called reagents. These chemical compounds extract genetic material from the sample and perform the PCR on the genetic material. Suppliers may sell component enzymes, buffers and probes as separate reagents or in one combined commercial kit. However, although the words “PCR reagents or kits” appear generically in the contracts, the public entities do not always buy the same components or kits, so the contracts are not comparable to each other and we cannot determine their unit prices. We would also have to take into account the purchase price of the thermal cyclers that perform the PCR and other materials and laboratory equipment such as pipettes, and labour costs.

The data

You can download and reuse the clean files we used in this analysis from the Civio open data website here:

If you find errors, please notify us

We know that the original source, the Public Sector Contracting Portal, contained errors, probably from data entry into the systems by the public entities. We have fixed the errors we found. We have worked on the data with the greatest possible rigor, but if you find any flaws in them or in our analysis, please write to us at [email protected] and we will be happy to correct it.