Маркетплейсы

Считайте истинный ДРР и ставку биддера по SKU

Кросс-маркетплейсный compute-движок для управления рекламой: истинный ДРР с маржой, автостоп убыточных SKU, распределение бюджета по ABC, расчёт target-ставки. Pure pandas, без сети — детерминизм для горячего пути биддера (тик 15 мин). Применение решений в Ozon/WB/ЯМ — через гайд-навыки маркетплейсов.

Как агент работает

Контракты входа заданы жёстко, потому что от них зависит воспроизводимость: все денежные значения — в копейках, ABC-класс — строка 'A', 'B' или 'C' без учёта регистра, неклассифицированный SKU подаётся как 'C', поле exploration_until — это pd.Timestamp с таймзоной UTC или pd.NaT, target_drr передаётся процентом вида 12.0, а conversion rate — долей от нуля до единицы, где 0.04 означает четыре процента.

Функция compute_sku_pnl возвращает копию входного DataFrame с тремя числовыми колонками: pnl_kopeks в копейках, а также true_drr и margin_pct, округлённые до двух знаков. Поиск убыточных товаров устроен по-другому: find_loss_makers выдаёт по одной записи на каждое сработавшее правило, так что один SKU может встретиться несколько раз — negative_margin, drr_overshoot, ad_spend_above_margin, с severity high или medium.

Решения об остановке детерминированы порядком правил: apply_pause_rules даёт ровно один результат на SKU, и побеждает первое сработавшее — exploration, затем negative_margin, затем oos_lt_7d, затем returns_above_15pct, и только если ничего не сработало, статус ok. Функция propose_lineup тоже отдаёт один результат на SKU со стратегией push, hold, pause или exploration, причём для pause бюджет и ставка равны нулю.

Ставка считается функцией compute_target_bid, которая возвращает целое число в копейках. SKU на cold-start получает EXPLORATION_BID_KOPEKS, то есть 5000 копеек или 50 рублей. Если сигнала по конверсии нет, текущая ставка не трогается, только придерживается минимальным флором. В остальных случаях результат клампится в пределах плюс-минус 50% от current_bid — это страховка от качелей на коротких пятнадцатиминутных тиках.

Ядро сознательно ничего не умеет за пределами расчёта: оно не ходит в сеть и не вызывает API Ozon, Wildberries или Яндекс Маркета, не пишет в базу и не считает себестоимость, комиссии и логистику с нуля — они должны уже лежать в поданном DataFrame. Чтение и применение решений на площадке — работа гайд-навыков маркетплейсов, маппинг типов списаний — задача юнит-экономики, а выбор авто или ручной кампании — стратегии рекламы.

Примеры задач

Истинный ДРР с учётом маржи

По каждому SKU считается P&L: выручка минус себестоимость, комиссия, логистика, возвраты и реклама — ДРР от прибыли, а не от оборота.

Автостоп убыточных SKU

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

Бюджет по ABC-классам

Рекламный бюджет распределяется по вкладу товаров в прибыль: класс A получает масштабирование, класс C — минимум или отключение.

Вопросы и ответы

Почему расчёты детерминированные?

Ядро — чистые pandas-функции без сети и без LLM-арифметики: один и тот же вход всегда даёт один и тот же результат. Это требование горячего пути биддера с тиком в 15 минут.

С какими маркетплейсами работает ядро?

С любыми — оно кросс-платформенное и не знает о конкретной площадке. Применение решений (смена ставок, остановка кампаний) выполняется через гайд-навыки WB, Ozon и Яндекс Маркета.

В каком формате подаются данные?

DataFrame по SKU: выручка, себестоимость, комиссия, логистика, возвраты, расходы на рекламу — суммы в копейках, чтобы исключить ошибки округления.

Системный промпт

Marketplace Ads — Compute Core (cross-MP)

Кросс-маркетплейсный compute-движок для биддера. Pure pandas — без сети, без знания о конкретном маркетплейсе. Один вход — DataFrame, один выход — DataFrame или list[dict] с детерминированным результатом.

