-
Notifications
You must be signed in to change notification settings - Fork 46
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
Tender: Margin of preference (price coefficients) #574
Comments
Could this not be modelled using requirements/features (which still need separation into two rather than one extensions I believe), with an indication of when the feature has an influence on price vs. quality scoring? With either that option, or the above, we will need to think about how to make this maximally comprehensible to the user - and how this information should be displayed and analysed. |
Price coefficients are distinct from requirements or criteria (there's no question of 'satisfying' a price coefficient), but yes, there is overlap in the modelling. 'Criterion' in CCCEV is defined as "something used as the basis for making a judgement or decision, e.g. a requirement set in a public tender or a condition that has to be fulfilled for a public service to be executed." Whether the bidder is domestic is not, itself, the basis for making a judgment – it's not a requirement or a condition to be fulfilled. It does, however, give a price advantage if true. The tender notice may require a 1 year warranty, but whether the warranty is longer (like 3 years) is of no relevance to determining whether the bid meets the criteria and, on its own, has no impact on the decision. Longer warranties may, however, give a price advantage. I think it's a bit monolithic or incoherent to try to squeeze all possible price coefficients into a CCCEV-based model. We could have a link to a requirement from a |
Draft data from Belarus includes a |
For MTender we are planning to use the following approach: ConversionsAs soon as not only quantitative criteria has to be included into the Contract Notice but also - applicable options and weights, a separate extension has to be applied to allow CA to include all the conversions needed for future qualification and evaluation. Conversions - is a tool that allows describing used conversions and its applicable coefficients.
True/false requirement and its coefficients of conversionThe simple criterion that requires only true/false answer can be used by CA. For example - if currently submitting EO is a domestic bidder, his offer will get a ratio that increases the advantage of its price by 20%:
Using ocds_requirements_extension we can describe this criterion as such. But using conversions we can also describe applicable coefficients:
So if EO will respond that his company is a domestic bidder, using cross-reference through requirement_id we can extract an applicable coefficient - 0.8 Requirement with a predefined set of coefficients of conversion for a specific criterion valueThe criterion that requires a precise answer with detalization can be used by CA. For example - when minimum product warranty of 1 year is required for all bids but warranties of 2 years receive a 15% advantage and warranties of 3 years or more receive a 30% advantage:
Using ocds_requirements_extension we can describe this criterion as such where EO is required to confirm that he guarantees at least 1 year of product warranty (002-1-1) but also specify a precise number of years for such guarantee for the proposed product (002-1-2). And using conversions we can also describe applicable coefficients:
Depending on EOs response we will have an applicable coefficient for future conversion. Requirement with a formula-based (calculated) coefficients of conversion for a specific criterion valueFor the same criterion described above (product warranty) using conversions we can also describe coefficients for conversion not like a predefined set of values but as a mathematical formula that will be used to calculate applicable value:
Using mentioned formula and having a value for option inputed by EO withing his bid we can calculate applicable value for the coefficient of conversion:
As you can see - the result is the same Requirement with available options to chooseAdditionally procuriosity_conversions covers a following: ability to include an applicable options into used requirement. Such an approach allows prescribing more precise ranges of expected values together with specific coefficients of conversion. For example: if CA requires EO to have at least one Google certified specialist on his board but ready to grant EO with additional advantage if such EO has more than one guy:
And the conversion will be the following:
Coverage for targetsAs shown in examples above, it is the following construction used instead of using requirementReference from ocds_requirements_extension.
This is done for a purpose: in the same way, as it used for requirements, conversions could be used for another one attribute of contracting process that used to describe indicative or precise forecast of procurement - targets. Using relatesTo-approach we can use both options and conversions for targets as well. For example, CA is going to buy 1000 cars during some period. Of course its much more convenient for him to buy it from 'one hand' but what if there is no one on the market how can deliver such quantity of cars? (yes - it goes to the lots, this is just an example :). In that case, CA can describe options, available for this target together with the conversion which will be applied for the lower offered quantity of cars:
And the conversion will be:
So we can see that EO who offers less than 1000 cars will be accepted for evaluation but with 15% lower offer advantage (just due to the increasing total cost of ownership for CA). A similar approach could be applied where CA needs to tie his spendings with the achieved level of KPIs by supplier while implementing the contract (e.g. energy efficiency services) or to achieve the best value for money under 'quality-only' procedures. @jpmckinney would be great to hear your opinion about all this and do you think it deserves to be marked as 'Focus - Extensions' and moved forward? Full release-scheme available here |
@PaulBoroday Thank you for your thorough examples! We will have a look at the extension shortly. |
I made an initial review of the technical correctness of the extension. Once corrected, I'll do a closer review of the modelling. https://bitbucket.org/procuriosity/procuriosity_conversions/issues/1/typos-and-other-errors |
Thanks, @jpmckinney ! I believe everything is sorted so far. Repo moved to Github Also thinking to move “options” our from this draft to another one. Maybe this extension could be improved: https://github.com/open-contracting-extensions/ocds_options_extension/blob/master/release-schema.json ? UPD: #691 (comment) |
UNCITRAL glossary defines:
|
Is this kind of covered/overlaped by the award criteria breakdown extension? |
Sometimes, there's a two step process. First, award criteria are used to assign each bid a score. Then, if multiple scores are within a "margin of preference" (UNCITRAL term) of the lowest bid, then price coefficients are applied to determine the winner. The simplest implementation is to assign a coefficient of 0 (or 0.0̅1), i.e. if local bidders are within the margin of preference of the lowest bid, then the lowest bid among local bidders wins. If these coefficients were applied before the award criteria, then local bids would always win. |
Makes sense. open-contracting/ocds-extensions#132 suggest adding a "weight" field to requirements, but as per your comment #574 (comment) we don't want to model this under requirements (e.g., by setting the weight to 0 as part of the Criterion object). |
As noted in the UNCITRAL definition:
In other words, if there is a margin of preference, it will generally not be disclosed in each contracting process (similar to how a standstill period is typically universal and therefore not disclosed in each contracting process). This issue also discusses the weighting of individual requirements. Modelling individual requirements has not achieved consensus, so it is better to continue working on those issues in the requirements extension. So, closing here. |
Related to #443.
For example, the Kyrgyz e-GP system includes a web form with a “benefits domestic bidders” boolean field that is associated with a number field for the percentage-wise preference for domestic prices as well as a free-text note field.
We compared this example to giving a price preference to a bid that has a guarantee/warranty on the item. After working through different scenarios, we came up with this sort of structure (field names and codelist values may need more work, and not all fields are needed for Kyrgyz):
We introduce a
PriceCoefficientGroup
object to avoid repeating thetitle
,description
, etc. when we have multiple related coefficients, like coefficients for no warranty, warranty of 1 year, warranty of 2 years, etc.In the above example, I use discrete numbers of years (1, 2, 3). If we want to allow continuous, non-overlapping ranges, we would need properties like
exclusiveMinimum
andexclusiveMaximum
. However, it may be overly complicated to model this numeric information, so it may be simpler to replace the min/max fields with aoption
string to describe the available options in the submission form. We should collect some evidence from real systems to see how this is implemented.The text was updated successfully, but these errors were encountered: