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:

  1. Если файл-шаблон приложен/предоставлен: используйте его структуру в точности — скопируйте и заполните данными пользователя
  2. Если шаблон не приложен: спросите пользователя: “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.”
  3. Если используете стандартный шаблон: возьмите за отправную точку 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, чёрный жирный текст
  • Это вся палитра. 3 синих + 1 серый + белый. Если в шаблоне свои цвета, следуйте шаблону.
  • Примечание: синий/чёрный/фиолетовый/зелёный цвета шрифта выше нужны для различения ввода, формул и ссылок. Они отдельны от палитры заливки здесь — обе работают вместе.

Стандарты форматирования чисел

  • Валюта: $#,##0;($#,##0);"-" или $#,##0.0 в зависимости от шаблона
  • Проценты: 0.0% (один знак после запятой)
  • Мультипликаторы: 0.0"x" (один знак после запятой)
  • MOIC/детальные коэффициенты: 0.00"x" (два знака для точности)
  • Все числовые ячейки: выравнивание по правому краю

Сначала проясните требования

Прежде чем вписывать формулы:

  • Изучите структуру шаблона — определите все разделы, разберитесь с таймлайном (какие столбцы какому периоду соответствуют), отметьте уже имеющиеся формулы
  • Спросите пользователя, если что-то неясно — если структура шаблона, методы расчёта или требования двусмысленны, уточните до начала работы
  • Подтвердите ключевые допущения — любые важные входы, предпочтения по расчётам или особые требования
  • ТОЛЬКО ПОСЛЕ того как разобрались с шаблоном, приступайте к заполнению формул

ФАЗА АНАЛИЗА ШАБЛОНА — СДЕЛАЙТЕ ЭТО ПЕРВЫМ

Прежде чем вписывать формулы, тщательно изучите шаблон:

  1. Составьте карту структуры — определите, где находится каждый раздел и как они связаны. Отметьте, какие разделы питают другие.

  2. Разберитесь с таймлайном — какие столбцы каким периодам соответствуют? Есть ли столбец «Closing» или «Pro Forma»? Где начинается прогнозный период?

  3. Различайте ячейки ввода и формул — шаблоны часто помечают цветом, границами или заливкой, где нужны входные данные, а где формулы. Соблюдайте эти соглашения.

  4. Внимательно читайте существующие подписи — подписи строк говорят, какой именно расчёт ожидается. Не догадывайтесь — читайте, чего просит шаблон.

  5. Проверьте уже имеющиеся формулы — некоторые шаблоны приходят частично заполненными. Не перезаписывайте рабочие формулы без явной просьбы.

  6. Отметьте особые соглашения шаблона — соглашения о знаках, структуру промежуточных итогов, организацию разделов, наличие отдельных вкладок под разные компоненты и т.д.


ЗАПОЛНЕНИЕ ФОРМУЛ — ОБЩИЙ ПОДХОД

Для каждой ячейки, которой нужна формула, держитесь такой иерархии:

Шаг 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

ESC