Bottom-up market sizing & revenue feasibility

VerifiedSafe

Estimates market size bottom-up (companies × deal size), TAM/SAM/SOM, and reverse-checks whether revenue, ARR or customer-count targets are achievable.

Sby Skills Guide Bot
Data & AIAdvanced
11/8/2026
Claude Code
#market-sizing#bottom-up-analysis#tam-sam-som#revenue-planning#market-research

Recommended for

Automated summary

Estimates market size bottom-up (number of companies × average deal size) and uses reverse calculation to check whether a revenue, ARR, or customer-count target is achievable.

Strengths

  • Separates internal sources (CRM, billing, funnel) from open sources and states which figure each source should provide.
  • Requires every number to be a range with a source and confidence label, with derived calculations recorded in a number registry.
  • Handles multiple niches separately and forces vague segments to be made operational before counting them.
  • Surfaces discrepancies between internal and external data instead of silently picking one.

Limitations

  • Output quality depends heavily on internal data availability; without CRM or billing data, average deal size and attainable share become weak assumptions.
  • Requires reliable, verifiable external sources; estimates remain indicative for poorly documented segments.
  • Does not cover customer pain, founder profile, or alternatives, so it is not a complete product-validation study.
When to use it

Use it when you need to size a segment, build a TAM/SAM/SOM, or test a revenue target mathematically before continuing product analysis.

When not to use it

Avoid it when the question is about customer pain, founder profile, or alternatives, or when no usable data allows the segment to be defined.

Security analysis

Safe
Quality score80/100

The skill is a pure methodology/instruction document for bottom-up market sizing. It mentions web research (capped at 25 queries) and running a local sensitivity script, plus reading files from context/, but all of these are legitimate analytical steps with no destructive commands, no credential or secret handling, no obfuscated payloads, and no attempt to alter the auditor's role or instructions. No allowed-tools are declared, so it does not itself grant execution capability.

Findings
  • •References auxiliary documents and scripts that are not bundled with the skill (web-protocol.md, tools-index.md, M11 methodology, `python3 scripts/sensitivity.py`) — these cannot be audited here; if absent or substituted, runtime behavior is undefined.
How this analysis is made

Examples

TAM SAM SOM for a B2B segment
Оцени рынок снизу вверх для нашего B2B-сегмента: сколько компаний в России с выручкой 100–500 млн ₽, сколько они платят за смежные решения и какой TAM/SAM/SOM получается. Каждую цифру дай диапазоном с источником и уровнем уверенности.
Reverse calculation to ARR
Проверь обратным счётом, достижим ли ARR 300 млн ₽ за 3 года в нашем сегменте: используй нашу клиентскую базу и биллинг из context/, посчитай необходимое число клиентов и средний чек, покажи допущения.
Narrow a vague segment
Сегмент в ТЗ описан как «растущие технологичные компании». Сузь его до операционального определения по отрасли, размеру и географии, затем посчитай число компаний и скажи, хватит ли цели по числу клиентов.

name: market-sizing description: > Оценка рынка снизу вверх (компании × чек) и обратный счёт M11: сколько компаний в сегменте, сколько платят за смежное, достижима ли цель по выручке, ARR или числу клиентов. Данные из контекста и сети; каждая цифра — диапазон с источником и меткой уверенности. Триггеры: «размер рынка», «сколько компаний», «достижим ли ARR», «обратный счёт», «TAM SAM SOM», «market-sizing». Оркестратор зовёт при дыре про масштаб. НЕ боли, НЕ профиль носителя, НЕ альтернативы.

Оценка рынка

Ты отвечаешь на три вопроса:

  1. Сколько их — компаний в сегменте, который описан в ТЗ.
  2. Сколько платят — за смежное, за то, что уже решает эту задачу, за замещающую альтернативу.
  3. Хватит ли — достижима ли цель из ТЗ при этих двух цифрах.

Третий вопрос — главный. Первые два нужны, чтобы ответить на него цифрами, а не ощущением.

Два источника: внутренний и открытый

Смотри в оба, если внутренние данные есть. Они отвечают на разные вопросы:

| Что считаешь | Главный источник | Почему | | --- | --- | --- | | Сколько компаний в сегменте всего | открытый: реестры, статистика | внутри видно только своих клиентов | | Сколько клиентов в сегменте уже у нас | внутренний: клиентская база, CRM | в сети этого нет | | Чек | внутренний: биллинг, средний платёж по сегменту | реальный чек точнее любой оценки по ценам конкурентов | | Доля сегмента, которую реально взять | внутренний: текущее проникновение, конверсия воронки, темп прироста | заменяет допущение фактом | | Сколько сегмент тратит на смежное | открытый: цены, тендеры, отчёты | внутри этого нет |

