кластер: дробление бизнеса

Дробление бизнеса: признаки, которые считает код

С 2026 года у дробления появился главный мотив: освобождение от НДС на УСН держится только до 20 млн ₽ выручки в год. «Каждая компания группы под порогом, а вместе — сильно над» теперь вычисляется из открытых данных напрямую.

8 признаков, проверяемых кодом

  1. общий директор у группы компаний;
  2. общий учредитель у группы;
  3. единый адрес регистрации;
  4. идентичный основной ОКВЭД;
  5. все компании группы на УСН;
  6. каждая компания под порогом освобождения от НДС (20 млн ₽ в 2026), а группа в сумме над ним;
  7. совокупная выручка группы над лимитом УСН (490,5 млн ₽);
  8. численность ~0 при ненулевой выручке у нескольких компаний группы.

Синтетический пример из тестов скилла: 4 компании с общим директором, адресом и УСН, выручка 18 млн у каждой — по одной чисто, а группа 72 млн — это 7 совпадающих признаков из 8.

Пороги 2026 — из версионируемого канона

Порог2026Дальше
Освобождение от НДС на УСН20 млн ₽15 млн (2027), 10 млн (2028)
Лимит УСН490,5 млн ₽индексация
Переходный лимит УСН337,5 млн ₽—

Каждое число живёт в data/canon_ru.json со ссылкой на первоисточник и датой проверки (19.09.2026) — скоринг читает пороги оттуда, а не из констант кода.

Формулировочная дисциплина: аффилированность ≠ дробление

Суды прямо говорят: аффилированность сама по себе не доказывает дробление. ФНС доказывает совокупностью признаков плюс вторичный контур — IP-адреса клиент-банка, финпотоки, единая 1С — которого в открытых данных нет. Поэтому вывод скоринга всегда звучит одинаково:

«N признаков, совпадающих с типовыми доводами ФНС по спорам о дроблении (письмо БВ-4-7/8051@ от 16.07.2024)» — и никогда «это дробление».

Светофор здесь — раннее предупреждение контрагенту и собственнику, а не заключение. 3+ признака → 🟡, 5+ → 🔴 (синхронно с чеклистом однодневки).

Как это работает технически

  1. affiliates_graph.py <ИНН> строит граф глубины 2 по checko API (бесплатный ключ; без ключа — связи собираются браузером через --offline-граф). Рёбра помечены «⚠️ один источник, требует пересечения».
  2. droblenie_check.py считает чеклист по графу и выручке ГИР БО; если выручка досталась не по всем компаниям — честное «по N из M».
  3. Ключевые связи перед решением пересекаются вторым источником (ЕГРЮЛ-выписка, rusprofile, СБИС) — принцип «одиночному источнику не верим» действует и на граф.