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

Consider new example for purchase order #1694

Open
jpmckinney opened this issue May 29, 2024 · 18 comments · May be fixed by #1720
Open

Consider new example for purchase order #1694

jpmckinney opened this issue May 29, 2024 · 18 comments · May be fixed by #1720
Assignees
Labels
Focus - Examples Relating to examples in the guidance
Milestone

Comments

@jpmckinney
Copy link
Member

jpmckinney commented May 29, 2024

https://standard.open-contracting.org/staging/1.2-dev/en/guidance/map/awards_contracts/#purchase-orders

As discussed in #896 (comment), I'm not sure that this scenario would actually involve purchase orders (though purchase orders are a flexible term):

The UK's Department for Transport awards a £1.2m, 12-month contract to KPMG to provide the Project Management Office function for a project to construct a new highway bypass. The contract specifies that payment will be made quarterly in arrears in four equal amounts.

We left the example when making changes in #1338, because the point of that section is to illustrate how double-counting can occur where purchase orders are involved – it is not to show how to model purchase orders.

That said, it would be less confusing to use a more typical example.

@jpmckinney jpmckinney added the Focus - Documentation Includes corrections, clarifications, new guidance, and UI/UX issues label May 29, 2024
@jpmckinney jpmckinney added this to the 1.2.0 milestone May 29, 2024
@jpmckinney jpmckinney added Focus - Examples Relating to examples in the guidance and removed Focus - Documentation Includes corrections, clarifications, new guidance, and UI/UX issues labels May 29, 2024
@jpmckinney jpmckinney moved this to To do in OCDS 1.2 Jul 2, 2024
@duncandewhurst
Copy link
Contributor

Should we reuse the scenario shared in #896 (comment) or author a new one?

A more believable scenario might be: A buyer needs to install black boxes on its 10 helicopters, which might be distributed at different airfields at different times – plus on 2 new helicopters it is purchasing separately, with uncertain delivery dates.

The buyer ultimately signs a contract for 12 black boxes, including shipping. The contract is incomplete with respect to delivery location, because the buyer calculated that it will be more efficient and effective to ship the black boxes to wherever the helicopters are, rather than fly the helicopters back and forth to a single location. Because the locations are changing regularly, it didn't make sense to put those details in the contract. The contract is also incomplete with respect to delivery time, because the 2 new helicopters have uncertain delivery dates.

In this scenario, the idea is that the buyer issues "purchase orders" once it has definite locations and times – but to be honest I don't know for certain if any jurisdiction calls these "purchase orders".

@jpmckinney
Copy link
Member Author

Sure, or perhaps there's a simpler example. @fppenna I know Portland and other US cities use purchase orders a lot. Is there a simple scenario we can use at this page, instead of the current UK example? https://standard.open-contracting.org/staging/1.2-dev/en/guidance/map/awards_contracts/#purchase-orders

@duncandewhurst
Copy link
Contributor

@odscjen I think that you can pick this one up.

@odscjen
Copy link
Contributor

odscjen commented Nov 4, 2024

The suggested example using helicopters and black boxes does feel a bit over complex.

Looking at some guidance Oregon provide for their eProcurement system and POs the example in #896 (comment) is possibly over complex. It looks like in the US at least (assuming Oregon is representative) POs are commonly used almost like the 2nd stage of a Framework where there's a single supplier. So a simpler example may be something like:

Portland Public Schools department (PPS) has signed a contract with a local IT vendor to provide computer equipment to schools under its authority. This initial contract specifies a catalogue of items and their individual cost, the total value of the contract and the time period over which the contract will be executed, a year. It doesn't specify the number of each item or the delivery locations or times. When a school needs equipment covered by this contract they seek approval for this from PPS who, if they approve the request, raises a purchase order specifying which items are required, how many and the delivery location and time. Over the course of the year 4 POs are created for 4 different schools.

The problem with this example however is I'm not sure how realistic it would be for the initial contract to specify a fixed amount, I suspect it's more likely it would specify an estimated amount, or a maximum amount, but the OCDS definitions of those value fields specify that they are only for framework agreements.

Re #1694 (comment)

As discussed in #896 (comment), I'm not sure that this scenario would actually involve purchase orders (though purchase orders are a flexible term):