Внутренние данные — в context/ и context/from-tasks/: выгрузки клиентской базы по сегментам, биллинг, воронка с конверсиями, продуктовая аналитика, прошлые оценки рынка. Прочитай их до первого запроса в сеть.

Если внутренних данных нет — считай по открытым, а там, где их заменило бы внутреннее, ставь пометку «допущение». Особенно чек и долю: без внутренних данных это самые слабые места расчёта.

Если внутреннее и открытое расходятся — например, реальный чек вдвое ниже цен из сети, — не выбирай молча. Покажи обе цифры, объясни возможную причину и считай вердикт по внутренней, если речь о своих клиентах. Расхождение — сам по себе вывод: оно может значить, что ты продаёшь другому сегменту, чем думаешь.

Работай по web-protocol.md: уровни источников, проверка отчётов, запрос на опровержение, метки уверенности. Каждое число расчёта — в реестр чисел (п. 2в): факты из источников с фрагментом, допущения с причиной, все производные — формулой, которую пересчитывает скрипт. Свою арифметику прозой не записывай. Методика обратного счёта — M11 · Обратный счёт: достижима ли цель математически, через tools-index.md.


Шаг 1. Сегмент — операционально

Сегмент и границы категории — по методологии С: два определения рынка (узкое для позиционирования, широкое для размера), внешние слои для размера, достижимость отдельно (С · Достижимость).

Из ТЗ и разбора консультанта собери определение сегмента, по которому можно считать:

  • отрасль — как её называют в реестрах и статистике
  • размер — сотрудники или выручка, диапазоном
  • география
  • кто носитель и кто платит

Если сегмент в ТЗ сформулирован так, что его нельзя посчитать («растущие компании», «технологичный бизнес»), сузь до считаемого и запиши, как сузил. Границы периметра — M1 · Первый шаг — отсечь мёртвые зоны.

Несколько ниш в задаче — каждая считается отдельно.


Шаг 2. Сколько компаний

Снизу вверх. Ищи прямой счёт компаний, а не долю от большого рынка.

Источники, от надёжных к косвенным:

  • официальная статистика и реестры юрлиц и малого бизнеса страны из ТЗ
  • отраслевые ассоциации, лицензии, реестры участников регулируемых рынков
  • отраслевые отчёты — только прошедшие проверку из протокола
  • косвенные признаки: число вакансий под роль носителя, число компаний в каталогах и на площадках отрасли

Если есть своя клиентская база — отдельной строкой: сколько клиентов этого сегмента уже у нас. Это и проверка определения сегмента: если своих клиентов в нём ноль, а продукт продаётся давно, сегмент, возможно, описан не тот.

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

Отчёт вендора с «рынком в $N млрд» — не счёт компаний. Используется только как контекст, с пометкой.


Шаг 3. Сколько платят

Если есть свой биллинг — начни с него: средний годовой платёж клиентов этого сегмента, диапазон между нижним и верхним квартилем. Это факт, а не оценка. Открытые источники дальше нужны, чтобы понять потолок и сравнить с альтернативами.

По открытым источникам чек ищется от того, что компания уже тратит на эту задачу:

  • смежные продукты, которые сегмент уже покупает, — их публичные цены. Цены на сайтах вендоров — исключение из правила протокола: это факт, который вендор публикует сам. Засчитываются как цена, но не как свидетельство, что продукт покупают
  • тендеры — реальные суммы контрактов, если сегмент закупает через них
  • стоимость замещающей альтернативы — зарплата роли, которую нанимают вместо продукта, по вакансиям. Это потолок, с которым сравнивают любую цену
  • отчёты о расходах сегмента на ИТ или на категорию — после проверки

Результат — диапазон годового чека (ACV) с источником каждой границы. Если чек неизвестен совсем — так и пиши и дальше считай с чеком как допущением.


Шаг 4. Обратный счёт

M11 · Обратный счёт. Цель из ТЗ разворачивается назад:

Цель (например, $1M ARR)
÷ чек (диапазон из шага 3)
= сколько нужно клиентов

÷ достижимая доля сегмента за срок из ТЗ
= сколько компаний должно быть в сегменте

сравнить с числом компаний из шага 2

Доля сегмента — из внутренних данных, если они есть: сколько клиентов сегмента уже у нас от числа компаний в нём, с какой скоростью это число растёт, какая конверсия воронки. Тогда доля — факт с экстраполяцией, и так её и помечай.

Без внутренних данных доля — допущение, а не факт. Никогда не подставляй её молча. Покажи отдельной строкой с диапазоном и пометкой «допущение», чтобы человек видел и мог поправить. Если в ТЗ срок не задан — считай на два варианта срока и покажи оба.

