tbl_CPVMeanPrice¶
Данная аналитическая таблица хранит в себе средние цены за единицы измерения часто закупаемых предметов закупки для календарного года.
- Данная аналитическая таблица содержит следующую информацию:
- Идентификатор предмета закупки;
- Код единицы измерения;
- Средняя цена единицы измерения предмета закупки;
- Год, для которого рассчитана таблица.
Пример того, как может выглядеть таблица:
| Предмет закупки | Код единицы измерения | Цена | Год |
| Предмет закупки 1 | Код единицы измерения 1 | Цена 1 | Год 1 |
| Предмет закупки 1 | Код единицы измерения 2 | Цена 2 | Год 1 |
| Предмет закупки 1 | Код единицы измерения 3 | Цена 3 | Год 1 |
| Предмет закупки 2 | Код единицы измерения 1 | Цена 1 | Год 1 |
| Предмет закупки 2 | Код единицы измерения 2 | Цена 2 | Год 1 |
| … |
Расчет аналитической таблицы¶
Источники данных для расчета¶
Для расчета аналитической таблицы используются следующие источники данных:
- API системы государственных закупок в OCDS формате.
Частота расчета аналитической таблицы¶
Аналитическая таблица рассчитывается 1 раз в сутки.
Поля для расчета¶
data.tender.lots.statusdata.tender.lots.iddata.tender.items.classification.iddata.items.unit.iddata.item.relatedLotdata.awards.relatedLotdata.awards.relatedBiddata.bids.details.priceProposal.unit.value.amountdata.bids.relatedLots.value.amount
Формула расчета таблицы¶
- Выбираем процедуры за год до текущей даты.
- Выбираем все процедуры, проведенные одноэтапным методом, упрощенным методом или методом на понижение, в статусе
complete, процедуры, которые находятся в статусе „active“, но при этом больше 30 дней имеютcurrentStage = 'evaluationComplete'. - Из каждой найденной процедуры извлекаем идентификаторы предметов закупки (
data.tender.items.classification.id) и единицы измеренияdata.items.unit.id. Предметы закупки выбираем только из таких лотов (data.item.relatedLot = data.tender.lots.id), которые имеютdata.tender.lots.status = 'complete'илиdata.tender.lots.status = 'active'. - Для каждого предмета закупки проводим следующие действия.
- Определяем идентификатор лота
data.items.relatedLot, к которому относится найденныйdata.items. - Находим блок определения победителя, где
data.awards.relatedLot = data.items.relatedLotиdata.awards.status = 'active'. - В найденном блоке определения победителя находим идентификатор победившего предложения
data.awards.relatedBid. - По найденному идентификатору находим выигравшее предложение
data.awards.relatedBid = data.bids.details.id. - В выигравшем предложении в блоке
data.bids.priceProposalнаходим цену единицы измерения предмета закупкиdata.bids.details.priceProposal.unit.value.amount. Используем только те, у которыхdata.bids.details.priceProposal.unit.value.amount> 0.
- Определяем идентификатор лота
- Группируем полученные данные по коду предмета закупки (только если по данному коду закупки и единице измерения есть более 3-х записей) и единице измерения, выбирая среднее по цене выигрышного предложения. Также добавляем год, для которого расчитана таблица.
- Полученные результаты заносим в таблицу.