Lbo Model
Строит модели LBO в Excel — источники и использование средств, график долга, cash sweep, выходной мультипликатор, анализ чувствительности IRR/MOIC. Работает в связке с excel-author. Подходит для первичного скрининга в PE, оценки спонсорского кейса или иллюстративного LBO в питч-деке.
Метаданные навыка
| Источник | Опциональный (устанавливается по запросу) — hermes skills install official/finance/lbo-model |
| Путь | optional-skills/finance/lbo-model |
| Версия | 1.0.0 |
| Автор | Anthropic (адаптировано Nous Research) |
| Лицензия | Apache-2.0 |
| Платформы | linux, macos, windows |
| Теги | finance, valuation, lbo, private-equity, excel, openpyxl, modeling |
| Связанные навыки | excel-author, pptx-author, dcf-model, 3-statement-model |
Справочник: полный SKILL.md
Ниже приведено полное определение навыка, которое Hermes Agent загружает при его активации. Именно эти инструкции видит агент во время работы.
Окружение
Навык рассчитан на headless openpyxl — вы создаёте файл .xlsx на диске.
Соблюдайте соглашения навыка excel-author по раскраске ячеек, формулам, именованным диапазонам и таблицам чувствительности.
Пересчитайте файл перед выдачей: python /path/to/excel-author/scripts/recalc.py ./out/model.xlsx.
ТРЕБОВАНИЕ К ШАБЛОНУ
Этот навык использует шаблоны для моделей LBO. Сначала всегда проверяйте, не приложен ли файл-шаблон.
Перед началом любой модели LBO:
- Если файл-шаблон приложен/предоставлен: используйте его структуру в точности — скопируйте и заполните данными пользователя
- Если шаблон не приложен: спросите пользователя: “Do you have a specific LBO template you’d like me to use? If not, I can use the standard template which includes Sources & Uses, Operating Model, Debt Schedule, and Returns Analysis.”
- Если используете стандартный шаблон: возьмите за отправную точку
examples/LBO_Model.xlsxи заполните его допущениями пользователя
ВАЖНО: когда приложен файл вроде LBO_Model.xlsx, вы ОБЯЗАНЫ использовать его как шаблон — не стройте модель с нуля. Даже если шаблон выглядит сложным или содержит больше функций, чем нужно, скопируйте и адаптируйте его под требования пользователя. Никогда не решайте строить «с нуля», когда шаблон предоставлен.
КРИТИЧЕСКИЕ ИНСТРУКЦИИ — ПРОЧТИТЕ ПЕРВЫМИ
Используйте Python/openpyxl. Записывайте строки формул (ws["D20"] = "=B5*B6"), затем перед выдачей запускайте вспомогательный скрипт recalc.py из навыка excel-author.
Базовые принципы
- Каждый расчёт должен быть формулой Excel — НИКОГДА не вычисляйте значения в Python и не вписывайте результаты в ячейки жёстко. При работе с openpyxl пишите
cell.value = "=B5*B6"(строка формулы), а НЕcell.value = 1250(вычисленный результат). Модель должна быть динамической и пересчитываться при изменении входных данных. - Используйте структуру шаблона — следуйте организации в
examples/LBO_Model.xlsxили в шаблоне, который дал пользователь. Не придумывайте собственную раскладку. - Используйте корректные ссылки на ячейки — все формулы должны ссылаться на нужные ячейки. Никогда не вписывайте числа, которые должны браться из других ячеек.
- Сохраняйте единое соглашение о знаках — следуйте тому соглашению, что принято в шаблоне (где-то отток показывают отрицательным, где-то положительным). Держите его единым по всей модели.
- Работайте раздел за разделом, сверяйтесь с пользователем на каждом шаге — завершите один раздел целиком, покажите пользователю, что построено, прогоните проверки этого раздела и получите подтверждение ПРЕЖДЕ ЧЕМ переходить к следующему. НЕ стройте всю модель от начала до конца, чтобы потом показать её разом — поздние разделы зависят от ранних, и если ошибка в Sources & Uses всплывёт уже после готовых результатов по доходности, переделывать придётся повсюду.
Соглашения о цвете формул
- Синий (0000FF): жёсткие входные данные — вписанные числа, не ссылающиеся на другие ячейки
- Чёрный (000000): формулы с вычислениями — любая формула с операторами или функциями (
=B4*B5,=SUM(),=-MAX(0,B4)) - Фиолетовый (800080): ссылки на ячейки той же вкладки — прямые ссылки без вычислений (
=B9,=B45) - Зелёный (008000): ссылки на ячейки других вкладок — межлистовые ссылки (
=Assumptions!B5,='Operating Model'!C10)
Палитра заливки — профессиональные синие и серые (по умолчанию, если пользователь/шаблон не задаёт иное)
- Цветов — минимум — для заливки ячеек используйте только синие и серые тона. НЕ вводите зелёные, жёлтые, красные или несколько акцентов. Профессиональная модель LBO держится на сдержанности.
- Палитра заливки по умолчанию:
- Заголовки разделов (Sources & Uses, Operating Model и т.д.): тёмно-синий
#1F4E79, белый жирный текст - Заголовки столбцов (Year 1, Year 2 и т.д.): светло-синий
#D9E1F2, чёрный жирный текст - Ячейки ввода: светло-серый
#F2F2F2(или просто белый) — сигналом служит синий шрифт, заливка вторична - Ячейки формул/вычислений: белый, без заливки
- Ключевые выходы (IRR, MOIC, Exit Equity): средне-синий
#BDD7EE, чёрный жирный текст
- Заголовки разделов (Sources & Uses, Operating Model и т.д.): тёмно-синий
- Это вся палитра. 3 синих + 1 серый + белый. Если в шаблоне свои цвета, следуйте шаблону.
- Примечание: синий/чёрный/фиолетовый/зелёный цвета шрифта выше нужны для различения ввода, формул и ссылок. Они отдельны от палитры заливки здесь — обе работают вместе.
Стандарты форматирования чисел
- Валюта:
$#,##0;($#,##0);"-"или$#,##0.0в зависимости от шаблона - Проценты:
0.0%(один знак после запятой) - Мультипликаторы:
0.0"x"(один знак после запятой) - MOIC/детальные коэффициенты:
0.00"x"(два знака для точности) - Все числовые ячейки: выравнивание по правому краю
Сначала проясните требования
Прежде чем вписывать формулы:
- Изучите структуру шаблона — определите все разделы, разберитесь с таймлайном (какие столбцы какому периоду соответствуют), отметьте уже имеющиеся формулы
- Спросите пользователя, если что-то неясно — если структура шаблона, методы расчёта или требования двусмысленны, уточните до начала работы
- Подтвердите ключевые допущения — любые важные входы, предпочтения по расчётам или особые требования
- ТОЛЬКО ПОСЛЕ того как разобрались с шаблоном, приступайте к заполнению формул
ФАЗА АНАЛИЗА ШАБЛОНА — СДЕЛАЙТЕ ЭТО ПЕРВЫМ
Прежде чем вписывать формулы, тщательно изучите шаблон:
-
Составьте карту структуры — определите, где находится каждый раздел и как они связаны. Отметьте, какие разделы питают другие.
-
Разберитесь с таймлайном — какие столбцы каким периодам соответствуют? Есть ли столбец «Closing» или «Pro Forma»? Где начинается прогнозный период?
-
Различайте ячейки ввода и формул — шаблоны часто помечают цветом, границами или заливкой, где нужны входные данные, а где формулы. Соблюдайте эти соглашения.
-
Внимательно читайте существующие подписи — подписи строк говорят, какой именно расчёт ожидается. Не догадывайтесь — читайте, чего просит шаблон.
-
Проверьте уже имеющиеся формулы — некоторые шаблоны приходят частично заполненными. Не перезаписывайте рабочие формулы без явной просьбы.
-
Отметьте особые соглашения шаблона — соглашения о знаках, структуру промежуточных итогов, организацию разделов, наличие отдельных вкладок под разные компоненты и т.д.
ЗАПОЛНЕНИЕ ФОРМУЛ — ОБЩИЙ ПОДХОД
Для каждой ячейки, которой нужна формула, держитесь такой иерархии:
Шаг 1: проверьте шаблон
- Есть ли в ячейке формула? Если да — убедитесь, что она верна, и идите дальше.
- Есть ли комментарий или заметка с указанием ожидаемого расчёта?
- Делает ли подпись строки/столбца расчёт очевидным?
- Показывают ли соседние ячейки шаблон, которому стоит следовать?
Шаг 2: проверьте инструкции пользователя
- Указал ли пользователь конкретный метод расчёта?
- Есть ли заявленные допущения, влияющие на эту формулу?
- Упоминались ли особые требования?
Шаг 3: примените стандартную практику
- Если ни шаблон, ни пользователь не задают расчёт, применяйте стандартные соглашения LBO-моделирования
- Документируйте любые допущения, которые делаете
- Если действительно не уверены — спросите пользователя
ТИПИЧНЫЕ ПРОБЛЕМНЫЕ МЕСТА
Перечисленные ниже расчётные шаблоны чаще всего вызывают сбои в моделях LBO. Будьте особенно внимательны, когда сталкиваетесь с ними:
Балансировка разделов
- Когда два раздела должны совпадать (например, Sources = Uses), один элемент обычно служит «plug»-позицией (балансирующая величина)
- Определите, какой элемент является plug-позицией, и рассчитайте его как разницу
Расчёты налога
- Формулы налога должны ссылаться только на нужную строку дохода и налоговую ставку
- НЕ должны ссылаться на посторонние разделы (например, графики долга)
- Подумайте, создают ли убытки налоговый щит или просто игнорируются
Проценты и циклические ссылки
- Расчёты процентов могут породить цикличность, если ссылаются на остатки, зависящие от денежных потоков
- Используйте начальный остаток (а не средний или конечный), чтобы разорвать цикл
- Схема: Проценты → Денежный поток → Погашение → Конечный остаток (если проценты опираются на конечный остаток, цикл замыкается)
Погашение долга / cash sweep
- Когда есть несколько траншей долга, обычно действует приоритетный порядок
- Cash sweep должен соблюдать приоритетную очерёдность (waterfall)
- Остатки не могут уходить в минус — применяйте функции MAX или MIN по ситуации
Расчёты доходности (IRR/MOIC)
- У денежных потоков должны быть верные знаки: Инвестиция = отрицательная, Поступления = положительные
- Для XIRR нужны соответствующие даты
- Для IRR денежные потоки должны идти подряд по периодам
- MOIC = Совокупные поступления / Совокупные инвестиции
Таблицы чувствительности
- Берите НЕЧЁТНЫЕ размерности (5×5 или 7×7) — никогда 4×4 или 6×6. Нечётная размерность гарантирует настоящую центральную ячейку.
- Центральная ячейка = базовый сценарий. Стройте значения осей строк и столбцов симметрично вокруг фактических допущений модели (например, если базовый входной мультипликатор = 10.0x, ось =
[8.0x, 9.0x, 10.0x, 11.0x, 12.0x]). IRR/MOIC в центральной ячейке тогда ОБЯЗАН совпадать с фактическим IRR/MOIC модели — это доказательство, что таблица собрана верно. - Подсветите центральную ячейку — средне-синяя заливка (
#BDD7EE) + жирный шрифт, чтобы базовый сценарий визуально закреплялся. - Функция DATA TABLE из Excel может не работать с openpyxl — вместо неё пишите явные формулы, ссылающиеся на заголовки строк/столбцов
- Каждая ячейка должна показывать РАЗНОЕ значение — если все одинаковы, формулы не варьируются как надо
- Используйте смешанные ссылки (например,
$A5для строкового входа,B$4для столбцового)
КОНТРОЛЬНЫЙ СПИСОК ПРОВЕРКИ — ПРОГНАТЬ ПОСЛЕ ЗАВЕРШЕНИЯ
Запустите валидацию формул
python /path/to/excel-author/scripts/recalc.py model.xlsx
Должен завершиться успехом без ошибок.
Балансировка разделов
- Любые разделы, которые должны сходиться (Sources/Uses, Assets/Liabilities), сходятся точно
- Plug-позиции рассчитаны верно как балансирующая величина
- Суммы, которые должны совпадать между разделами, согласованы
Прогнозы доходов/операционной деятельности
- Выручка/верхняя строка строится корректно из драйверов или темпов роста
- Все статьи затрат и расходов рассчитаны как положено
- Промежуточные итоги и итоги суммируются верно
- Маржа и коэффициенты разумны
- Ссылки на допущения корректны
Баланс (если применимо)
- Активы = Обязательства + Капитал (должно сходиться)
- Все статьи связаны с нужными графиками или роллфорвардами
- Начальные остатки = конечные остатки прошлого периода
- Включена строка-проверка и показывает ноль
Денежный поток (если применимо)
- Начинается с верной строки дохода
- Неденежные статьи прибавлены/вычтены как положено
- Изменения оборотного капитала имеют верные знаки
- Конечный остаток денег = Начальный остаток + Чистый денежный поток
- Остатки денег согласованы между отчётами
Вспомогательные графики
- Роллфорвард-графики сходятся (Начало + Изменения = Конец)
- Графики верно связаны с основными отчётами
- Рассчитываемые статьи используют нужные драйверы
- Все периоды рассчитаны единообразно
Графики долга/финансирования (если применимо)
- Начальные остатки увязаны с источниками или прошлым периодом
- Проценты рассчитаны на нужном остатке (обычно начальном)
- Погашения учитывают доступность денег и приоритет
- Конечные остатки не могут быть отрицательными
- Итоги верно суммируют транши
Анализ доходности/выходных показателей
- Выходные/терминальные стоимости рассчитаны верно
- Включены все нужные корректировки
- Знаки денежных потоков верны (отрицательный для инвестиции, положительный для поступлений)
- Формулы IRR/MOIC ссылаются на полные диапазоны
- Результаты разумны для сценария
Таблицы чувствительности (если применимо)
- Размерности сетки НЕЧЁТНЫЕ (5×5 или 7×7) — есть настоящая центральная ячейка
- Значения осей строк и столбцов симметричны вокруг базового сценария (
[base-2Δ, base-Δ, base, base+Δ, base+2Δ]) - Выход центральной ячейки равен фактическому IRR/MOIC модели — это подтверждает, что таблица собрана верно
- Центральная ячейка подсвечена (средне-синяя заливка
#BDD7EE, жирный шрифт) - Заголовки строк и столбцов содержат подходящие входные значения
- Каждая ячейка данных содержит формулу (не жёсткое значение)
- Каждая ячейка данных показывает РАЗНОЕ значение
- Значения меняются в ожидаемых направлениях (выше выходной мультипликатор → выше IRR и т.д.)
Форматирование
- Жёсткие входные данные синие (0000FF)
- Вычисляемые формулы чёрные (000000)
- Ссылки в пределах вкладки фиолетовые (800080)
- Межвкладочные ссылки зелёные (008000)
- Все числа выровнены по правому краю
- Подходящие числовые форматы применены повсюду
- Ни в одной ячейке нет ошибочных значений (#REF!, #DIV/0!, #VALUE!, #NAME?)
Проверки на здравый смысл
- Числа разумного порядка величины
- Тренды осмысленны (рост, спад, стабилизация — как ожидалось)
- Нет явно неверных значений (минус там, где должен быть плюс, невозможные проценты и т.д.)
- Ключевые выходы укладываются в разумные диапазоны для данного типа анализа
ТИПИЧНЫЕ ОШИБКИ, КОТОРЫХ СТОИТ ИЗБЕГАТЬ
| Ошибка | В чём проблема | Как исправить |
|---|---|---|
| Жёсткое вписывание вычисленных значений | Модель не пересчитывается при смене входов | Всегда используйте формулы со ссылками на исходные ячейки |
| Неверные ссылки после копирования | Формулы указывают на не те ячейки | Проверьте все ссылки, корректно расставьте якоря $ |
| Ошибки циклических ссылок | Модель не может посчитаться | Для расчётов процентов берите начальные остатки, разрывайте цикл |
| Разделы не сходятся | Итоги, которые должны совпадать, не совпадают | Сделайте один элемент plug-позицией (рассчитанной как разница) |
| Отрицательные остатки там, где это невозможно | Платится/используется больше доступного | Применяйте MAX(0, …) или функции MIN по ситуации |
| Ошибки IRR/доходности | Неверные знаки или неполные диапазоны | Проверьте знаки денежных потоков и охват всех периодов формулой |
| Таблица чувствительности показывает одно значение | Формула не варьируется со входами | Проверьте ссылки — нужны смешанные ссылки ($A5, B$4) |
| Роллфорварды не увязываются | Начало ≠ конец предыдущего | Проверьте связи между периодами |
| Несогласованные соглашения о знаках | Прибавления становятся вычитаниями и наоборот | Единообразно соблюдайте соглашение шаблона по всей модели |
РАБОТА С ПОЛЬЗОВАТЕЛЕМ — КОНТРОЛЬНЫЕ ТОЧКИ ПО РАЗДЕЛАМ
- Если структура шаблона неясна, спросите до начала работы
- Если требования пользователя противоречат шаблону, уточните, что он предпочитает
- После завершения каждого крупного раздела ОСТАНОВИТЕСЬ и сверьтесь с пользователем, прежде чем продолжать:
- После Sources & Uses → покажите сбалансированную таблицу, подтвердите корректность plug-позиции, получите согласование до построения операционной модели
- После Operating Model / Projections → покажите прогнозный P&L, подтвердите, что темпы роста и маржа выглядят верно, получите согласование до графика долга
- После Debt Schedule → покажите начальные/конечные остатки и проценты, подтвердите логику waterfall, получите согласование до доходности
- После Returns (IRR/MOIC) → покажите ряд денежных потоков и выходы, подтвердите знаки и диапазоны, получите согласование до таблиц чувствительности
- После Sensitivity Tables → покажите, что каждая ячейка варьируется, подтвердите, что базовый сценарий попадает туда, куда ожидалось
- Если при проверке найдены ошибки, исправьте их до перехода к следующему разделу
- Показывайте свою работу — поясняйте ключевые формулы или допущения, когда это полезно
- Никогда не показывайте готовую модель без сверок на каждом разделе — поймать неверную ссылку на ячейку у источника быстрее, чем отслеживать её назад от сломанного IRR
Этот навык выдаёт модели LBO уровня инвестбанка, заполняя шаблоны верными формулами, корректным форматированием и проверенными расчётами. Навык подстраивается под любую структуру шаблона, сохраняя финансовую точность и профессиональные стандарты подачи.
Источники данных — сначала MCP, затем веб как запасной вариант
Многие фрагменты ниже говорят «используйте S&P Kensho MCP / Daloopa MCP / FactSet MCP». Это коммерческие MCP с финансовыми данными из исходного контекста плагина Cowork. В Hermes:
- Если у вас настроен любой MCP со структурированными финансовыми данными (Hermes поддерживает MCP — см. навык
native-mcp), предпочтите его для актуальных данных по сопоставимым компаниям (comps), прецедентным сделкам и отчётности. - Иначе откатывайтесь на:
web_search/web_extractпо SEC EDGAR (https://www.sec.gov/cgi-bin/browse-edgar) для отчётности из США- страницы IR компаний для пресс-релизов, презентаций по результатам
browser_navigateдля интерактивных порталов данных- данные от пользователя (явно спрашивайте, когда их нет в контексте)
- Никогда не выдумывайте. Если мультипликатор, прецедент или число из отчётности не удаётся подтвердить источником, пометьте ячейку как
[UNSOURCED]и покажите её пользователю.
Атрибуция
Навык адаптирован из набора плагинов Anthropic Claude for Financial Services (Apache-2.0). Пути Office-JS / Cowork с живым Excel убраны; эта версия нацелена на headless openpyxl через соглашения навыка excel-author. Оригинал: https://github.com/anthropics/financial-services