# Контракт учебной сегментации

Все ID и заказы вымышлены. Это расчёт по заданным условиям, не тест CRM, нейросети или доставки сообщений. Контракт не приписывается Sendsay.

## Область данных

- Полный **учебный** список: 12 клиентов C01–C12, в том числе C07 без заказов. Отсутствие события в реальной неполной выгрузке не доказывает отсутствие покупки.
- Снимки заказов, не журнал смены статусов: одна итоговая запись на уникальный order_id. Полный одинаковый повтор удаляется. Различающиеся строки одного order_id — ошибка входа, расчёт останавливается; нельзя считать их отдельными покупками.
- Момент заказа `ordered_at`, с часовым поясом. Период [2026-10-01 00:00:00+03:00, 2026-10-25 00:00:00+03:00): начало входит, конец нет. Это 24 календарных дня, не «последний месяц» и не обещание окна CRM.
- Только итоговый статус `completed`. Отменённые и полностью возвращённые заказы исключены. Иные/пустые статусы — неизвестное состояние. Частичные возвраты не представлены: для реальных данных сначала определить, какую сумму сравнивать.
- Деньги целыми копейками, валюта RUB; порог заказа 500000 копеек = 5000 рублей. Суммарный порог 1000000 копеек = 10000 рублей. Цена товара, доставка, прибыль и LTV не подменяют итоговую сумму заказа. Здесь сумма заказа уже дана, её экономический состав вне примера.
- Известно, что суммы неотрицательные. Пустая/отрицательная/нецелая сумма, неизвестная валюта или USD без курса — неполные данные, не ноль и не рубли. Неверное/пустое время у потенциально подходящего статуса тоже оставляет возможный заказ.
- Сначала исключаются известный неподходящий статус и известный момент вне периода; пустая сумма отменённого заказа не делает клиента неизвестным. Остальные проблемные записи вынесены в quarantine.csv и могут изменить аудиторию.

## Три разные задачи

A: «Как минимум два завершённых заказа, **каждый из этих двух** от 5000 рублей, в периоде». Сначала отбираем подходящие события по сумме, потом считаем: `count(qualifying orders) >= 2`. Дополнительная дешёвая покупка не мешает (C01). Это не условие «все покупки клиента дорогие».

B: «Сумма завершённых заказов в периоде от 10000 рублей»: `sum(order amount) >= 1000000`. Три недорогих заказа могут пройти (C02).

C: «Хотя бы один завершённый заказ в периоде от 5000 рублей»: `exists(qualifying order)`. Один дорогой заказ не доказывает два (C03).

Порог B выбран как 2×5000 для наглядности; A и B не являются эквивалентными. При полных неотрицательных суммах A ⇒ B и A ⇒ C. Обратные утверждения неверны; B и C тоже не эквивалентны.

## Неизвестность

Результат каждой проверки: `yes`, `no` или `unknown`. В этом примере unknown-заказ может либо не подойти, либо иметь произвольную неотрицательную сумму. Известные покупки задают нижнюю границу.

- A: yes при двух известных дорогих; no, если даже с возможными заказами двух не набрать; иначе unknown.
- B: yes при известной сумме от 10000; unknown при меньшей сумме и хотя бы одном неизвестном заказе; иначе no.
- C: yes при одном известном дорогом; unknown при нуле известных дорогих и неизвестных заказах; иначе no.

Unknown не включается автоматически в аудиторию и не объявляется отказом: сначала исправить/догрузить входы. При наличии гарантированных yes исправление входа может добавить другие yes, но не отменяет уже доказанное по этому контракту.

## Ограничение документального основания

В сохранённой документации Sendsay версия «Продажи Старт» ограничена последними 48 часами; полная версия описана иначе. Наш 24-дневный журнал не является проверкой его доступности в конкретном аккаунте. Документ говорит об условиях событий и количестве; функция перевода свободного русского текста нейросетью здесь **не подтверждена**. Перед будущим выпуском требуется живое повторное чтение и полные гейты.