Вердикт по каждой нише:

  • достижимо — компаний хватает с запасом даже при нижней границе чека и осторожной доле
  • на грани — хватает только при верхней границе чека или смелой доле
  • недостижимо — не хватает даже при верхних границах

Чувствительность. Назови переменную, от которой вердикт зависит сильнее всего: чек, число компаний или доля. Это то, что нужно уточнять первым.

Для «на грани» и «недостижимо» — варианты из M11, по порядку: поднять чек, расширить сегмент, комбинация, и только последним — цель в текущей конфигурации не достигается, с обоснованным диапазоном того, что достижимо.


Правила

  • Диапазоны, а не точки. Одна цифра выглядит точнее, чем она есть.
  • Факты отдельно от допущений. У каждой цифры пометка: внутренний факт, открытый факт или допущение.
  • Внутреннее — первым, если оно есть: свои цифры о своих клиентах точнее любой оценки из сети.
  • Две независимые оценки там, где возможно. Число компаний из реестра и из косвенных признаков. Чек из цен смежного и из стоимости найма.
  • Метка уверенности у каждой цифры — по протоколу.
  • Запрос на опровержение — хотя бы один на нишу: где пишут, что сегмент маленький, не платит, уже занят.
  • Оценки и чувствительность — по методологии О: оценка Ферми, диапазоны вместо точек, порядок влияния параметров (python3 scripts/sensitivity.py --task … --formula … --range N-id=низ..верх). Источники читаются по К · Паспорт источника.
  • Охват и время — две разные оси. Нельзя подставлять долю купивших за всё время вместо доли покупающих в периоде.
  • Точность результата не выше самого слабого параметра. Расхождения между оценками разбирай списком причин, не усредняй.
  • Нет независимого второго пути — пометка «один путь».
  • Бюджет — до двадцати пяти запросов на задачу.

Признак провала

  • точечные оценки без диапазонов
  • размер рынка взят сверху вниз из одного отчёта
  • доля сегмента подставлена молча, без пометки «допущение»
  • внутренние данные были в контексте, а расчёт сделан только по открытым
  • вердикт без чувствительности — непонятно, что уточнять
  • все ниши «достижимы» — скорее всего, допущения подобраны под ответ

Формат выхода

Файл src-market-size.md.

По каждой нише:

НИША: <сегмент — как посчитан>

Компаний:        <диапазон> — [N-id] границ, фрагменты «…» [F-id], уровень, уверенность
Уже наших:       <число> — внутр. / нет данных
Чек (ACV):       <диапазон> — внутр. или откр., [N-id] границ, фрагменты «…» [F-id], уверенность
Нужно клиентов:  <цель ÷ чек> — производное [N-id], формула в реестре
Доля сегмента:   <диапазон> — внутр. (факт с экстраполяцией) или ДОПУЩЕНИЕ [N-id]
Расхождения:     где внутреннее и открытое не сошлись — обе цифры и возможная причина
Нужно компаний:  <клиенты ÷ доля>
Вердикт:         достижимо / на грани / недостижимо
Чувствительность: какая переменная решает
Опровержение:    запрос → что нашёл

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

Чего не делать

  • Не брать TAM из отчёта вендора и не делить его на проценты.
  • Не подставлять долю сегмента без пометки.
  • Не называть нишу «достижимой» при чеке-допущении без оговорки.
  • Не искать боли и не описывать носителя — это другие скиллы.

Контракт в системе

Перенесено из реестра оркестратора: market-sizing. Оркестратор читает этот раздел перед вызовом.

Что делает. Оценка рынка: сколько компаний в сегменте, сколько они уже платят за смежное и достижима ли цель из ТЗ. Обратный счёт из M11: цель ÷ чек = нужно клиентов, сверка с числом компаний. Снизу вверх, диапазонами, с метками уверенности.

Вход. ТЗ: сегмент, география, цель в цифрах и срок. Желательно — разбор консультанта и внутренние данные из контекста: клиентская база по сегментам, биллинг, воронка с конверсиями.

Выход. По каждой нише: число компаний, чек, нужное число клиентов, доля сегмента как явное допущение, вердикт «достижимо / на грани / недостижимо», чувствительность. Файл src-market-size.md.

Отвечает на. Сколько компаний в сегменте, сколько они уже платят за смежное, достижима ли цель в цифрах.

Не отвечает на. Нашу конверсию и чек без своих данных (запрос данных или формула с неизвестными), боли и альтернативы.

Достаточный ответ — образец. Диапазон «компании × чек» снизу вверх, числа через реестр, обратный счёт цели, вердикт по нише. Оркестратор подстраивает его под пункт пути, а не копирует.

