Год назад я устал читать одинаковые обзоры на отчёты компаний. Пока аналитики переписывали EBITDA и чистую прибыль в Telegram, рынок уже уходил. Тогда я решил проверить одну идею: можно ли собрать систему, которая будет не просто вытаскивать цифры из МСФО, а понимать структуру отчёта и находить скрытые изменения быстрее человека. Через 12 месяцев у меня появился полуавтоматический движок, который обработал 2107 отчётов российских и зарубежных компаний, научился ловить странные изменения в отчётности и несколько раз нашёл вещи, которые рынок заметил слишком поздно.
Когда я начинал, задача выглядела простой. Берём OCR, закидываем PDF в модель, достаём выручку, EBITDA, долг — готово. Через неделю стало понятно, что это тупик.
МСФО — это не таблица с цифрами. Это огромный полуживой организм, где важные вещи часто прячутся не в отчёте о прибылях, а в примечаниях на 148 странице мелким шрифтом. Причём иногда одна строка меняет всю оценку бизнеса.
Самый первый фейл у меня случился на отчёте одной металлургической компании. Модель идеально вытащила все основные показатели, но пропустила изменение в структуре экспортных контрактов, которое было спрятано в текстовом блоке между примечаниями. Через два квартала рынок внезапно понял, что маржа начинает разрушаться. Акция улетела вниз примерно на 17%.
Тогда я понял: задача не в том, чтобы читать отчёты быстрее. Задача — находить то, что люди обычно не замечают. Я полностью переписал архитектуру. Вместо обычного парсинга таблиц система начала строить граф связей внутри документа:
- какие сущности связаны между собой
- где меняется тональность описания бизнеса
- как коррелируют комментарии менеджмента и реальные цифры
- какие примечания появляются впервые
- какие блоки исчезают из отчёта без объяснений
Самое интересное началось примерно через три месяца.
Почему классический анализ отчётности начал проигрывать скорости рынка
Есть неприятная правда, о которой редко говорят. Большинство аналитиков физически не успевают читать отчёты глубоко.
Когда выходит сезон отчётности, на одного человека может приходиться 20–40 компаний за две недели. В итоге происходит примерно одно и то же:
- смотрят headline numbers
- сравнивают с консенсусом
- проверяют долг
- бегло читают комментарии менеджмента
- публикуют обзор
Но проблема в том, что рынок уже давно реагирует не на сами цифры. Он реагирует на изменения структуры бизнеса. Например, нейросеть научилась отслеживать одну странную вещь — изменение словаря внутри отчётов. Это звучит как эзотерика, но оказалось очень рабочей историей.
У нефтегазовых компаний перед ухудшением операционной динамики резко возрастало количество формулировок:
- временное давление
- адаптация
- изменение логистики
- пересмотр контрактов
- переходный период
Причём происходило это за 1–2 квартала до заметного падения маржи.
У ритейлеров перед ухудшением cash flow неожиданно росло количество фраз про оптимизацию ассортимента и изменение потребительского поведения. Сначала я думал, что это случайность. Потом система показала это на 14 компаниях подряд. Ещё интереснее вышло с банками.
Нейросеть начала ловить расхождение между:
- позитивной тональностью комментариев менеджмента
- ухудшением структуры резервов
- изменением качества кредитного портфеля
Причём человек глазами это почти не замечает, потому что отчёты банков — это ад из сотен страниц.
Я сделал отдельный модуль для примечаний по резервированию. Он искал:
- резкий рост реструктурированных кредитов
- появление новых категорий риска
- изменение методологии оценки
- рост непрямых признаков просрочки
На некоторых отчётах система находила сигналы за месяцы до того, как аналитики начинали снижать таргеты. Самое забавное — первые версии модели регулярно ломались на российских отчётах. Причина максимально идиотская. Компании используют настолько разный стиль PDF, что иногда таблица распознавалась как картинка внутри картинки. Один отчёт вообще был сверстан так, будто его делали в Word 2003 на сломанном ноутбуке. OCR сходил с ума и превращал финансовые показатели в набор символов.
Пришлось делать собственный pipeline:
- детектор структуры документа
- сегментация страниц
- OCR с несколькими движками одновременно
- нормализация таблиц
- semantic alignment блоков
- векторизация примечаний
- оценка аномалий
В итоге на обработку одного большого отчёта уходило примерно 18–40 секунд. Для сравнения: человек читает такой документ несколько часов.
Самая неожиданная находка за год
Я думал, главная ценность будет в скорости. Оказалось — вообще нет. Главная ценность появилась в поиске слабых сигналов. Нейросеть начала видеть микроизменения, которые человек обычно игнорирует. Один из лучших примеров был с промышленной компанией второго эшелона.
Система отметила сразу несколько аномалий:
- снижение детализации в примечаниях
- исчезновение части раскрытия по дебиторке
- резкий рост прочих операционных расходов
- изменение формулировок по экспортным поставкам
- ухудшение структуры короткого долга
По отдельности ничего страшного.
Но модель работала как скоринг. Когда сигналы складывались вместе, вероятность проблем резко росла. Через полгода компания выпустила слабый отчёт, потом пошли проблемы с ликвидностью, а ещё через несколько месяцев рынок начал массово выходить из бумаги. После этого я перестал смотреть на систему как на инструмент чтения отчётов. По сути это уже была машина для поиска корпоративного стресса. Самое сложное оказалось не обучить модель, а убрать ложные сигналы. Потому что рынок любит наказывать за переобучение.
Сначала система постоянно паниковала из-за:
- сезонных колебаний
- валютной переоценки
- разовых списаний
- изменения логистики
- технических корректировок
Пришлось делать контекстный слой. Например, если у экспортёра растёт дебиторка одновременно с ростом логистических расходов и изменением географии поставок — это нормально. Но если дебиторка растёт без роста выручки и одновременно падает детализация раскрытия — это уже повод смотреть внимательнее. В какой-то момент я понял, что модель начинает работать похожим образом на опытного forensic analyst. Только без усталости и кофе.
Что получилось через 12 месяцев
За год система обработала:
- 2107 отчётов
- 312 компаний
- около 1,8 млн страниц
- примерно 94 тысячи примечаний
Я специально вёл статистику. Самый интересный результат — нейросеть начала стабильно находить ухудшение качества бизнеса раньше рынка. Не всегда. Но достаточно часто, чтобы это перестало быть случайностью.
Особенно хорошо работали:
- банки
- металлурги
- ритейл
- девелоперы
- циклические компании
Хуже всего:
- IT
- быстрорастущие компании
- бизнесы с агрессивным M&A
- компании с постоянной сменой структуры
Почему так происходит — тоже понятно. МСФО отлично показывает деградацию зрелого бизнеса. Но плохо предсказывает будущее компаний, которые сами ещё не понимают, какими будут через два года.
Отдельно удивила реакция рынка.
Я сравнивал:
- время публикации отчёта
- реакцию аналитиков
- динамику котировок
- сигналы модели
И несколько раз видел одну и ту же картину. Сначала нейросеть отмечает ухудшение структуры отчётности. Потом выходят осторожные обзоры аналитиков. Потом менеджмент начинает использовать более защитные формулировки. И только потом рынок по-настоящему закладывает проблему в цену. Иногда лаг составлял 2–4 месяца. Это был момент, когда я окончательно перестал воспринимать МСФО как скучную бухгалтерию. На самом деле отчётность — это огромный массив поведенческих данных. Менеджмент может пытаться красиво рассказывать историю, но структура цифр всё равно начинает выдавать проблемы раньше слов.
Сейчас система у меня работает полуавтоматически. Я не пытаюсь превратить её в фонд или продавать подписку. Честно говоря, после года экспериментов я вообще стал осторожнее относиться к любым красивым словам про AI в инвестициях.
Нейросеть не умеет предсказывать рынок. Она не знает геополитику. Не понимает, что завтра может прилететь новый налог, санкции или очередной сюрприз от регулятора. Но она отлично умеет делать одну вещь: читать тысячи страниц быстрее человека и замечать микротрещины в бизнесе раньше, чем это становится очевидно всем остальным.
И, как ни странно, этого уже оказалось достаточно, чтобы смотреть на отчёты совсем другими глазами.
Подробнее https://smart-lab....