Paraguay's largest public contracts, 2024
Data
Two bulk OCDS exports from contrataciones.gov.py covering 22,249 contracts, 2010 to 2024. Exchange rates from Banco Central del Paraguay.
Tools
Python 3.12, pandas, numpy, lxml, Jupyter. Version controlled with Git, published on GitHub.
What I did
All of it. Sourcing, cleaning, currency conversion, the join, the analysis, and the write-up.
The question
Paraguay publishes every public contract it signs, under the Open Contracting Data Standard. Which means the question is answerable: which contracts signed in 2024 were the largest, and who won them?
What I found
Twenty contracts out of 1,140 took 65% of the money, $224.4M between them. The other 1,120 shared the rest.
The three biggest are all fuel, all sold to Paraguay by international commodity traders, and all signed on the same day in February. Together they are 35% of everything the state contracted that year.
Energy holds most of the top eight: more naphtha, ethanol twice, mobile electrical substations. From ninth place down it is almost entirely school meals and medical supplies.
The three largest
Vitol Energia Americas Gasoil
Litasco Pan Americas Gasoil
Trafigura Pte Virgin naphtha
$121.1M together. 54% of the top 20.
The process
22,249 contracts in the raw export, 2010 to 2024
| contract_id | status | date_signed | value | award_id | supplier_name |
|---|---|---|---|---|---|
| active | 2024 | ||||
| cancelled | 2017 | ||||
| active | NaT | ||||
| active | 2024 | NaN | |||
| active | 2019 | ||||
| active | 2024 | ||||
| active | 2016 | ||||
| active | 2024 |
Sample rows, shown to illustrate the steps. The counts are the real ones.
Limitations
- Values were converted at the 2024 annual average exchange rate, not the rate on the day each contract was signed.
- The 2024 filter runs on signing date, not award date, so contracts awarded earlier but signed in 2024 are included.
- Categories come from the text of the process description, because the source has no category field.
- 834 contracts in the file have no value recorded and 19 have a value of zero or less. Those rows are excluded rather than estimated.
- Three award identifiers were shared by more than one supplier. I collapsed each into a single row before joining, otherwise one contract would have been counted once per winner.