Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Detailed transaction, budget, external budget data linkages #483

Closed
timgdavies opened this issue Jun 22, 2017 · 16 comments
Closed

Detailed transaction, budget, external budget data linkages #483

timgdavies opened this issue Jun 22, 2017 · 16 comments
Labels
Focus - Extensions Relating to new or proposed extensions, or the governance and maintenance of extensions

Comments

@timgdavies
Copy link
Contributor

Primary use case

A publisher wants to indicate the budget line that a transaction was paid from.

Considerations

A budget line may not have a clear unique identifier or URI. Where no unique identifier is available, budget lines may be identified by a range of classifications, including:

  • Administrative classifications;
  • Economic classifications; and
  • Funcational classifications

If these are repeated in each transaction, we risk a lot of 'bloat' within a dataset.

A single transaction may be funded by more than one budget item.

Related issues

#432 looks at providing a fundingSource issue at the line-item level

#460 addresses the need to make sure the definition of budget/amount covers 'amount assigned to this project', not overall budget value

#400 on separating out project value from budget value

#345 on removing links to the Fiscal Data Package at URI level

Modelling proposal

Using the budget breakdown extension a publisher can provide a list of identifiers for budget lines (budgetBreakdown/0/id) and the amount allocated to this contracting process from that budget line.

The budget breakdown extension can be further extended to provide classification information for each entry in the breakdown.

Transactions can then include a budgetSource array providing internal cross-references back to the budgetBreakdown items.

Example

The example below mocks up a project which is funded through two budget lines. Each budget line is identified in the budget breakdown section. There is a single transaction, paid for 50% out of one budget line, and 50% out of the other.

{
  "releases": [
    {
      "planning": {
        "budget": {
          "period": {
            "startDate": "2016-01-01T00:00:00Z",
            "endDate": "2016-12-31T00:00:00Z"
          },
          "id": "ocds-exa123-72856037693",
          "description": "string",
          "amount": {
            "amount": 300000,
            "currency": "GBP"
          }
        },
        "budgetBreakdown": [
          {
            "id": "0023/loc/health/cap",
            "description": "Budget contribution from the local government",
            "amount": {
              "amount": 150000,
              "currency": "GBP"
            }
          },
          {
            "id": "10.24/nat/cycl/prj",
            "description": "Budget contribution from the national government",
            "amount": {
              "amount": 150000,
              "currency": "GBP"
            }
          }
        ]
      },
      "contracts": [
        {
          "id": "ocds-exa123-72856037693-contract",
          "awardID": "ocds-exa123-72856037693-award",
          "implementation": {
            "transactions": {
              "id": "ocds-exa123-72856037693-transaction-01",
              "value": {
                "amount": "10000",
                "currency": "GBP"
              },
              "budgetSource": [
                {
                  "budgetBreakdownID": "0023/loc/health/cap",
                  "proportion": 0.5
                },
                {
                  "budgetBreakdownID": "10.24/nat/cycl/prj",
                  "proportion": 0.5
                }
              ]
            }
          }
        }
      ]
    }
  ]
}

Then within the budget breakdown we could then include an array of classifications and optional uri. I've based the example below on random data from the UK OSCAR in year data release as I'm no expert on budget categories. I've also included a classification type property with a codelist based on the classification fields in the Fiscal Data Package.

{
  "budgetBreakdown": [
    {
      "id": "0023/loc/health/cap",
      "description": "Budget contribution from the local government",
      "amount": {
        "amount": 150000,
        "currency": "GBP"
      },
      "uri":"http://example.com/AME/DEPT_AME/DCMS/X048A105/A101/RESOURCE"
      "classifications": [
        {
          "code": "Control Budget Code",
          "value": "AME",
          "type": "economic"
        },
        {
          "code": "Control Budget Detail Code",
          "value": "DEPT AME",
          "type": "administrative"
        },
        {
          "code": "Segment Department Long Name",
          "value": "Department for Culture, Media and Sport",
          "type": "administrative"
        },
        {
          "code": "Sub Segment Code",
          "value": "X048A105",
          "type": "administrative"
        },
        {
          "code": "Economic Category Code",
          "value": "A101",
          "type": "functional"
        },
        {
          "code": "Economic Budget Code",
          "value": "RESOURCE",
          "type": "functional"
        }
      ]
    }
  ]
}

Additional use cases and approaches

Scenario: A user wants to reconcile spending transactions against original budget lines.

Approach:

  • Find the budgetSourceID for each transaction
  • Reconcile this against the budgetBreak by id classifications
  • Use the budgetBreakdown classifications or uri to match against budget lines in an external budget database

From this, it is possible to see:

  • What is the budget line amount in a budget dataset;
  • What proportion of the budget was allocated to this contracting process;
  • What proportion of the allocated budget has been spent;

Issues and questions

  • Are there other use cases we need to consider here?
  • Does this model work for the source data held by government systems?
  • Is this cross-reference model appropriate?
  • Are there other ways we should align with the Fiscal Data Package?
@duncandewhurst
Copy link
Contributor

Expanding a little on the modelling of budget classifications I have been taking a look at Mexico's Open Fiscal Data Package pipeline along with a randomly selected budget line from the Transparencia Presupuestaria OFDP site to see whether the budget classifications used there could be represented using the model proposed by Tim.

I'm proposing a slightly different modelling which:

  • Attempts to make clear the difference between the title of the classification or codelist (e.g. 'Institutional Activity') vs the description of the code from that classification (e.g. 'Administrative support services')
  • Supports disclosure of both the actual classification code and the title/description of the code
  • Includes an ID for the items in the array for versioning