Контракты входа

  • Все денежные значения — в копейках (int или float). Если на руках рубли — умножь на 100.
  • ABC-класс — строка 'A' | 'B' | 'C' (case-insensitive). Если SKU не классифицирован, передай 'C'.
  • exploration_untilpd.Timestamp (UTC-aware) или pd.NaT. SKU считается cold-start, пока значение в будущем.
  • target_drr — процент (12.0, не 0.12).
  • cr (conversion rate) — доля 0..1 (например, 0.04 = 4%).

Контракты выхода

  • compute_sku_pnl: копия входа + три числовые колонки (pnl_kopeks в копейках, true_drr и margin_pct округлены до 2 знаков).
  • find_loss_makers: один SKU может встречаться несколько раз — по одному элементу на каждое сработавшее правило (negative_margin, drr_overshoot, ad_spend_above_margin); severity{high, medium}.
  • apply_pause_rules: ровно один результат на SKU; первое сработавшее правило побеждает (explorationnegative_marginoos_lt_7dreturns_above_15pctok).
  • propose_lineup: ровно один результат на SKU; strategy{push, hold, pause, exploration}. Для pause бюджет и ставка = 0.
  • compute_target_bid: возвращает int. Cold-start → EXPLORATION_BID_KOPEKS = 5000 (50 ₽). Без CR-сигнала → не трогаем current_bid (с минимальным флором). Иначе клампим в ±50% от current_bid (страховка от качелей при коротких тиках).

Что этот скилл НЕ делает

  • Не ходит в сеть. Не вызывает Ozon/WB/ЯМ API. Если нужно прочитать данные — это работа гайд-навыка маркетплейса.
  • Не пишет в БД. Только compute.
  • Не решает «авто или ручная кампания». Это методологический выбор → marketplace_ads_strategy_ru.
  • Не считает COGS / комиссии / логистику с нуля — ожидает их уже в DataFrame. Маппинг типов списаний — задача unit_economics_ru.

Похожие навыки

Акции и распродажи на маркетплейсахСтратегический анализ участия в акциях Wildberries, Ozon и Яндекс Маркет: расчёт минимальной цены для акции, решение «входить / не входить», автоакции WB, эластичный бустинг Ozon, календарь акций, влияние на органику. Дополняет навык «Ценообразование» блоком принятия решений по промо-активностям.Запуск товара на маркетплейсеСквозной алгоритм запуска нового товара на Wildberries, Ozon, Яндекс Маркет: от выбора ниши → поставщик → первая поставка → первые продажи → набор отзывов → выход в органику. 8 фаз с чеклистами, формулами, критериями go/no-go на каждом этапе. Оркестрирует смежные навыки (niche_analysis_ru, marketplace_card_ru, marketplace_search_seo, unit_economics_ru и др.).Логистика и распределение по складамРасчёт оптимального распределения товаров по складам WB и Ozon, выбор схемы логистики (FBO/FBS/DBS), анализ коэффициентов приёмки, стоимости хранения и логистических тарифов, калькулятор юнит-экономики с учётом всех логистических расходов, мониторинг изменений тарифов 2026.Сверка финотчётов маркетплейсовБухгалтерская экспертиза еженедельных и ежемесячных финансовых отчётов Wildberries, Ozon и Яндекс Маркет: сведение всех строк отчёта с реальными продажами и банковскими выписками, расшифровка удержаний (PPV, обратная логистика, хранение, утилизация, штрафы), поиск расхождений и скрытых списаний, формулы расчёта для каждого маркетплейса, подготовка к оспариванию. Аналог Pi-Data, MPFinAssist, TrueStats (финансовый модуль).SEO внутреннего поиска маркетплейсовСемантическое ядро, факторы ранжирования, стратегия продвижения в поиске Wildberries, Ozon, Яндекс Маркет, Магнит Маркет. Оптимизация карточек, аналитика поисковых запросов, тренды AI/визуального/голосового поиска 2026.Аналитика рекламы на маркетплейсахКомплексный анализ рекламных кампаний на маркетплейсах (Wildberries, Ozon): ключевые слова, ставки, бюджеты, юнит-экономика, ценообразование, минусация, оптимизация ДРР.
Категория
Маркетплейсы
Платформа
Сам Решу

Попробуйте этот навык

Зарегистрируйтесь и используйте навык «Биддер: compute-ядро (cross-MP)» бесплатно.