Система оценки перспектив взыскания
Когда должников сотни, задача — не получить ещё один отчёт. Нужно понять, какие случаи требуют внимания в первую очередь и насколько данным вообще можно доверять.
- 2026
- Внутренний инструмент команды взыскания
- Архитектура, доменный слой и скоринг, провайдеры, сопоставление личности, массовый прогон, веб-отчёт, тесты.
Отсутствие доступа к источнику — это не отсутствие данных.
Система обрабатывает данные, доступ к которым предоставлен оператором на законном основании: отделяет найденное от непроверенного, сопоставляет личности и формирует объяснимую оценку. Человек остаётся в точке принятия решения.
Для одной записи мало выполнить несколько запросов. Одновременно нужно понимать: относятся ли найденные сведения к тому же человеку, какие источники проверены, какие не подключены или временно недоступны, насколько полна получившаяся картина и стоит ли вообще переводить результат в следующий рабочий шаг.
- записи
- источники
- сопоставление
- оценка
- очередь
- человек
«Ничего не найдено» и «мы не смогли проверить» — два разных ответа.
Это не лозунг, а инвариант, проведённый через весь код: через контракт источника, через движок оценки и через рендер отчёта. Если реестр банкротств не подключён, отчёт говорит «не проверено: источник не подключён», а не «банкротство не обнаружено».
Разница между этими двумя фразами — решение, принятое на неполных данных.
Telegram здесь не система, а окно. Оператору нужен быстрый ввод и короткий ответ; всё остальное живёт ниже и о Telegram не знает.
Telegram использован в демонстрационном контуре. Для production канал выбирается с учётом применимых требований законодательства и политики заказчика.
Слой бота собирает ввод и рисует результат. Бизнес-логики в нём нет. Поэтому рядом с Telegram можно поставить REST, веб-форму или систему заказчика, не переписывая предметную часть.
- Telegram
- поиск или прогон
- источники
- сопоставление личности
- агрегация
- оценка и уверенность
- вердикт
- карточка, веб-отчёт, выгрузка
Система обрабатывает данные, доступ к которым предоставлен оператором на законном основании: внутренние данные заказчика, то, что вводит сотрудник, открытые государственные реестры и коммерческие интерфейсы, подключённые по договору. Список источников менее важен, чем контракт между ними.
Провайдер никогда не выбрасывает исключение наружу. Таймаут, отказ по правам, лимит, битый ответ, незнакомая схема, собственная ошибка — всё превращается в результат с честным состоянием.
-
успех
источник ответил, записи есть
-
пусто
источник ответил, записей нет
-
не подключён
источника нет в этой установке
-
недоступен
временный сбой на той стороне
-
ошибка
обращение не удалось
- Только «пусто» значит «проверили»
- три последних состояния никогда не превращаются в «данных нет»
- Сбой не рушит прогон
- падение одного источника портит один раздел отчёта, а не весь запуск
Одинаковое ФИО из разных реестров — это ещё не один человек. Действовать по чужим исполнительным производствам одинаково неправильно и дорого, поэтому совпадение по имени само по себе никогда не даёт подтверждённый статус.
Каждой внешней записи присваивается уверенность сопоставления от нуля до единицы. Её поднимают дата рождения, ИНН, телефон из внутренних данных; её обнуляет несовпавшая дата рождения; распространённая фамилия без уточнений её понижает. Записи, найденные по точному внутреннему идентификатору — номеру договора или VIN, — проходят по более высокому порогу: сам идентификатор и есть доказательство.
Форма записи имени — не свойство человека. Один реестр печатает «имя отчество фамилия», другой наоборот, третий сокращает до инициалов. Сравниваются множества слов, а сокращения идут отдельным, самым слабым уровнем.
- Подтверждённое
- участвует в оценке как факт
- Возможное
- показывается и учитывается осторожно
- Слабое
- показывается, но в оценке не участвует
- Не совпало — не то же, что не прочитано
- нечитаемый хвост строки считается отсутствием доказательства, а не противоречием
- входные данные
- запись-кандидат
- сопоставление
- подтверждено · возможно · слабое
Один и тот же балл при уверенности 0.42 и при 0.96 — это два разных ответа.
Уверенность взвешена по источникам, которые реально двигают оценку: источник, который не может изменить число, не может и сделать его надёжнее. Она падает, когда значимый реестр не подключён или когда личность сопоставлена слабо.
Сам скоринг детерминированный: один и тот же отчёт всегда даёт один и тот же балл. Критическая логика намеренно не отдана генеративной модели — веса лежат в доменном слое отдельно от оркестрации, их видно, их покрывают тесты и их меняют явно.
-
оценка
насколько долг выглядит взыскиваемым по известным фактам
-
уверенность
какую часть картины система вообще увидела
Балл не выдаётся как магическое число. Он раскладывается на названные факторы, и рядом всегда стоит список того, чего проверить не удалось.
- База
- дальше только факторы, у каждого своё имя и вес
- Плюс
- подтверждённое действующее ИП, проверенный и чистый реестр
- Минус
- активная процедура банкротства, исполнительные производства, действующие залоги
- Отдельный фактор
- «состояние процедуры не определено» — это не «завершено» и стоит столько же, сколько активная процедура
- Итог
- балл, список факторов и список непроверенного
Оценка описывает данные. Вердикт организует работу. Решение принимает человек.
После скоринга работает отдельный слой правил. Он не советует, а раскладывает список по рабочим категориям, и каждая категория всегда несёт причину: можно переходить к следующему шагу, подходит упрощённый сценарий, нужна ручная проверка, продолжать сейчас нецелесообразно.
Порядок правил зафиксирован: сначала факты, которые закрывают вопрос, затем нехватка данных, и только потом экономика. Нехватка данных даёт «проверить руками», а не отказ — это отдельно покрыто тестами.
Система не принимает юридически значимых решений в отношении физических лиц: категория организует очередь, а итоговое решение принимает уполномоченный сотрудник.
Главный сценарий — не одиночная проверка, а вся выгрузка целиком: вопрос не «что известно про одного», а «какие из сотен случаев разбирать первыми».
Часть источников платная, поэтому прогон начинается со сметы: система считает, сколько запросов уйдёт, и оператор подтверждает расход до того, как он случится. Кэш переиспользуется — повторный прогон назавтра не оплачивает вчерашних.
Один сбой не рушит прогон: должник с ошибкой получает свою запись и не мешает остальным. А вот источник, отказавший по деньгам, прогон останавливает — иначе в очередь дописались бы сотни бодрых «ничего не найдено», за которые заплатили. Завершённый прогон, остановленный и оборвавшийся — три разных статуса, не синонимы.
- Дорогое видно заранее
- смета считается до запуска, расход подтверждает человек
- импорт
- смета
- подтверждение
- прогон
- прогресс
- очередь по вердикту
- выгрузка
Бот закрытый. Проверка доступа стоит перед обработчиками и перед любым внешним вызовом: посторонний не может запустить поиск и потратить запрос.
Границ две. Допущенный сотрудник работает с одиночной проверкой. Массовый прогон и импорт — то, что уводит в платные источники всю выгрузку и правит базу, по которой решают, — закрыты отдельно и по владельцам, а не по общему списку. Отказ логируется одним идентификатором, без содержания запроса.
Предусмотрены механизмы маскирования идентификаторов в истории, аудите и логах и ограничения срока хранения истории проверок. Достаточность этих мер для конкретной организации требует отдельной проверки.
- апдейт
- граница доступа
- обработчики
- сервисы
- внешние вызовы
В мессенджер уходит короткая карточка: рабочая категория, сумма, балл и строка «не проверено». То есть ответ, а не простыня.
Полный отчёт открывается на веб-странице по токенизированной ссылке: оттуда он печатается и выгружается текстом. У ссылки ограниченный срок жизни, её можно отозвать. В production рекомендуется использовать корпоративную авторизацию, ограниченный TTL и контроль получателей.
-
Telegram
ответ
-
веб-страница
доказательства
Разделение не декоративное — оно и есть причина, по которой интерфейс сменный. Зависимости собираются в одной точке, поэтому добавить или заменить источник — правка одного файла регистрации.
-
домен
модели, нормализация, правила оценки. Без ввода-вывода
-
провайдеры
источники и HTTP. О Telegram не знают
-
сервисы
оркестрация, сопоставление, агрегация, отчёты
-
хранилище
схема и репозитории
-
бот
сбор ввода и рендер. Бизнес-логики нет
Мы не имитируем интеграцию, которую нельзя проверить.
Прямой интеграции с учётной системой заказчика сейчас нет, и это решение, а не пробел: неизвестны конфигурация, размещение, доступные интерфейсы, имена справочников и права. Адаптер по догадкам выглядел бы готовым и не работал бы нигде. До получения схемы и доступа работает стабильный промежуточный контракт — импорт файла.
То же правило и для остальных источников. Если законного и стабильного доступа нет, источник возвращает «не подключён» и виден в отчёте отдельной строкой. Названный пробел полезнее спрятанного: оператор знает, что балл посчитан без судебных данных, а не думает, что суды чистые.
Список того, чего в проекте не будет, записан в репозитории явно: базы утечек, обход авторизации, скрейпинг закрытых кабинетов, банковские остатки, определение местоположения, определение имущества по ФИО без законного источника.
Демо — не нарисованный интерфейс, а то же приложение с управляемыми источниками. Поэтому систему можно прогнать целиком без реальных персональных данных и без платных запросов.
Отдельно покрыто главное: недоступный источник не считается отсутствием записей, неподключённый не рендерится как «чисто», а неавторизованный пользователь не доходит до обработчика и не создаёт запись поиска.
- 507 тестов
- скоринг, сопоставление, провайдеры, агрегация, контроль доступа, маскирование, импорт, расчётные правила, вердикт, массовый прогон
- Строгая типизация
- mypy в strict, включая тесты и скрипты
- Линтер и формат
- ruff, проверка форматирования в сборке
- Проверки на каждый push и PR
- линт, типы, тесты и сквозной прогон демо
- Демо без ключей и сети
- тот же пайплайн, сетевые адаптеры заменены детерминированными
Надёжная автоматизация начинается не с ответа, а с честного состояния знания.
Сначала — что мы видели, чего не видели и насколько уверены. Только потом число, очередь и действие. Всё остальное в системе выведено из этого порядка.
- ввод
- поиск
- наши данные
- ФССП
- ЕФРСБ
- ФНС
- реестр залогов
- арбитраж
- наследственные дела
- не подключённые
- состояния источников
- сопоставление личности
- агрегация
- оценка и уверенность
- вердикт
- Telegram и веб
- человек
Материал описывает техническую архитектуру и демонстрационный сценарий автоматизации и не является юридической консультацией или рекомендацией по обработке персональных данных в конкретной организации.
Использование решения в production требует самостоятельной оценки правовых оснований обработки данных с учётом роли оператора, категории организации, состава обрабатываемых данных, используемых каналов связи, внешних API и требований к локализации и защите персональных данных.
Показанные в кейсе интеграции, включая Telegram и сторонние информационные сервисы, являются примерами технической реализации. Их допустимость в конкретной инфраструктуре должна оцениваться отдельно. Для организаций, к которым применяются специальные ограничения на использование иностранных мессенджеров или передачу персональных данных третьим лицам, соответствующие компоненты должны быть заменены или отключены.
Решение не предназначено для получения данных из неправомерных источников, обхода ограничений доступа или автоматического принятия юридически значимых решений в отношении физических лиц. Итоговое решение принимает уполномоченный сотрудник.
Перед промышленным использованием рекомендуется провести юридическую и информационно-безопасностную проверку архитектуры, договоров с поставщиками данных и правил хранения, передачи и удаления информации.