Proposed modelling

"classifications": [
	{
    	"id": "GPO_FUNCIONAL",
        "type": "functional",
        "title": "Grupo Funcional",
        "code": {
        	"value": "1",
            "description": "Gobierno"
        }
    },
	{
    	"id": "FUNCION",
        "type": "functional",
        "title": "Función",
        "code": {
        	"value": "2",
            "description": "Justicia"
        }
    },
	{
    	"id": "SUBFUNCION",
        "type": "functional",
        "title": "Subfunción",
        "code": {
        	"value": "4",
            "description": "derechos Humanos"
        }
    },
	{
    	"id": "AI",
        "type": "functional",
        "title": "Actividad Institucional",
        "code": {
        	"value": "2",
            "description": "Servicios de apoyo administrativo"
        }
    },
	{
    	"id": "CAPITULO",
        "type": "economic",
        "title": "Capítulo",
        "code": {
        	"value": "3000",
            "description": "Servicios generales"
        }
    },
	{
    	"id": "CONCEPTO",
        "type": "economic",
        "title": "Concepto",
        "code": {
        	"value": "3300",
            "description": "Servicios profesionales, científicos, técnicos y otros servicios"
        }
    },
	{
    	"id": "PARTIDA_GENERICA",
        "type": "economic",
        "title": "Partida Genérica",
        "code": {
        	"value": "339",
            "description": "Servicios profesionales, científicos y técnicos integrales"
        }
    },
	{
    	"id": "PARTIDA_ESPECIFICA",
        "type": "economic",
        "title": "Partida Específica",
        "code": {
        	"value": "33901",
            "description": "Subcontratación de servicios con terceros"
        }
    },
	{
    	"id": "RAMO",
        "type": "administrative",
        "title": "Ramo",
        "code": {
        	"value": "47",
            "description": "Entidades no Sectorizadas"
        }
    },
	{
    	"id": "UR",
        "type": "administrative",
        "title": "Unidad Responsable",
        "code": {
        	"value": "AYJ",
            "description": "Comisión Ejecutiva de Atención a Víctimas"
        }
    },    	
]

There are also a number of other categorizations of the budget lines in the Mexico data, which could be expressed as part of a classifications array as follows

"classifications": [
	{
    	"id": "ENTIDAD_FEDERATIVA",
        "type": "geographical",
        "title": "Entidad Federativa",
        "code": {
        	"value": "9",
            "description": "Ciudad de México"
        }
    },
	{
    	"id": "FF",
        "type": "Fuente de Financiamiento",
        "title": "financialSource",
        "code": {
        	"value": "1",
            "description": "Recursos fiscales"
        }
    },
	{
    	"id": "MODALIDAD",
        "type": "activity",
        "title": "Modalidad",
        "code": {
        	"value": "M",
            "description": "Apoyo al proceso presupuestario y para mejorar la eficiencia institucional"
        }
    },
	{
    	"id": "PP",
        "type": "activity",
        "title": "Programa Presupuestario",
        "code": {
        	"value": "1",
            "description": "Actividades de apoyo administrativo"
        }
    },
	{
    	"id": "TIPOGASTO",
        "type": "expenditureType",
        "title": "Tipo de Gasto",
        "code": {
        	"value": "1",
            "description": "Gasto corriente"
        }
    },
]

Issues and questions

Further to Tim's questions, I'd like to understand whether including these additional types of classification is:

a. necessary to identify budget lines
b. useful for data users
c. appropriate to include in the classifications array

@timgdavies
Copy link
Contributor Author

Is there a strong reason to nest code and description together?

Why not:

{
        "id": "TIPOGASTO",
        "code":"1",
        "type": "expenditureType",
        "title": "Tipo de Gasto",
        "description": "Gasto corriente"
}

And we might even find that code and id could be merged, meaning that all we need to do is introduce a description field here?

@duncandewhurst
Copy link
Contributor

Is there a strong reason to nest code and description together?

There are two possible sets of ids/titles/descriptions in use here:

  1. The id/title/description of the classification as a whole (e.g. Institutional activity)
  2. The id/title/description of the code drawn from the classification (e.g. Administrative Support Services, Public Service and Good Governance etc.)

So the the value and description nested under code belong to the code drawn from the classification, whilst the id and title nested under classification belong to the classification as a whole.

Suggestions on better naming conventions welcome, does talking about a value drawn from a classification make more sense?

Example - budget line A:

"classifications": [
    {
        "id": "institutionalActivity",
        "type": "functional",
        "title": "Institutional Activity",
        "value": {
            "code": "2",
            "description": "Administrative support services"
            }
    }
]

Example - budget line B:

"classifications": [
    {
        "id": "institutionalActivity",
        "type": "functional",
        "title": "Institutional Activity",
        "value": {
            "code": "3",
            "description": "IT services"
            }
    }
]

@timgdavies
Copy link
Contributor Author

Thanks for the clarification.

I've been looking at the Fiscal Data Package (http://specs.frictionlessdata.io/fiscal-data-package/#examples) and Open Spending (http://docs.openspending.org/en/latest/) for terminology precedents to use here. I didn't find anything solid, but the one term that did come up was 'dimension'.

That could be useful in place of 'title', so we say type, dimension, value/code and value/description.

Reviewing the merging guidance I think we would want to treat the value of a classifications array as wholeListMerge so could omit the id values from within the objects.

@transpresupuestaria
Copy link

