French essential data to OCDS conversion


#1

Title of the project

Data conversion from French JSON format for award data (“essential data”) to the OCDS JSON format.

Project idea (elevator pitch)

French essential data (locally nicknamed ‘DECP’) describe the award stage of public procurement processes. The Open Contracting Data Standard describes a public procurement process at all stages, including the award stage.

A script to convert XML essential to JSON is available here: https://github.com/etalab/format-commande-publique/blob/dgfip/scripts/xml2jsonDECP.sh

Let’s make them talk together!

The story behind the project

On October 1st, France started publishing procurement data (award stage) nationwide. So far, all procurement systems are not connected, which explains why only a bunch of files have been published so far.

However, we have already identified the potential of this data for a conversion to the OCDS international data standard, through the mapping of the fields of both formats.

Available datasets used


Challenge relevance

  • Transparency of public procurement procedures

#2

Handcrafted OCDS sample, made from actual data.

{
	"version": "1.1",
	"uri": "http://files.data.gouv.fr  ",
	"#comment": "URL where this file can be downloaded",
	"publishedDate": "2010-05-10T09:30:00Z",
	"publisher": {
		"name": "Secretériat Générale du Gouvernement",
		"scheme": "FR-INSEE",
		"uid": "12000101100010"
	},
	"license": "https://www.etalab.gouv.fr/licence-ouverte-open-licence",
	"publicationPolicy": "https://www.data.gouv.fr/fr/datasets/donnees-essentielles-de-la-commande-publique-transmises-via-le-pes-marche/",
	"releases": [{
		"ocid": "ocds-78apv2-214900995000172018V18044",
		"id": "214900995000172018V18044",
		"date": "2018-11-12T00:00:00Z",
		"tag": ["award"],
		"#comment": "awardUpdate if modifications non-null",
		"initiationType": "tender",
		"parties": [{
				"name": "VILLE DE CHOLET",
				"id": "21490099500017",
				"identifier": {
					"scheme": "FR-INSEE",
					"id": "21490099500017",
					"legalName": "VILLE DE CHOLET"
				},
				"roles": ["buyer"]
			},
			{
				"name": "ESVIA SAS",
				"id": "32902082000042",
				"identifier": {
					"scheme": "FR-INSEE",
					"id": "32902082000042",
					"legalName": "ESVIA SAS"
				},
				"roles": ["supplier"]
			}
		],
		"buyer": {
			"name": "VILLE DE CHOLET",
			"id": "21350051500019"
		},
		"awards": [{
			"id": "213500515000192018tet01",
			"description": "TRAVAUX DE SIGNALISATION VERTICALE ET HORIZONTALE ET POSE DE MOBILIER URBAIN 2018/2021",
			"status": "active",
			"date": "2018-10-04T00:00:00+02:00",
			"value": {
				"amount": 200000,
				"currency": "EUR"
			},
			"suppliers": [{
				"name": "ESVIA SAS",
				"id": "32902082000042"
			}],
			"items": [{
				"id": "1",
				"description": "TRAVAUX DE SIGNALISATION VERTICALE ET HORIZONTALE ET POSE DE MOBILIER URBAIN 2018/2021",
				"classification": {
					"scheme": "CPV",
					"id": "34942000-2"
				}
			}],
			"contractPeriod": {
				"startDate": "2018-10-04T00:00:00+02:00",
				"durationInDays": 366
			},
			"amendments": [{
				"#comment": "content of moficiations/modification (last, if any)"
			}]
		}],
		"language": "fr"
	}]
}

The actual data I used to make the OCDS sample:

    {
    	"id": "2018V18044",
    	"uid": "214900995000172018V18044",
    	"acheteur": {
    		"id": "21490099500017",
    		"nom": "VILLE DE CHOLET"
    	},
    	"_type": "Marché",
    	"nature": "Accord-cadre",
    	"objet": "TRAVAUX DE SIGNALISATION VERTICALE ET HORIZONTALE ET POSE DE MOBILIER URBAIN 2018/2021",
    	"codeCPV": "34942000-2",
    	"procedure": "Procédure adaptée",
    	"lieuExecution": {
    		"code": "49321",
    		"typeCode": "Code postal",
    		"nom": "CHOLET CEDEX"
    	},
    	"dureeMois": 12,
    	"dateNotification": "2018-10-04+02:00",
    	"datePublicationDonnees": "2018-10-10+02:00",
    	"montant": 200000,
    	"formePrix": "Révisable",
    	"titulaires": [{
    		"typeIdentifiant": "SIRET",
    		"id": "32902082000042",
    		"denominationSociale": "ESVIA SAS"
    	}],
    	"modifications": []
    }