Как сверить данные СФР и ФФОМС с Казначейством и «Электронным бюджетом»
Назначение и аудитория
Инструкция нужна аналитику, который сравнивает доходы и расходы государственных внебюджетных фондов в ведомственных публикациях, ГИИС «Электронный бюджет» и отчётах Казначейства. Результат — таблица расхождений с объяснимым периметром, а не механическое совпадение любых одноимённых сумм.
Входные данные
- период и уровень бюджета: СФР или ФФОМС;
- файл из каталога открытых данных СФР либо официальный документ ФФОМС;
- отчёт Казначейства по исполнению бюджетов ГВФ;
- паспорт сопоставимого набора ГИИС «Электронный бюджет»;
- дата скачивания и реквизиты версии каждого файла.
Инструменты
- браузер для проверки паспорта и методики;
- Python 3 с
pandasиopenpyxlлибо табличный редактор; - текстовый журнал допущений: период, единицы, тип бюджета, включение трансфертов.
Шаги
- Зафиксируйте фонд, финансовый год, отчётную дату и единицу измерения.
- Выпишите определения строк ведомственного файла; не сопоставляйте по одному названию.
- В отчёте Казначейства выберите тот же бюджет фонда, а не федеральный бюджет и не консолидированный итог всех ГВФ.
- В ГИИС ЭБ проверьте паспорт набора, период и версию; сохраните исходный URL.
- Нормализуйте суммы в рубли и даты к одной отчётной границе.
- Пометьте межбюджетные трансферты отдельным флагом. Для консолидированного итога исключите встречные потоки; для сверки одного бюджета сохраните их.
- Сопоставьте строки по экономическому смыслу и КБК, если код опубликован. Если кода нет, оставьте связь как методическую, а не точную.
- Рассчитайте абсолютное и относительное расхождение и запишите возможную причину: лаг, методика, корректировка, разные периметры.
Воспроизводимый пример
Минимальная проверка уже подготовленных таблиц fund.csv и treasury.csv с колонками key и amount:
import pandas as pd
fund = pd.read_csv("fund.csv")
treasury = pd.read_csv("treasury.csv")
check = fund.merge(treasury, on="key", how="outer", suffixes=("_fund", "_treasury"))
check[["amount_fund", "amount_treasury"]] = check[
["amount_fund", "amount_treasury"]
].fillna(0)
check["difference"] = check["amount_fund"] - check["amount_treasury"]
check.to_csv("reconciliation.csv", index=False)
print(check.reindex(check["difference"].abs().sort_values(ascending=False).index).head(20))
key должен быть создан вручную по согласованной методике, например fund|year|report_date|kbk|metric. Не стройте его только из текста строки.
Проверка результата
- сумма строк после нормализации совпадает с контрольным итогом исходного файла;
- фонд, период и единица измерения одинаковы в обеих сторонах сравнения;
- трансферты не удалены из сверки отдельного бюджета и не задвоены в консолидированном итоге;
- каждое крупное расхождение имеет ссылку на исходный документ и объяснение либо статус
не объяснено; - повторный запуск на сохранённых входах даёт тот же
reconciliation.csv.
Ограничения и типовые ошибки
- публикации СФР по согласованному перечню показателей не тождественны форме казначейской отчётности;
- на сайте ФФОМС не подтверждён единый стабильный массовый финансовый API, поэтому документный маршрут требует ручного инвентаря версий;
- ТФОМС и ФФОМС — разные бюджеты;
- закон о бюджете, уточнённый план и кассовое исполнение отвечают на разные вопросы;
- округление до миллионов может создавать видимое расхождение с построчной выгрузкой в рублях.
Связанные страницы
- Каталог открытых данных СФР — паспорта и CSV.
- Поступление и расходование средств СФР — методические XLS/XLSX.
- Публичные публикации ФФОМС — документный контур и его границы.
- Исполнение бюджетов ГВФ — казначейская сторона сверки.
- Государственные внебюджетные фонды — периметр бюджетов.