transpresupuestaria commented Jul 21, 2017

Following up on several conversations with Duncan from the helpdesk we wanted to add some documentation to the way we at Mexico’s Ministry of Finance are modelling the link between the OCDS and the Open Fiscal Data Standard (OFDS):
The same Budget can be published using different classifications that give us more information on how public money is being spent. In Mexico we mainly use the following three (there can also be a geographical classification, etc.):

  • Functional Classification: tells you what you are spending for (governmental functions, development functions, etc.).
  • Administrative Classification: tells you who is spending the money (Ministry of the Interior, Health Department, etc.).
  • Economic Classification: tells you in what are you spending the money (Public Infrastructure, public services, salaries, etc.).

Each classification has concepts that relate hierarchically. For example, the Economic classification has 4 concepts from which “Partida Específica” is the most disaggregated one. But in order to have a “Partida Específica” you first need to have a “Partida Genérica” a “Concepto” and a “Capítulo”.
The OFDS allows us to specify a “Classification” and the concepts that belong to it. These concepts are arranged by “levels” in which “level 1” is the most aggregated and the last level declared is the most disaggregate. Here is an example of the Mexican case for the Economic classification (find in red the level -1- which belongs to the most aggregated level of information –Capítulo-):

Economic Classification

Economic.txt

 
Following this model, we are adapting the OCDS structure to:

  1. Define the Budget ID and Description: in the Mexican case, we choose to use the ID and Description of our Budget program since it allows us to easily connect the information with other of our platforms.
  2. Use an array to specify in which classification you’re expressing the Budget. In our case, we plan to use “economic” and “administrative” classification.
  3. Specify an ID, a label and a value form the concept you´re using inside the classification.
  4. Express the amount of the Budget (according to the classification) using accruing accounting moments. For this last specification, in the OFDS we specified “Measures” that will serve as “Parameters” to express the monetary value of each classification.

Measures

Measures.txt

Proposed structure for budgetBreakdown

Find hereby an example of our proposed structure to integrate OFDP with OCDS, within the OCDS structure:

budgetBreakdown.txt

It’s important to mention that Classification needs to be arrays since a single Budget can be expressed in several ones.

Also, you can take a detailed look to our proposal in this Google Drive link:
https://docs.google.com/spreadsheets/d/1QXq_0jKJTQgV9zXGKwOsM5LQF3AedqlMDIemDIpWK_I/edit#gid=2080291852

@timgdavies
Copy link
Contributor Author

@transpresupuestaria Thank you for sharing this: it's really useful to see.

I'm pasting in your budgetBreakdown.txt example below for others reading this thread, and will add some comments to check my understanding.

"budgetBreakdown": [
              {
                "id": "09G001",
                "description": "RegulaciÛn y supervisiÛn del programa de protecciÛn y medicina preventiva en transporte multimodal",
                "budgetClassification": [
                  {
                    "classification": "administrative",
                    "levelId": 2,
                    "levelLabel": "Unidad Responsable",
                    "id": 313,
                    "description": "DirecciÛn General de ProtecciÛn y Medicina Preventiva en el Transporte",
                    "measures": [
                      {
                        "id": "Comprometido",
                        "value": [
                          {
                            "amount": 20509,
                            "currency": "MXN"
                          }
                        ]
                      },
					  {
                        "id": "Devengado",
                        "value": [
                          {
                            "amount": 20509,
                            "currency": "MXN"
                          }
                        ]
                      },
					  {
                        "id": "Ejercido",
                        "value": [
                          {
                            "amount": 20509,
                            "currency": "MXN"
                          }
                        ]
                      },
					  {
                        "id": "Pagado",
                        "value": [
                          {
                            "amount": 20509,
                            "currency": "MXN"
                          }
                        ]
                      },
                    ]
                  },
				  
                  {
                    "classification": "economic",
                    "levelId": 4,
                    "levelLabel": "Partida EspecÌfica",
                    "id": 35701,
                    "description": "Mantenimiento y conservaciÛn de maquinaria y equipo",
                    "measures": [
                      {
                        "id": "Comprometido",
                        "value": [
                          {
                            "amount": 20509,
                            "currency": "MXN"
                          }
                        ]
                      },
                      {
                        "id": "Devengado",
                        "value": [
                          {
                            "amount": 20509,
                            "currency": "MXN"
                          }
                        ]
                      },
                      {
                        "id": "Ejercido",
                        "value": [
                          {
                            "amount": 20509,
                            "currency": "MXN"
                          }
                        ]
                      },
                      {
                        "id": "Pagado",
                        "value": [
                          {
                            "amount": 20509,
                            "currency": "MXN"
                          }
                        ]
                      }
                    ]
                  }
                ]
              }
            ]

Observations

Observation 1: sections

The measures (translated as Comprometido = Committed; Devengado = Accrued; Ejercido = Exercised; Pagado = Paid) represent the different states that a budgetary commitment goes through.

In OCDS core we have support for two of these concepts:

  • Committed - planning/budget/amount
  • Paid - the sum of contract/implementation/transactions/value

For conformance, and so that tools expected OCDS core data can interpret the data, the paid information should go into contract/implementation/transactions.

Conceptually, it doesn't seem right to have amounts paid in the OCDS planning section.

Observation 2: structure

These are in the form of questions:

  • Are there cases in which the values of Comprometido, Devengado, Ejercido, Pagado would be different for different classifications?

