Отслеживание субсидий
Назначение и аудитория
Для аналитиков и контролёров, которым нужно связать юридически оформленное соглашение о предоставлении средств из федерального бюджета с отчётностью получателя и понять, где обрывается цепочка (план → соглашение → выплата → отчёт).
Входные данные
- Каталог открытых наборов ГИИС — https://budget.gov.ru/epbs/opendata/list.json; набор
7710568760-REGISTAGREEMENT— реестр соглашений (см. Работа с API budget.gov.ru и карточку реестра соглашений). - Паспорт набора —
meta.jsonпо полюlinkиз каталога (нормализация префиксаnull/— в how-to по API портала). - Открытые данные получателей — bus.gov.ru (сведения об учреждениях и отчётность в объёме витрины).
- Иные контуры — президентские гранты, НКО: отдельные порталы; в общий регистр не подмешивайте без явного признака источника.
- Правовые типы — субсидии, трансферты; в одном реестре на портале могут соседствовать разные виды документов.
Инструменты
- Python 3 со
csvдля склейки выгрузок по ИНН (и при необходимости КПП, году, КБК);pandasудобен на больших файлах, но не обязателен. requests+json— дляlist.jsonиmeta.jsonнаbudget.gov.ru(см. how-to по API).- Браузер — для выборочной проверки карточек соглашений на портале.
Шаги
- Согласуйте объект — одно соглашение / один получатель / одна программа; зафиксируйте отчётный год.
- Загрузите реестр из открытого набора ГИИС: каталог → паспорт → CSV (или REST, если раскрыт для вашего среза) по инструкции budget.gov.ru.
- Нормализуйте ключи — ИНН как строка из 10/12 символов без «форматирующих» пробелов; КБК — единая длина и разделители.
- Подтяните отчётность получателя с bus.gov.ru (или иного канала по отчётности получателей субсидий).
- Соедините
mergeпо ИНН (+ год, + КБК при необходимости); пустые соединения анализируйте отдельно (филиал vs головной контрагент, смена ИНН). - Документируйте дату выгрузки каждого файла — витрины обновляются независимо.
Воспроизводимый пример
Учебные CSV в памяти имитируют фрагмент реестра соглашений и фрагмент отчётности получателя. В бою замените строки на чтение файлов, скачанных с budget.gov.ru и bus.gov.ru после прохождения шагов из Работа с API budget.gov.ru и bus.gov.ru.
import csv
import io
AGREEMENTS_CSV = """agreement_id,customer_inn,customer_kbk,amount_rub,period_year
AGR-2024-001,7700000000,00000000000000000000,1500000,2024
AGR-2024-002,7700000001,00000000000000000000,2000000,2024
"""
REPORTS_CSV = """inn,report_year,subsidy_reported_rub
7700000000,2024,1400000
9999999999,2024,1
"""
reports_idx = {}
for row in csv.DictReader(io.StringIO(REPORTS_CSV)):
reports_idx[(row["inn"], row["report_year"])] = row["subsidy_reported_rub"]
for row in csv.DictReader(io.StringIO(AGREEMENTS_CSV)):
key = (row["customer_inn"], row["period_year"])
reported = reports_idx.get(key)
status = "both" if reported is not None else "agreement_only"
print(
row["agreement_id"],
row["amount_rub"],
reported or "",
status,
)
Ожидаемо: у AGR-2024-001 статус both и сумма отчётности 1400000, у AGR-2024-002 — agreement_only и пустое поле отчётности; ИНН 9999999999 остаётся только в файле отчётности («сирота» относительно этого фрагмента реестра).
Проверка результата
- Число строк со статусом
bothсовпадает с ожидаемым числом сопоставлений по ключу (ИНН, год). - Для учебного примера у
AGR-2024-001в последней колонке суммы отчётности выводится1400000. - На реальных данных — выборочная сверка 2–3 соглашений с HTML-карточками на budget.gov.ru и профилем на bus.gov.ru.
Ограничения и типовые ошибки
- Разные юрлица — головной получатель и филиал: ошибочный
mergeтолько по ИНН без КПП/филиальной логики. - Суммы — соглашение в плановых лимитах, отчётность — в фактическом исполнении; не сравнивайте без уточнения поля.
- Каталог
list.jsonкрупный — задавайте таймаут 60–120 с иUser-Agent(см. how-to по API). - Не всё в открытых наборах — часть атрибутов только в интерфейсе ГИИС; выводы о полноте — по паспорту набора.
Связанные страницы
- Реестр соглашений (субсидии и смежные документы) — сущности и поля.
- Наборы данных ГИИС «Электронный бюджет» — контекст каталога.
- Работа с API budget.gov.ru и Открытые данные bus.gov.ru — машинный доступ.
- Отчётность получателей субсидий — регламентированный контур отчётности.