This scenario, where a contract is paid as 4 separate invoices the timing and value of which are agreed when the contract is signed but which will each require a separate PO, is definitely one I know is used for consultancy contracts where there are discrete tangible deliverables. So it could be largely kept but rather than being for Project Management for a road project, it could be for a review of national public transport franchise arrangements, with the first payment being for an initial review report, and then a second payment for a subsequent recommendations report, both of which would require the raising of a PO. This would avoid the potential issue with my other suggestion of the total contract amount being potentially unknown from the start.

Whichever scenario you think we should use this would be turned into an example with some fake data similar to the current one which is showing tabular data rather than json?

Also the example being replaced only shows that putting POs in contracts leads to double counting, but doesn't show the alternative, i.e. putting them in contracts.implementation. I'm assuming the new example should show this and remove the note about how modelling POs is still under discussion?

@odscjen odscjen moved this from To do to In progress in OCDS 1.2 Nov 4, 2024
@jpmckinney
Copy link
Member Author

I think @fppenna can help with this one, as he is working on the Portland OCDS implementation, where they have some examples.

@fppenna
Copy link
Member

fppenna commented Nov 7, 2024

It looks like in the US at least (assuming Oregon is representative) POs are commonly used almost like the 2nd stage of a Framework where there's a single supplier

In Portland this is generally true. However, under certain conditions, POs are sometimes issued even without an existing contract, in which case the PO itself serves as the contract between the buyer and supplier.

The problem with this example however is I'm not sure how realistic it would be for the initial contract to specify a fixed amount, I suspect it's more likely it would specify an estimated amount, or a maximum amount

This aligns with what I know about Portland. In these types of contracts, a maximum amount is typically defined, allowing buyers to spend up to that amount within the contract period. I’ll check with our partners to see if there are examples where the contract specifies an estimated amount rather than a fixed or maximum amount, and I’ll look for some alternative real-world examples to share with you.

@fppenna
Copy link
Member

fppenna commented Nov 12, 2024

I’ll check with our partners to see if there are examples where the contract specifies an estimated amount rather than a fixed or maximum amount

In Portland, purchase orders cannot exceed the amount specified in the outline agreement (OA), it only specifies a maximum amount. OAs and associated purchase orders are used for goods, services, and works. A typical example is an OA for maintaining a public park entry: the Bureau of Parks and Recreation establishes an OA with a primary contractor, defining the contract period, items to be provided, estimated quantities, unit prices, and a maximum amount. Then, through a purchase order, the Bureau of Parks and Recreation requests that the awarded company excavate and remove contaminated or unsuitable soil, including hauling and disposal. In a subsequent purchase order, the Bureau requests the placement of suitable backfill material, and so on, until the total value of issued POs reaches the maximum value specified in the OA. I hope this helps! I’m happy to look for other examples that might be suitable for the documentation if needed.

@odscjen
Copy link
Contributor

odscjen commented Nov 18, 2024

thanks @fppenna!

@jpmckinney given the example shared in #1694 (comment) uses a maximum contract value as suspected are you happy for me to use it as the worked example of how POs work in OCDS?

Does this raise a larger question of redefining Contract.maximumValue which is currently:

The maximum value of the framework agreement, as a whole.

It could be redefined to make it more general and not framework agreement specific:

The maximum value of the contract, as a whole.

@jpmckinney
Copy link
Member Author

jpmckinney commented Nov 18, 2024

Let's leave it as framework agreement. Portland is basically doing IDIQ (indefinite-delivery/indefinite quantity) contracts, which are generally treated as a type of framework agreement.

Edit: And yes, we can update the example, with any simplifications as you like.

@duncandewhurst
Copy link
Contributor

If this indefinite-quantity/indefinite-delivery contract is treated as a framework agreement, it should appear only in the awards array, according to the guidance on first-stage selection and addition of suppliers to a framework agreement.

Also, each purchase order would be treated as the award of a procurement contract without second-stage competition and would be modelled as an Award in a new contracting process under a different ocid.

Is there an example of purchase orders outside of a framework agreement? Otherwise, we're just recreating the examples on the framework agreements page.

@jpmckinney
Copy link
Member Author

Good point. Maybe we remove this purchase order content, and just add a note to the framework agreements page to describe that IDIQ contracts with task orders or purchase orders can be modelled using the same approach.