Внутренние данные — первыми, если есть: свой чек, свои клиенты в сегменте, конверсия — вместо допущений. Веб — для размера сегмента и расходов на смежное, по web-protocol.md: статистика и реестры, отраслевые ассоциации, проверенные отчёты, цены смежных продуктов, тендеры, вакансии как стоимость замещающей альтернативы. До двадцати пяти запросов.

Когда не вызывать. В ТЗ нет ни цели в цифрах, ни вопроса о масштабе. Сегмент не определён даже примерно — сначала target-audience-analyst.

Цена. Высокая: много веб-поиска.

Признак провала. Точечные оценки без диапазонов. Размер сверху вниз из одного отчёта. Доля сегмента без пометки «допущение». Все ниши «достижимы». Внутренние данные были, а расчёт только по открытым.

Сигнал для оркестратора. Цель недостижима во всех нишах — это расхождение с ТЗ: остановка и вопрос человеку с обоснованным диапазоном достижимого.

Две формы обратного счёта. Оценка рынка — одна из двух допустимых форм. Другая — расчёт внутри плана проверки, когда узкое место не размер рынка, а своя конверсия и чек. Тогда market-sizing не вызывается, а в логе записано, почему.

From the file to a first result

The download contains exactly the content displayed on this page. This copy may differ from the latest version in the source repository.

View the source and supporting files

This download contains SKILL.md only. Any scripts, references, templates and dependencies are not included. Get the required files from the source, preserving their directory structure, before continuing.

1. Download the file

Download SKILL.md

From the root of a test project, save the file as .skill-downloads/bottom-up-market-sizing-revenue-feasibility-mvj1oc1s/SKILL.md, or use the command below. This folder is for inspecting the skill before installation.

Command for macOS/Linux or WSL: requires a POSIX shell and curl. On Windows without WSL, use the download button and create the folder manually.

mkdir -p '.skill-downloads/bottom-up-market-sizing-revenue-feasibility-mvj1oc1s' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/bottom-up-market-sizing-revenue-feasibility-mvj1oc1s/download' --output '.skill-downloads/bottom-up-market-sizing-revenue-feasibility-mvj1oc1s/SKILL.md.part' && mv '.skill-downloads/bottom-up-market-sizing-revenue-feasibility-mvj1oc1s/SKILL.md.part' '.skill-downloads/bottom-up-market-sizing-revenue-feasibility-mvj1oc1s/SKILL.md'

2. Check prerequisites

Read SKILL.md before using it. If it references scripts or external services, inspect them and prepare the required access in your test environment.

No recognized prerequisites section in this file. This does not mean it is self-contained: libraries, tools and access requirements may be mentioned elsewhere in the content or source repository.

The platforms on this page are catalog indications. The paths below follow tool documentation; they do not prove this skill has been run in those tools. No minimum tool version is confirmed for this listing.

3. Load the skill

After inspection, copy the complete folder into your project using one of the commands below, then open a new tool session. The command stops if a folder with the same name already exists: compare the files before replacing it.

Claude Code
test -f '.skill-downloads/bottom-up-market-sizing-revenue-feasibility-mvj1oc1s/SKILL.md' && test -s '.skill-downloads/bottom-up-market-sizing-revenue-feasibility-mvj1oc1s/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/market-sizing' && cp -R '.skill-downloads/bottom-up-market-sizing-revenue-feasibility-mvj1oc1s' '.claude/skills/market-sizing'

OpenSkills

OpenSkills must already be installed. The local install/read procedure is checked with OpenSkills 1.5.0, which requires Node.js ≥ 20.6.0. Catalog slugs are not resolved automatically.

Official OpenSkills installation
openskills install './.skill-downloads/bottom-up-market-sizing-revenue-feasibility-mvj1oc1s'

openskills read 'bottom-up-market-sizing-revenue-feasibility-mvj1oc1s'

Reading should display the installed file content and its base directory. It does not run the skill or install its dependencies.

For an agent that reads AGENTS.md, then sync the index. This command changes AGENTS.md: review the diff before using it.

openskills sync

Manual method or another tool: attach SKILL.md to a conversation, or open it in an agent that can read files. Include any required supporting resources. No universal folder is recognized by every tool.

4. Try a first task

Use a short, synthetic input: an API endpoint, a small document or an interface brief. In a new conversation, attach the file or give the agent its path, then adapt this request:

Read .skill-downloads/bottom-up-market-sizing-revenue-feasibility-mvj1oc1s/SKILL.md and apply its instructions to this example: [describe a test input]. Identify any missing files, dependencies or access. Produce the result requested by the skill without inventing data or running unreviewed scripts.

Expected result: output matching the skill instructions, or a precise list of missing prerequisites. A read confirmation alone does not validate a first use. If an external resource is unavailable, that path remains untested.

Related skills