Перейти к основному содержимому

Анализ финансирования НКО

Ниже — практическая цепочка из учебного материала «Субсидии АНО. Кто и сколько получает» (каталог ano-sub в составе репозитория code.ach.gov.ru/edu): перечень получателей из открытого набора Госзатраты.Субсидии, фильтр по форме АНО по ОКОПФ, загрузка детализации через REST API, суммирование и разбор крупных получателей с отдельным исключением организаций высшего образования по основному ОКВЭД. Имеет смысл читать этот how-to вместе с отслеживанием субсидий (официальные соглашения и отчётность), карточкой прочие организации и термином государственные и подведомственные НКО — там разобрана логика «ведомственной» НКО в данных и отличие от операционной категории крупных получателей по исполнению бюджета.

Зачем так делают

  • Один машиночитаемый контур по субсидиям — гражданская витрина sub.clearspending.ru и связанный Clearspending.ru; для юридически значимой сверки соглашений используйте соглашения (субсидии и субвенции).
  • Сшивка с профилем НКО — сводные разрезы по OpenNGO.ru, конкурсные гранты ФПГ / pgrants.ru и контракты ЕИС дают полную картину только вместе; по ИНН удобно стыковать источники.
  • Отделить «типичную» АНО от вузов — в учебном примере крупных получателей с суммой свыше 100 млн руб. среди АНО оказывались и университеты в форме АНО; их предлагается отфильтровать по коду вида деятельности 82.22 (образование высшее) в блоке activities записи получателя.

Макро-срез: отчётность исполнения и микроданные субсидий

Параллельно цепочке Clearspending полезно смотреть сводное исполнение бюджетов по КВР 630 и 631–634 (субсидии некоммерческим организациям вне типовых учреждений в логике классификации на год):

  • Федеральный уровень — годовая отчётность вида формы 0503117 и открытые своды Минфина на соответствующий год; даёт агрегированную сумму по коду вида расходов, без списка получателей в том же файле.
  • Консолидированный бюджет субъектаформа 0503317 и приём из how-to анализ региональных бюджетов (поле вида расходов в терминологии ноутбука часто vr); удобно для межрегиональных долей расходов на поддержку НКО.
  • Сшивка с микроуровнем — суммы по 0503117 / 0503317 не обязаны побитово совпадать с суммой по API субсидий или реестру соглашений: другой объект учёта, касса, корректировки и консолидация. Цифры вроде порядка 155 млрд руб. по АНО из учебника или иллюстраций за 2019 год из исследовательских сводов используйте только как порядок величины на дату среза, не как текущий ряд без пересчёта.

Для интерпретации крупных получателей в макроданных см. государственные и подведомственные НКО; отбор «госНКО» по целевым статьям бюджетной росписи — отдельная методика, не совпадающая с фильтром ОКОПФ 71400 в receivers.

Подготовка данных (как в исходном ноутбуке)

  1. Скачайте receivers.zip из раздела открытых данных субсидий и извлеките receivers.json (перечень получателей по федеральному бюджету в логике проекта).

  2. Загрузите JSON в MongoDB, чтобы повторить запросы из ноутбука один в один:

    mongoimport -d subs -c receivers --file receivers.json

    Тот же файл можно обрабатывать и без MongoDB — например, загрузить в pandas через pd.read_json(..., lines=True) или прочитать массив целиком, если структура — один JSON-массив (ориентируйтесь на фактический формат файла после распаковки).

  3. Цель упражнения в первоисточнике: научиться классифицировать НКО по типу и виду деятельности и оценить число АНО (не вузов) среди получателей и совокупный объём субсидий по выбранным правилам.

Выборка автономных НКО по ОКОПФ

В данных получателя признак организационно-правовой формы лежит в блоке info. Для автономной некоммерческой организации в классификаторе ОКОПФ используется код 71400 (в ноутбуке фильтр info.okopfCode == '71400').

Чтобы не считать одну организацию несколько раз при повторяющихся записях, в исходном коде ведётся список уже учтённых ОГРН и строки с совпадающим ОГРН пропускаются.

Для вывода удобно забирать поля fullName, ogrn, inn, okopfCode, okopfName, okfsCode, okfsName из того же блока info.

Детализация по субсидиям через API

По каждому ИНН из отфильтрованного списка запрашиваются записи субсидий:

  • базовый URL в материале: https://api.sub.clearspending.ru/v1/subsidy/?receiver_inn=<ИНН>&page=<N>;
  • ответ содержит массив items и метаданные пагинации; в учебном скрипте следующая страница запрашивается, пока размер выборки указывает на полную страницу (в примере порог count == 50).

Суммы по документам в ответе агрегируются по полю вроде info.currencySum (проверьте актуальную схему ответа в документации проекта — поля могут меняться).

warning

Clearspending / API субсидий — гражданская аналитика, не замена официальным реестрам соглашений. Перед выводами о правовом статусе платежа сверяйтесь с первоисточником. Ограничения и актуальность — в карточке Clearspending.ru.

Агрегаты и топ получателей

Рабочая последовательность из ноутбука:

  1. Суммировать currencySum по всем собранным документам субсидий для отобранных ИНН (в примере подсчёт давал порядка 155 млрд руб. по совокупности АНО на момент выгрузки 2019 года — используйте только как иллюстрацию масштаба, не как актуальную цифру).
  2. Построить таблицу ИНН → сумма, отсортировать по убыванию суммы.
  3. Для интерпретации «чем занимается организация» брать первый элемент массива activities в записи получателя из receivers: activityCode, activityName.
  4. Для сценария «АНО не-вузы среди крупных» накладывать условие summ > 100_000_000 и activityCode != '82.22' (высшее образование — отдельный контур учёта и смысла в учебном разборе).

Входные данные

  • Конкретные файлы, URL, коды периодов и реквизиты перечислены в разделах ниже; зафиксируйте дату выгрузки для воспроизводимости.

Инструменты

  • Браузер и/или среда из разделов ниже (Python, Excel, SQL, CLI) — в зависимости от выбранного пути.

Шаги

Выполняйте действия в порядке разделов ниже (от подготовки данных к проверке).

Воспроизводимый пример

Минимальный пример команды или кода приведён в соответствующем блоке ниже; подставьте свои параметры.

Проверка результата

Сверьте итоги с официальной отчётностью, контрольными суммами или sanity-check из текста выше.

Подводные камни

  • Дедупликация — по ОГРН среди строк receivers, по ИНН при склейке с другими источниками; учитывайте смену ИНН/реорганизации.
  • Пагинация и лимиты API — схема ответа и лимиты запросов могут отличаться от учебного примера; сверяйтесь с актуальной документацией на clearspending.ru/opendata и страницами sub.clearspending.ru.
  • ОКВЭД по умолчанию — брать «первый» код из массива удобно для обзора, но для отчётности может быть неполным; уточнение — по ЕГРЮЛ или расширенному профилю деятельности.
  • Сопоставление с 44-ФЗ / 223-ФЗ — субсидии и иные бюджетные выплаты не являются «закупкой» в смысле этих законов; смешение контуров в аналитике даёт неверные выводы о «выводе из-под закупок».

Связанные материалы