In Portland, purchase orders were not modelled as separate processes, but this was due to the constraints of the available data (there was not enough information to describe a separate contracting process).

@odscjen
Copy link
Contributor

odscjen commented Nov 22, 2024

If this indefinite-quantity/indefinite-delivery contract is treated as a framework agreement, it should appear only in the awards array, according to the guidance on first-stage selection and addition of suppliers to a framework agreement.

This was a previous source of confusion, see #1301 (comment) where the discussion seems to have agreed that its not that contracts shouldn't be populated, just that the FA example doesn't need to show it as populating both awards and contracts is standard behaviour depending on the scenario, as per https://standard.open-contracting.org/staging/1.2-dev/en/guidance/map/awards_contracts/#id1. In the IQID contract scenario it isn't just an award, it is also a contract (I assume so anyway given its name!), i.e. the data in the source system relates to a contract, so contracts should be populated in addition to awards in a real full release.

Good catch though about the PO's being awards in new contracting processes if we're treating an IQID contract as a framework agreement.

But in this case I think it's still a good idea to have a PO example to demonstrate the risk of double counting in cases where the initial contract is for a fixed value, which can happen, for example in the fictional scenario I suggested as the 2nd option in #1694 (comment). Unless it would be a good idea to also treat them as FAs without a second stage and therefore the POs to be modelled as new contracting processes?

@yolile
Copy link
Member

yolile commented Nov 22, 2024

FWIW, I see that we originally discussed purchase orders in #897 and Paraguay drafted a local extension to model them, and that issue was closed due to the local extension being drafted. So, we have real examples from Paraguay that I can share if we want to use them

@yolile
Copy link
Member

yolile commented Nov 22, 2024

One example from Paraguay is this (real) contract for cleaning services to different administrative buildings of the buyer. The contract is for a fixed amount. Purchase orders (or in this case services orders) are then created against that contract. Note that purchase orders have milestones related to them.
So, I'm not sure we should follow the same approach as FA here, because in these cases we indeed have a real award and a real contract with an amount already, and if we model each purchase order as a new contract, then we will be double-counting. If we don't model the first contract as a contract and only as an award, we will lose the contract information.

@jpmckinney
Copy link
Member Author

Awesome. How is that process modelled in OCDS, in PY?

@yolile
Copy link
Member

yolile commented Dec 6, 2024

With their local extension
#897 (comment)
This is the OCDS version of the example shared above

@odscjen
Copy link
Contributor

odscjen commented Dec 12, 2024

The example @yolile gave in #1694 (comment) seems like a perfect example to use for the original intention of this issue, i.e. a real world relatively simple example of where the use of PO's could lead to double counting if modelled incorrectly in OCDS.

In terms of the PR to address this issue we could do the following to https://standard.open-contracting.org/staging/1.2-dev/en/guidance/map/awards_contracts/#purchase-orders:

  1. add a sentence or 2 explaining the use of IDIQ type contracts and POs and explaining that these should be treated like framework agreements and linking to https://standard.open-contracting.org/staging/1.2-dev/en/guidance/map/framework_agreements/ e.g.

Purchase orders can be made against contracts with indefinite quantities or maximum only values. In these cases the initial contract and resulting purchase orders ought to be modelled as a closed framework agreement with no second-stage competition.

  1. update the double counting example with the Paraguay example provided above
  2. the issue linked to in the note at the bottom of the page has been closed so update this note to make it clear that a consensus was reached and that an extension was authored for use in Paraguay that isn't currently listed in the Extension registry.

I feel there needs to be some guidance here for others who may have the same issue Paraguay had, otherwise we're just saying what not to do without saying what the correct alternative is (which is what the page currently does). Do we encourage them to use Paraguay's extension, or author their own based on Paraguay's?

@jpmckinney
Copy link
Member Author

Sounds good. For 3, let's invite implementers to describe their use of purchase orders in #897 so that we can re-open the issue and develop a standardized approach.

@odscjen odscjen moved this from In progress to Review in progress in OCDS 1.2 Dec 12, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Focus - Examples Relating to examples in the guidance
Projects
Status: Review in progress
Development

Successfully merging a pull request may close this issue.

5 participants