Методология

Откъде идват данните, как са обработени и какви са известните ограничения.

1. Източник на данните

Всички сурови данни са публично достъпни от Централизираната автоматизирана информационна система „Електронни обществени поръчки" (ЦАИС ЕОП) на адрес eop.bg ↗. ЕОП е официалният регистър на Агенцията по обществени поръчки за всички процедури по ЗОП.

Proceno не препубликува необработени документи — всеки запис в базата е извлечен и нормализиран чрез автоматизиран процес, документиран в scraper/ ↗.

2. Покритие

  • Период: публикувани процедури от 2018 г. до момента (датата на последния sync се показва в подножието на сайта).
  • Обхват: процедури по ЗОП, публикувани в ЦАИС ЕОП. Не покриваме процедури извън ЕОП (напр. малки поръчки под прага, обявени само на профил на купувача).
  • Тип: строителство, доставки и услуги. Аналитичният фокус е върху строителството (категории като пътно строителство, ВиК, сграден ремонт и др.).

3. Честота на обновяване

Scrape-ърът се пуска ежедневно и добавя новопубликуваните процедури, оферти и сключени договори. Точният timestamp на последния успешен sync е видим в подножието на всяка страница („Обновено преди …").

Старите процедури не се пресвалят при всеки sync — нови данни се добавят инкрементално. Когато ЕОП пусне корекция на стар запис, тя се отразява при следващия пълен rescrape (рядко, на ad-hoc принцип).

4. Обработка на данните

  • Нормализация на цени: всички суми се водят в български лева без ДДС, освен когато ЕОП изрично е публикувал стойност с ДДС — тогава се прави корекция.
  • Нормализация на единици: кубични метри, тонове, линейни метри, кв. метри, броя — конвертирани към canonical форма (напр. „м3", „т", „м", „м2", „бр").
  • Категоризация: поръчките се класифицират в 25+ категории чрез regex-базирани правила върху заглавието и описанията на КСС позициите. Правилата са в js/pages/procurements.js ↗.
  • Дедупликация на фирми: имена на изпълнители се почистват от кавички, водещи/задни интервали и дублиращи се whitespace символи. Сливания и преименувания на ЮЛ не се проследяват автоматично.
  • Ценови outliers: при изчисляване на средна / медианна цена за дадена позиция не премахваме outlier-и автоматично — показваме целия диапазон. Анализирайте критично, преди да цитирате „средна цена" от много малка извадка.

5. Известни ограничения

  • Coverage преди 2018 г. е непълен — старите процедури в ЕОП често нямат структурирани оферти или КСС файлове.
  • Не всички сключени договори имат съответстващ КСС файл (тогава единичните цени липсват).
  • Категоризацията е regex-базирана — гранични случаи могат да попаднат в „Други".
  • „Прогнозна стойност" в обявлението не винаги съответства на реалната договорна стойност. Двете се пазят като отделни полета.
  • Преименувания на фирми (промяна на ЕИК наименование) не се обединяват — могат да се появят като два отделни записа, докато не се добави ръчно правило за дедупликация.

6. Цитиране

При цитиране е препоръчително да се посочи конкретната версия / дата на достъп:

По данни на proceno.net (достъп: дд.мм.гггг).

За академични цели: целият код е публичен на GitHub и можеш да закачиш конкретен commit hash, ако искаш напълно възпроизводим reference.

7. Audit trail

Schema-та на базата данни и историята на миграциите са версионирани в supabase/migrations/ ↗. Всяка промяна в данните или структурата им е проследима назад във времето.

Ако намериш конкретен запис, който изглежда грешен, отвори issue в GitHub ↗ с линк към процедурата в ЕОП и кратко описание.