E.g. would there ever be a case where the amounts in the second entry in the budgetClassification array above (the administrative classification) had measures with a value amount of '1000' whilst the first (the economic classification) budgetClassification had measures with a value amount of '20509'?

If the answer is no, then we seem to be duplicating a lot of information that could be expressed at the budgetBreakdown object level.

  • Are there cases where there will be measures other than Comprometido, Devengado, Ejercido, Pagado?

If not, then it may be sensible to create specific properties for these concepts, rather than to abstract them out. E.g.

{
  "valueCommitted":{
       "amount":20509,
       "currency":"MXN"
  },
 "valueAccrued":{
       "amount":20509,
       "currency":"MXN"
  },
 "valueExcercised":{
       "amount":20509,
       "currency":"MXN"
  }
}

This will be easier for users engaging with the data in spreadsheets to process (as each one would become a column, rather than normalised sub-tables to analyse). This would also allow each concept to be clearly defined.

Observation 3: Compatibility

Even if you do have a deeper breakdown of the nature of the budget measures, the committed amount should still be included at the budgetBreakdown level, so that any tool that is not aware of the additional detail can still meaningfully understand the amount of budget dedicated to a contract.

Term suggestions

Some minor suggestions for consistency with how OCDS terminology usually works:

  • budgetClassification should be plural (budgetClassifications)
  • levelID could just be level

Related Issues

Are the amounts in your example the amounts reserved for the specific contracting process or for the whole budget line? We have an open issue #460 on the definition of budget.amount where it would be great to get your input.

Our strong working assumption is that budget.amount in OCDS should be the amount specifically reserved for the particular contracting process described, with higher-level budget information in separate datasets.

@juanpane
Copy link

juanpane commented Aug 2, 2017

Hi all:
I’ll try to comment on some issues:

Budget line classification.

Considering the comment about hierarchical classifications, what I’ve see in the budget dataset from Paraguay, and also from Argentina and Honduras, normally there are several hierarchical classifications in the budget. For instance, in the data dictionary from Paraguay we can see that there are these hierarchies:

  • Nivel, Entidad, Unidad responsable (level, entity-institution, responsible unit)
    • 12 - PODER EJECUTIVO
    • 11 - MINISTERIO DE INDUSTRIA Y COMERCIO
    • 5 - SERVICIO DE PROMOCIÓN ARTESANAL
  • Programa, sub-programa, proyecto (program, sub-program, project)
  • Grupo objeto de gasto, sub-grupo objeto de gasto, objeto de gasto
    • 100 - SERVICIOS PERSONALES
    • 140 - PERSONAL CONTRATADO
    • 145 - HONORARIOS PROFESIONALES
  • Finalidad, función, sub-función
    • 400 - SERVICIOS ECONOMICOS
    • 470 - COMERCIO, ALMACENAJE Y TURISMO
    • 472 - TURISMO

As we can see, some of them are obvious given the encoding, but some other are not.

Perhaps we can think about adding a “parent” attribute used in Fiscal Data Package?

This would mean something like this:

"classifications": [
    {
        "id": "GrupoObjetoGastos",
        "type": "XXX",
        "title": "Grupo objeto de gastos",
        "description": "Representa el identificador y la descripción del Grupo de Objeto de Gasto...",
        "value": {
            "code": "100",
            "description": "SERVICIOS PERSONALES"
            }
    },
    {
        "id": "SubGrupoObjetoGastos",
        "type": "XXX",
        "title": "Sub Grupo objeto de gastos",
        "parent": "GrupoObjetoGastos",
        "description": "Representa el identificador y la descripción del Subgrupo de Objeto de Gasto...",
        "value": {
            "code": "140",
            "description": "PERSONAL CONTRATADO"
            }
    },
    {
        "id": "ObjetoGastos",
        "type": "XXX",
        "title": "Objeto de gastos",
        "parent": "SubGrupoObjetoGastos",
        "description": "Corresponde a la descripción del objeto de gasto…..",
        "value": {
            "code": "145",
            "description": "HONORARIOS PROFESIONALES"
            }
    }
]

Notes:

Considering the transaction blocks

When referencing the budget line by budgetBreakdownID, besides (or instead) of defining which “proportion” of the payment was done using the referenced budget line, it would be good to defined the actual amount that was used for performing the transaction, for each budget line.

This could be particularly important when paying large amounts of money, and therefore, specifying the proportions in terms of real numbers might not always give the exact amount of the budget line used (think about paying 9000 USD, and using 2 budget lines with 3000 USD and 6000 USD for each line, the proportions have infinite decimals. Note that if we use 0.33 for the proportion of first budget line this would mean 2970 USD instead of 3000 USD).

The json file could look something like this:

"contracts": [
        {
          "id": "ocds-exa123-72856037693-contract",
          "awardID": "ocds-exa123-72856037693-award",
          "implementation": {
            "transactions": {
              "id": "ocds-exa123-72856037693-transaction-01",
              "value": {
                "amount": "9000",
                "currency": "GBP"
              },
              "budgetSource": [
                {
                  "budgetBreakdownID": "0023/loc/health/cap",
                  "proportion": 0.33333333,
                  "amount": “3000”
                },
                {
                  "budgetBreakdownID": "10.24/nat/cycl/prj",
                  "proportion": 0.66666666,
                  "amount": “6000”
                }
              ]
            }
          }
        }
      ]

@transpresupuestaria
Copy link

Hey @timgdavies , thanks for the feedback.

Regarding your questions and observations:

