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

Multi-year and multi-source budgets #377

Closed
timgdavies opened this issue Sep 18, 2016 · 10 comments
Closed

Multi-year and multi-source budgets #377

timgdavies opened this issue Sep 18, 2016 · 10 comments
Assignees
Labels
Focus - Extensions Relating to new or proposed extensions, or the governance and maintenance of extensions
Milestone

Comments

@timgdavies
Copy link
Contributor

This issue is under consideration for the 1.1 milestone.

It proposes creating a budgetBreakdown extension.

It builds on previous discussions in #352, #292, #222 and #293

The issue

Our current approach to budget provides a single budget.amount field to capture the total value of the budget for a contracting process.

Users want to express budgets from multiple sources, e.g. from different government departments, or in the case of PPPs and infrastructure projects, from the private sector or multi-lateral development banks.

Users also want to express multi-year budgets showing the value per year for multi-year contracts.

What we are proposing

Use budget.amount to capture the aggregate budget across all sources and years.

Extend planning with a budgetBreakdown array of budgets.

For multi-source budgets

Extend budget with an additional sourceEntity field to reference the organization providing the budget using our proposed approach to organization references (see #368).

Where planning.budgetBreakdown is used to express a budget from multiple sources then planning.budget.sourceEntity field should be omitted.

For multi-year budgets

Extend budget with an additional field period to capture the period the budget relates to.

Where planning.budgetBreakdown is used to express a multi-year budget then planning.budget.period should reflect the total period the budget covers.

Example - multi-source budgets

"planning":{
    "budget": {
        "period": {
            "startDate": "2016-01-01T00:00:00Z",
            "endDate": "2016-12-31T00:00:00Z"
        },
        "id": "string",
        "description": "string",
        "amount": {
            "amount": 300000,
            "currency": "GBP"
        }
    },
    "budgetBreakdown": [
        {
            "sourceEntity": {
                "id": "GB-LAC-E09000003-557",
                "name" : "London Borough of Barnet - Transport Services" 
            },
            "period": {
                "startDate": "2016-01-01T00:00:00Z",
                "endDate": "2016-12-31T00:00:00Z"
            },
            "id": "001",
            "description": "Budget contribution from the local government",
            "amount": {
                "amount": 150000,
                "currency": "GBP"
            }
        },
        {
            "sourceEntity": {
                "id": "GB-GOV-23",
                "name" : "Department for Transport" 
            },
            "period": {
                "startDate": "2016-01-01T00:00:00Z",
                "endDate": "2016-12-31T00:00:00Z"
            },
            "id": "002",
           "description": "Budget contribution from the national government",
            "amount": {
                "amount": 150000,
                "currency": "GBP"
            }
        }  
    ]
}

Example - multi-year budgets

"planning": {
    "budget": {
        "sourceEntity": {
            "id": "GB-LAC-E09000003-557",
            "name" : "London Borough of Barnet - Transport Services" 
        },
        "period": {
            "startDate": "2016-01-01T00:00:00Z",
            "endDate": "2017-12-31T00:00:00Z"
        },
        "amount": {
            "amount": 300000,
            "currency": "GBP"
        }
    },
    "budgetBreakdown": [
        {
            "period": {
                "startDate": "2016-01-01T00:00:00Z",
                "endDate": "2016-12-31T00:00:00Z"
            },
            "id": "001",
            "description": "2016 Budget",
            "amount": {
                "amount": 200000,
                "currency": "GBP"
            }
        },
        {
            "period": {
                "startDate": "2017-01-01T00:00:00Z",
                "endDate": "2017-12-31T00:00:00Z"
            },
            "id": "002",
            "description": "2017 Budget",
            "amount": {
                "amount": 100000,
                "currency": "GBP"
            }
        }  
    ]
}

Engagement

Please indicate support or opposition for this proposal using the +1 / -1 buttons or a comment. If opposing the proposal, please give clear justifications, and where possible, make an alternative proposals.

Views on whether any components of this proposal should also be included in core are welcome.

@duncandewhurst
Copy link
Contributor

@myroslav we had some feedback from the budget breakout session at the Open Contracting day at IODC that our proposed approach may be too simple to model budgets from Prozorro.

Looking at some example procurement plans the budget seems to be a single value and I can't see any more detailed information on budgets in the open procurement docs

If you are capturing more detailed budget information please could you provide an example for us to review?

Thanks!

@duncandewhurst
Copy link
Contributor

Proposal (for inclusion in extension guidance/documentation):

The sourceEntity field should be omitted when this is not known at the time of budgeting (e.g. in a PPP where part of the budget will be provided by the successful private sector bidder). In this case budgetBreakdown/description field should be used to provide the source of the budget (e.g. "private sector investment")

@duncandewhurst
Copy link
Contributor

There is a draft extension which implements this proposal here.

The documentation for the extension updates the guidance proposed in my previous comment, to recommend that the budget.sourceEntity.name field is used to provide a free text description when the organization details are not known at the time of budgeting for the source of one or more parts of the budget.

Views on whether this change is preferable for consuming applications are welcome.

Assigning to @ekoner to review

@ekoner
Copy link

ekoner commented Jan 19, 2017

@duncandewhurst sourceParty refers to negative amounts but the Value object doesn't currently allow negative values. Is there an update to that object?

transaction.amount is being changed to transaction.value in #377, should budget.amount become budget.value or does amount have a different context here?

@duncandewhurst
Copy link
Contributor

Thanks @ekoner - negative amounts are introduced by #253 so that should be OK.

Good spot on budget.amount, we use value everywhere else in the schema (or will following the v1.1 upgrades to transaction) so we should probably change this too for consistency, although I expect we have seen more use of budget.amount than transaction.amount so would need to balance consistency against deprecating a more widely used field.

@myroslav
Copy link

In one of the implementations we have budget distribution process linked to specific Items in Contract since information is not necessary on planning stage, but instead would be finalized and collected before contract is signed.

Additionally there will be either no sourceParty (or all entries would have the same - Treasury) but we would need some kind of code that denotes internal category, where budget comes from.

Not sure if my notes above maps properly to this issue, or proposed extension, but I thought they are worth sharing.

One other question we are facing right now, is:

Should we split financing in Item.quantity aspect or in amount aspect?

I do understand reasoning behind amount-based split, and evaluating if it is covering all aspects.

@duncandewhurst
Copy link
Contributor

@timgdavies just noting that the draft schema takes a different approach to that outlined in the proposal and in the documentation - introducing a new budgetBreakdown building block and adding an array of these blocks in budget.budgetBreakdown

If this was the intended approach the documentation will need updating.

@myroslav thanks for your comments I believe they are relevant here. Do you have an example of the budget per item described in your first point or have you not modelled this yet?

Additionally there will be either no sourceParty (or all entries would have the same - Treasury) but we would need some kind of code that denotes internal category, where budget comes from.

The budget.id field could be used to capture this information, unless you are already populating that field?

Should we split financing in Item.quantity aspect or in amount aspect?

The extension as proposed allows a breakdown by period and amount, do you have an example of a budget split by quantity?

@myroslav
Copy link

@duncandewhurst there was decision to split each line item that has multiple budget sources into multiple identical ones (except quantity), with single budget source for each of the items. The logic of "merging" these line items into single one with total quantity will be on side of "data consuming party", if such need will be there.

We are extending Tender.items with extra fields about item budget source, these fields will "descend" into our Award and Contract for Contracting purposes. This is because Treasury is premoderating of Contracts being signed, thus we need correct information about budget source for each line item from the very beginning of Tendering (for correct split of line items in correct quantities for different parts). We are not adding that information to Planning stage yet, but there are chances that we'll do it in future.

@duncandewhurst
Copy link
Contributor

@myroslav thanks, in that case I think your approach differs from the need this extension is trying to meet of providing more granular information in the planning.budget section, so would recommend a local extension for the inclusion of the budget source in tender, award and contract - though it would be good to see this information included (in aggregate if neccessary) in the core fields in planning.budget in the Prozorro data in the future, for compatability with tools built around OCDS core.

@jpmckinney
Copy link
Member

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