1: sections.

  • We are not considering using the planning/budget/amount because: a) national budget planning is not made in a per contract basis but rather per budgetary program, and b) multiple programs and line items can be the financial source for the same contract, so we need to disaggregate the information. We have not found an example of a country that allocates resources to all contracts on their budget planning stage but please do let us know of any relevant example on this topic you have encountered. Therefore it is more conceptually correct for us to use the budget breakdown to integrate such measures.
  • For the planning stage the correct measure to use would be the “Aprobado” (approved budget) rather than the “comprometido”.
  • All the measures, but the “aprobado” belong to the implementation stage of a contract.
  • Regarding “Pagado” we’re using information reported in our main accounting systems, disaggregated up until “Partida Específica”, which is the most disaggregated level of information according to the IMF and complies with the Open Fiscal Data Standard. Besides, we found in the Open Data Barometer (http://opendatabarometer.org/?_year=2016&indicator=ODB), published by the World Wide Foundation that other top-ranked countries provided analog information for their spending data. For example, Uruguay had the following link http://agev.opp.gub.uy/advni/documentos/uy_credito_presupuestal_detalle.zip . There, alongside with several catalogs the cssv “uy_credito_presupuestal_detalle” provides information analog to our Partida Específica.

2: Structure.

  • Are there cases in which the values of Comprometido, Devengado, Ejercido, Pagado would be different for different classifications?

Even though different classification express the same value, their specific concepts can have different values as shown in the following example:

        "budgetBreakdown": [
          {
            "id": "09G002",
            "description": "Supervisión, inspección y verificación del transporte terrestre, marítimo y aéreo",
            "budgetClassification": [
              {
                "classification": "administrative",
                "levelId": 2,
                "levelLabel": "Unidad Responsable",
                "id": 310,
                "description": "Dirección General de Aeronáutica Civil",
                "measures": [
                  {
                    "id": "Comprometido",
                    "value": [
                      {
                        "amount": 4924.08,
                        "currency": "MXN"
                      }
                    ]
                  },
				  {
                    "id": "Devengado",
                    "value": [
                      {
                        "amount": 4924.08,
                        "currency": "MXN"
                      }
                    ]
                  },
				  {
                    "id": "Ejercido",
                    "value": [
                      {
                        "amount": 4924.08,
                        "currency": "MXN"
                      }
                    ]
                  },
				  {
                    "id": "Pagado",
                    "value": [
                      {
                        "amount": 4924.08,
                        "currency": "MXN"
                      }
                    ]
                  },
                ]
              },
			  {
                "classification": "administrative",
                "levelId": 2,
                "levelLabel": "Unidad Responsable",
                "id": 312,
                "description": "Dirección General de Autotransporte Federal",
                "measures": [
                  {
                    "id": "Comprometido",
                    "value": [
                      {
                        "amount": 70145,
                        "currency": "MXN"
                      }
                    ]
                  },
				  {
                    "id": "Devengado",
                    "value": [
                      {
                        "amount": 70145,
                        "currency": "MXN"
                      }
                    ]
                  },
				  {
                    "id": "Ejercido",
                    "value": [
                      {
                        "amount": 70145,
                        "currency": "MXN"
                      }
                    ]
                  },
				  {
                    "id": "Pagado",
                    "value": [
                      {
                        "amount": 70145,
                        "currency": "MXN"
                      }
                    ]
                  },
                ]
              },
			  {
                "classification": "administrative",
                "levelId": 2,
                "levelLabel": "Unidad Responsable",
                "id": 511,
                "description": "Dirección General de Autotransporte Federal",
                "measures": [
                  {
                    "id": "Comprometido",
                    "value": [
                      {
                        "amount": 42066,
                        "currency": "MXN"
                      }
                    ]
                  },
				  {
                    "id": "Devengado",
                    "value": [
                      {
                        "amount": 42066,
                        "currency": "MXN"
                      }
                    ]
                  },
				  {
                    "id": "Ejercido",
                    "value": [
                      {
                        "amount": 42066,
                        "currency": "MXN"
                      }
                    ]
                  },
				  {
                    "id": "Pagado",
                    "value": [
                      {
                        "amount": 42066,
                        "currency": "MXN"
                      }
                    ]
                  },
                ]
              },				  
              {
                "classification": "economic",
                "levelId": 4,
                "levelLabel": "Partida Específica",
                "id": 35701,
                "description": "Mantenimiento y conservación de maquinaria y equipo",
                "measures": [
                  {
                    "id": "Comprometido",
                    "value": [
                      {
                        "amount": 117135.08,
                        "currency": "MXN"
                      }
                    ]
                  },
                  {
                    "id": "Devengado",
                    "value": [
                      {
                        "amount": 117135.08,
                        "currency": "MXN"
                      }
                    ]
                  },
                  {
                    "id": "Ejercido",
                    "value": [
                      {
                        "amount": 117135.08,
                        "currency": "MXN"
                      }
                    ]
                  },
                  {
                    "id": "Pagado",
                    "value": [
                      {
                        "amount": 117135.08,
                        "currency": "MXN"
                      }
                    ]
                  }
                ]
              }
            ]
          }
        ]

This example shows the behavior of the different measures for the same contract which is being implemented by three organizations (admin. Classification), yet all of them are using the same line item (economic classification). As you can see, there is no duplication of information.

  • Are there cases where there will be measures other that Comprometido, Devengado, Ejercido and Pagado?

Comprometido, Devengado, Ejercido and Pagado are some of the accruing moments specified by our law. However, other countries can have different concepts or names for their accruing moments. That is why the Open Fiscal Data Standard only asks for “Measures” to express the monetary value of their classification, and each country can use their own.

3: Compatibility.

Does the above comments about the committed amount clarifies this point? If not, do you have an example of how would what you are proposing would look like?

Term suggestions

We’re Ok with your terminology suggestions.

Related issues:

We’ll be participating in issue #460 but we plant to leave planning/budget/amount empty since:

  • The national budget planning is organized by programs, not by contracts. We have contracts and contract information once there is an amount from a budget program which is committed to pay for the goods or services stated in such contract. For our case the work-assumption would not be reflecting of reality but we do think that the model of the budget-breakdown states information which is accurate and useful in a per contract analysis.
  • There can be more than one budget program or line item financing a contract.

Comments on Juan Pane Intervention.

It seems that the example given by @juanpane is similar to our budget classifications:

  • Nivel, Entidad and Unidad Responsable seems as our Administrative Classification.
  • Grupo objeto de gasto, sub-grupo objeto de gasto, objeto de gasto seems as our Economic Classification.
  • Finalidad, Función and Subfunción seems as our Functional Classification.

However, our idea would be not to repeat all the concepts in each classification, but only include the most disaggregated one and have the others stay in the Open Fiscal Data Standard information in order not to duplicate information between standards. That is why, instead of using a parent code we specify a level so that the user can know the level of disaggregation used for each classification.

@juanpane
Copy link

juanpane commented Aug 2, 2017

considering the last comment from @transpresupuestaria

However, our idea would be not to repeat all the concepts in each classification, but only include the most disaggregated one and have the others stay in the Open Fiscal Data Standard information in order not to duplicate information between standards.

This would be great, as long as the user of the data has a way to automatically reaching that information from the data being consumed, for instance, by the URI of the budget line, where the parent concepts are shown when the URI is resolved.

@juanpane
Copy link

juanpane commented Aug 3, 2017

Different phases of budget execution and contracts:

Different countries have different (but similar) phases for managing the impact of a procurement process in the National Budget. I’ll try to do my best to try to explain (a simplified version) of 2 countries, Paraguay and Honduras.

Paraguay

In Paraguay these are the phases:

  • Previsto (expected budget): When a planning is done (PAC: plan anual de contrataciones), and as a pre-requisite for issuing the tender, the contracting institution has to obtain from the SIAF system (Sistema Integrado de Administración Financiera), managed by the Ministry of Finance of Paraguay (Ministerio de Hacienda), a Certificate for Budget Availability (CDP: certificado de disponibilidad presupuestaria). This checks whether the institution still has money left for spending in the budget lines that are to be used in the procurement process. The CDP contains a reference to the budget line, and the amount of money it is expected to be spent for this particular procurement process. Note that depending on the items expected to be procured, a CDP can reference several budget lines, for instance, because the procurement is for the construction of a new Datacenter, which requires construction, hardware, internet, etc, all belonging to different parts of the economic classification.
  • Comprometido (committed budget): Once the procurement has been awarded and a contract signed, the exact amount of money from each budget line is said to be dedicated specifically for honoring the contract (as long as the provider honours its side for the contract). Note that the amounts for each budget line may vary from the CDP, because for example, the procurement process expected to spend 100USD in hardware, but a cheaper bid was awarded. In the paraguayan case, the data from the CDP changes and its status too, from “expected” to “committed”. At this stage the SIAF system contains the relation between a particular contract and the budget lines to be used for paying the contract. The contract code (CC) is the one issued by the National Procurement Agency in Paraguay (DNCP). Note that without this CC no payment can be done for a contract, which means that if the payment has to be done via SIAF, the procurement process has to be done via DNCP.
  • Obligado (committed payment): When the provider starts delivering what is defined in the contract, they present a bill (and many other documentation) for getting paid, according to the payment modalities defined in the contract. Note that from this point forward, the amounts refer to what has to be paid, which normally is less that what is committed in the budget for the whole contract, for instance, because a contract has a monthly payments. This step adds extra information such as the bill number and other details. All these payment information is stored in the SIAF system in Paraguay.
  • Pagado (transferred): In Paraguay all payments for procurement processes are done using a wire transfer from the bank account of the paying institution, to the bank account of the provider. Each wire transfer to a provider can potentially group several of its pending payments. Paraguay plans to publish details of the wire transfers such as the dates when the transfer was ordered, and the date when the transfer was actually performed.

Note that the first two refer to the budget line or budget lines for the procurement process as a whole, while the latter two refer to the payments.

Honduras

In Honduras, there are 3 steps related to the budget for managing a procurement process, all of which are also managed in the SIAFI of the Ministry of Finance of Honduras.

  • Pre-compromiso (expected budget): When issuing a tender, the budget line and the amount that is expected to be spent is defined in the pre-compromiso of form F-01 of SIAFI. This reserves the amount of money for the particular procurement process.
  • Compromiso (committed budget): When the contract is signed, the exact amount for each budget line for the contract is loaded into SIAFI. Each “compromiso” points to its parent “pre-compromiso”, i.e., one cannot commit a budget that has not previously been defined as “expected”. The “compromiso” contains the relation between which budget line will be used for paying which contract, using the ONCAE contract code. ONCAE is the national public procurement agency in Honduras.
  • Devengado (payment information): Once the payment is needed, the payment information is also loaded into SIAFI and the corresponding payment is performed. Each “devengado” needs to reference its parent “compromiso”.

Summary

There seems to be a similar terminology/concepts in managing the budget lines and the payment information that is related to the budget lines. I’ll try to summarize the concepts and their relations for each country

Country Expected budget Committed budget (or approved budget) Committed payment actual payment (money transfer)
Paraguay previsto, CDP comprometido obligado pagado
Honduras pre-compromiso compromiso devengado --
Mexico comprometido? devengado, ejercido? pagado

Note that in the Mexican case I’m not sure, as I haven’t found an explanation of what each phase (Comprometido, Devengado, Ejercido, Pagado) means or imply. @transpresupuestaria, could you be so kind to explain these concepts?

Use case

Some ideas come to mind for using this information:

  • With the committed budget information and the information of the whole national budget one could estimate the remaining budget for each budget line
  • With the detailed information about the different phases of the payment, the provider could check the status of its pending payments.
  • With details about the bill date and the actual payment (e.g., a wire transfer), one could compute the average time that it takes to actually pay the providers, and with other macroeconomic information such as inflation and interest rates, one could estimate how much this delay affects financially (the cash flow) the providers, and check whether savings could be made by shortening the payment processes. This is something that I've be interested in exploring.

@duncandewhurst
Copy link
Contributor

@transpresupuestaria @juanpane thanks both for your contributions on this issue

This is has been really useful to surface a couple of different understandings of the use of budget and budgetBreakdown in OCDS.

My understanding from the discussion so far is as follows:

  • In the cases referred to in Paraguay and Honduras the budget being described is the amount reserved for the individual contracting process

  • In the case described in Mexico, all four stages of the budget relate to the national budget program rather than the amount reserved for the individual contracting process.

Since an OCDS release is designed to represent information about an individual contracting process, and further to the discussion in #460, niether budget or budgetBreakdown should be used to represent amounts from the national budget, rather this information should be linked to from the budget and transactions sections of the schema.

@jpmckinney jpmckinney added the Focus - Extensions Relating to new or proposed extensions, or the governance and maintenance of extensions label Aug 7, 2017
@transpresupuestaria
Copy link

@duncandewhurst thanks for your comments.

In the case described in Mexico, all four stages of the budget relate to the national budget program rather than the amount reserved for the individual contracting process.

• Only the accruing momento “Aprobado” refers to the the whole Budget program as it appears in the Presupuesto de Egresos de la Federación, which is the national government’s main planning document.
• Even though “budget” uses the accruing moment “Aprobado” in the plannning section, the Budget breakdown extension allows to disaggregate the information by:
o The specific parties whose Budget will be used to pay for the contract.
o The specific line items that are going to be spent on.
• Mexico’s accruing moments Comprometido, Devengado, Ejercido and Pagado refer to an individual contracting process, not to the whole national Budget program.

So, the story we’re trying to tell go as follows:

  • Each year Mexico’s national government plan how to spend its money for the following year.
  • In order to allocate the money, Mexico’s national government uses “Budget Programs” which allows to allocate money to solve specific problems and achieve national objectives. This planning document also specifies, per Budget Program, whose spending the money, what is the objective and what is being spent on.
  • The approved budget for a program is planned according to estimations made by the national government about its annual income. However, there may be internal or external factors that affect those estimations (such as increases or decreases of international oil prices) that will generate budget cuts or expansions (modifications). Therefore, we will also include the accruing moment “Modificado” which shows these deviations from the initial yearly planning.
  • Each Budget Program will be published with its URL to Mexico’s Budget Transparency Portal so the user can know which are the objectives of the Budget program, which are the indicators used to measure their performance and which is their monthly advance. Reversely in the “programs” section you will be able to see all the contracts per program therefore linking the budgetary information as in the Open Fiscal Data Package with performance information, with the OCDS.
  • The Budget Breakdown extensions in the contracts implementation stage is used to specify all the accruing moments (Comprometido, Devengado, Ejercido and Pagado) of the money used for a specific contact.

In the case described in Mexico, all four stages of the budget relate to the national budget program rather than the amount reserved for the individual contracting process.

Up until now, we’ve been under the impression that “budget” is a block used in the planning stage (“planning/budget”). Even though the accruing moments specified by @juanpane all refer to an individual contracting process, it’s not clear why would they belong to a planning stage of the Budget. The “Expected Budget” seems more as a pre-requisite for committing Budget than an amount that has been reserved for a contract since an early planning stage. @juanpane can you please point us out to a specific data set to locate where we can locate the “planning” info per contract? If you could also help us with a bit of instructions on navigating it once you point it out it would be awesome.

Answering to @juanpane, our accruing moments would fit as follows (for more information, you can find our data dictionary here):

Country Approved Budget (Planning) Expected budget Committed budget (or approved budget) Committed payment Pre-payment actual payment (money transfer)
Paraguay   previsto, CDP comprometido obligado   pagado
Honduras   pre-compromiso compromiso devengado   --
Mexico Aprobado/Modificado (Budget program per Responsible Unit and Line Item). "Suficiencia Presupuestaria" (This isn't an accruing moment, rather a concept that proves that a party has the necessary funds to pay for a contract). Comprometido (Per specific contract). Devengado (Per specific contract). Ejercido (Per specific contract). Pagado (Per specific contract).

Therefore we consider that the most appropriate way to include the “Aprobado” and “Modificado” accruing moments would be in the planning stage, this, in terms of disclosing full, linkable, information about budget and contracts in its most disaggregated form (budget line), and covering all the processes needed for procuring payments.

@juanpane
Copy link

juanpane commented Aug 10, 2017

I'm under the impression that we might be mixing things here.

OCDS deals only with a specific contracting process, and as @duncandewhurst said, when we talk about planning/budget, it refers only to the budget that we plan for a particular contracting process,

The national budget planning, which on its own its a complete different thing (although related) with its own set of rules, moments, changes, etc., is out of the scope of OCDS data, and therefore details of moments and changes for it should not be included if possible, say, if for example there is another dataset that can be referenced to, that contains all these details.

In Paraguay, all the contracting information can be found in https://contrataciones.gov.py/
The dataset for the contract plans (and all the other phases) can be found here https://contrataciones.gov.py/datos/data (check the planificaciones dataset).
The API (OCDS and non-OCDS) is available here https://www.contrataciones.gov.py/datos/api/v2/

We are right now working on publishing the detailed budget information related to the contracting process (Certificado de disponibilidad presupuestaria, pagos, etc), however, the national budget information, including the initial approved amount, all the modifications, and the amount that has been spent so far can be found here: https://datos.hacienda.gov.py/data/pgn-gasto

As I said, the national budget process itself is a complex issue, and for instance, Paraguay publishes the information on how the budget was negotiated before it was actually approved by law. You can find this information in this dataset https://datos.hacienda.gov.py/data/pgn-etapas

Note however that the national budget information is out the scope of the contracting process (as it is published by Ministerio de Hacienda) in a different portal. However, the fact that there is a URI for each budget line allows the planning/budget element of OCDS to reference to it (in Paraguay this is work in progress, as the budget lines URIs are fairly new)

I hope this helps

@transpresupuestaria
Copy link

The national budget planning, which on its own its a complete different thing (although related) with its own set of rules, moments, changes, etc., is out of the scope of OCDS data, and therefore details of moments and changes for it should not be included if possible, say, if for example there is another dataset that can be referenced to, that contains all these details.

Maybe to be clear we need to re-state the purpose of our display of the data. What we’re doing is connecting the budget information (as presented by the Open Fiscal Data Package) with the contracting process information. The budget information has two main stages to be included at:

  • Planning: The “approved” and “modified” accruing moments specify the amounts that were actually planned for a budget program, disaggregating the information up to the responsible unit that spends the money (administrative classification) and the line item it will be spent on (economic classification).
  • Implementation: “Comprometido”, “Devengado”, “Ejercido” y “Pagado” fit into the contracts implementation since these accruing moments exist until resources have been commited and allocated through a contract. These accruing moments connect with the planning information through the Program, Responsible Unit and Line Item’s code. So in each individual contract we would be specifying:
  1. The Budget Program received XXX pesos and commited XXX in this specific contract.
  2. This Responsible Unit participating in the Budget Program received XXX pesos, from which it commited XXX pesos in this specific contract.
  3. This Budget Line from the Budget Program received XXX pesos, from which it commited XXX pesos in this specific contract.

This is how we will consolidate our efforts to connect the Open Fiscal Data Standard and the Open Contracting Data Standard.

@juanpane we checked out the Paraguay’s information you kindly sent us and we found that the planning information has an estimate global amount:

image
Where does this amount come from? Is it a “pre-convocatoria” amount for the contracting process? Is it an amount that was specified since an earlier Budget planning state?

In any case, maybe it is the terminology which is confusing. We are understanding planning as the moment in which the “whom”, “what” and “where” is the money spent is defined (aprobado), BEFORE the procurement process starts (comprometido). In that same understanding, the Paraguayan example (please correct us if wrong) is including in planning an administrative pre-requisite that allows to know that there is money for that specific allocation, therefore, that there is an specific approved and/or modified budget for that contract, which in this case will be the same as we are conceptualizing it in the Mexican case.

Therefore, we believe all cases where the understanding is the same could be modelled with the model we are proposing and will accomplish to:

  • Specify multiple Budget sources for the same contract.
  • Specifiy the classification in which the Budget will be presented.
  • Specify the level of disaggregation in which the contract’s amount is expressed.
  • Use accruing moments (specific for each country) to express the different Budget moments each contract goes through from planning all the way to implementation.
  • To link with OFDP and extractive industries’ transparency standards.

What do you think @duncandewhurst @timgdavies @juanpane ?

@jpmckinney jpmckinney changed the title Extension proposal: Including detailed transaction -> contracting process budget -> external budget data linkages Extension: Including detailed transaction -> contracting process budget -> external budget data linkages Aug 26, 2017
@timgdavies
Copy link
Contributor Author

It might have been a while since this issue was updated: but we've been working on this at length - with discussions at OC Global 2017, a discussion paper prepared earlier this year, conversations with the Open Knowledge Fiscal Data Package team, and discussions at OGP Tbilisi.

The result is a draft ocds budgets and spend extension which comes with a number of worked examples to illustrate how it can operate in practice.

The issue tracker for the extension is turned on, and we would welcome feedback on it there.

@jpmckinney jpmckinney changed the title Extension: Including detailed transaction -> contracting process budget -> external budget data linkages Detailed transaction, budget, external budget data linkages Sep 18, 2018
@jpmckinney jpmckinney added Extensions - Drafted Relating to a drafted extension and removed Extensions - Drafted Relating to a drafted extension labels Nov 29, 2018
@jpmckinney
Copy link
Member

The extension has been added to the extension registry. Issues about the extension can be opened at https://github.com/open-contracting/ocds-extensions/issues

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Focus - Extensions Relating to new or proposed extensions, or the governance and maintenance of extensions
Projects
None yet
Development

No branches or pull requests

5 participants