WildberriesWBсобеседованиеаналитика данныхмаркетплейсClickHouseRecSysкарьера

Вопросы собеса в Wildberries на аналитика 2026: 25+ реальных + разбор

2026-06-04 24 мин

Wildberries — крупнейший маркетплейс РФ по GMV (3 трлн ₽ в 2025), и собес туда отличается от Ozon: больше про операционные метрики (логистика, return rate, sortировочные центры) и RecSys (search ranking + personalized feed). В этом гайде разберу 25+ реальных вопросов с 5 раундов собеса аналитика WB (Marketplace / Pricing / Logistics / Search) — с разбором сильного и слабого ответа.

Главное про Wildberries
WB фокусируется на **операционке маркетплейса**: return rate, fulfillment cost, доставка, sortировка. Тех стек ClickHouse + Airflow + dbt + Python ML. Если ты из чистого e-comm — учитывай специфику логистики.

Грейды аналитика в Wildberries (2026)

ГрейдCompensation/мес РФОпытЧто спрашивают
Junior140-220K ₽0-1 годSQL базовый, pandas, базовые маркетплейс-метрики
Middle220-340K ₽1-3 годаClickHouse advanced, A/B-тесты, return rate analysis
Senior340-520K ₽3-6 летML/Search ranking, RecSys, supply chain analytics
Lead520-700K+ ₽6+ летMulti-team projects, маркетплейс strategy, mentorship

По данным Levels.fyi 2026: WB входит в топ-3 РФ по compensation для analytics (3.89M ₽/год median total comp).

5 раундов собеса Wildberries

РаундЧтоДлительность
1. HR-скринингМотивация, маркетплейс опыт, expectations30 мин
2. SQL live (ClickHouse)2-3 задачи + WB-specific cases60 мин
3. Python + MLpandas + scoring models + A/B60 мин
4. Маркетплейс-кейсSearch ranking / return rate / pricing60 мин
5. Финал с лидомBehavioral + system thinking45 мин

→ Полный гайд: 150+ вопросов собеса аналитика

8 SQL-вопросов с собеса WB (ClickHouse)

Топ-100 SKU по выручке за неделю с фильтром на returns.

✅ Сильный ответ:

\\\sql

SELECT sku_id, sum(revenue) - sum(return_amount) AS net_revenue

FROM orders

WHERE order_date >= today() - 7

AND status IN ('completed', 'returned')

GROUP BY sku_id

ORDER BY net_revenue DESC

LIMIT 100;

\\\

Senior follow-up:

Return rate по категориям — найди топ-10 с высоким return rate.

✅ Сильный ответ:

\\\sql

SELECT

category_id,

count() AS total_orders,

countIf(status = 'returned') AS returned,

countIf(status = 'returned') * 100.0 / count() AS return_rate_pct,

sum(revenue) AS gmv_at_risk

FROM orders

WHERE order_date >= today() - 30

GROUP BY category_id

HAVING total_orders >= 1000

ORDER BY return_rate_pct DESC

LIMIT 10;

\\\

Senior follow-up: «Why HAVING total_orders >= 1000? — иначе мелкие категории с 5/10 = 50% return overstate проблему. Statistical significance.»

→ Полный гайд по ClickHouse

Search-to-purchase conversion на ClickHouse: query за неделю.

✅ Сильный ответ:

\\\sql

WITH user_funnel AS (

SELECT

user_id,

countIf(event_type = 'search') AS searches,

countIf(event_type = 'view_pdp') AS views,

countIf(event_type = 'add_to_cart') AS carts,

countIf(event_type = 'purchase') AS purchases

FROM events

WHERE event_date >= today() - 7

GROUP BY user_id

)

SELECT

countIf(searches > 0) AS searched,

countIf(views > 0) AS viewed,

countIf(carts > 0) AS added_to_cart,

countIf(purchases > 0) AS purchased,

100.0 * countIf(purchases > 0) / countIf(searches > 0) AS search_to_purchase

FROM user_funnel;

\\\

→ Воронка конверсии в SQL

AggregatingMergeTree — зачем в WB?

✅ Сильный ответ:

«В WB на ClickHouse — обязательный pattern для real-time GMV dashboard. Raw events 5B+ строк, query 10 сек. AMT MV хранит aggregateState'ы → merge в realtime → query 50ms.

Use case: dashboard «GMV by category last 24h» обновляется каждую минуту, читает MV.»

→ ClickHouse MV + Projections deep dive

Найди продавцов где return rate > среднего по категории × 1.5.

✅ Сильный ответ:

\\\sql

WITH cat_avg AS (

SELECT category_id, avg(return_rate) AS cat_avg_rr

FROM seller_metrics

WHERE month = '2026-05-01'

GROUP BY category_id

),

seller_rr AS (

SELECT seller_id, category_id, return_rate

FROM seller_metrics

WHERE month = '2026-05-01'

)

SELECT s.seller_id, s.category_id, s.return_rate, c.cat_avg_rr,

s.return_rate / c.cat_avg_rr AS ratio

FROM seller_rr s

JOIN cat_avg c ON s.category_id = c.category_id

WHERE s.return_rate > c.cat_avg_rr * 1.5

ORDER BY ratio DESC;

\\\

Senior follow-up: «Как WB реагирует на high return rate sellers? — escalation в operations, штрафы, при персистенте — деплатформирование.»

Window function: топ-3 SKU per seller по выручке.

✅ Сильный ответ:

\\\sql

WITH ranked AS (

SELECT seller_id, sku_id, sum(revenue) AS rev,

row_number() OVER (PARTITION BY seller_id ORDER BY sum(revenue) DESC) AS rn

FROM orders

WHERE order_date >= today() - 30

GROUP BY seller_id, sku_id

)

SELECT seller_id, sku_id, rev FROM ranked WHERE rn <= 3

ORDER BY seller_id, rn;

\\\

ClickHouse alternative: \SELECT seller_id, sku_id, sum(revenue) ... LIMIT 3 BY seller_id\ — короче.

→ Window functions SQL гайд

Cohort: % new buyers retained на M+1.

✅ Сильный ответ:

\\\sql

WITH first_purchase AS (

SELECT user_id, toStartOfMonth(min(order_date)) AS cohort

FROM orders

WHERE status = 'completed'

GROUP BY user_id

),

mplus1 AS (

SELECT fp.user_id, fp.cohort,

maxIf(o.order_date >= addMonths(fp.cohort, 1) AND o.order_date < addMonths(fp.cohort, 2), 1) AS retained_m1

FROM first_purchase fp

LEFT JOIN orders o ON fp.user_id = o.user_id AND o.status = 'completed'

GROUP BY fp.user_id, fp.cohort

)

SELECT cohort, count() AS new_buyers, sum(retained_m1) AS retained,

100.0 * sum(retained_m1) / count() AS retention_m1_pct

FROM mplus1

GROUP BY cohort

ORDER BY cohort;

\\\

→ Cohort retention SQL

Sortировочные центры: time-to-deliver по регионам.

✅ Сильный ответ:

\\\sql

SELECT

delivery_region,

avg(dateDiff('hour', sort_center_received_ts, delivered_ts)) AS avg_delivery_hours,

quantile(0.95)(dateDiff('hour', sort_center_received_ts, delivered_ts)) AS p95_hours

FROM shipments

WHERE shipped_at >= today() - 30

GROUP BY delivery_region

ORDER BY p95_hours DESC;

\\\

Senior: «WB трекает p95 а не avg потому что долгие хвосты убивают NPS — клиент жалуется когда ждёт 5 дней вместо 2. Avg скрывает это.»

5 Python/ML-вопросов с собеса WB

Чем отличается ranking для search vs recommendations?

✅ Сильный ответ:

«Search: query-driven. Юзер уже знает что хочет. Ranking optimize'ит relevance (BM25 / semantic) + conversion.

Recommendations: discovery-driven. Юзер не знает что хочет. Ranking optimize'ит engagement + diversity.

Practical в WB: SearchRanker = LightGBM на 50+ features (BM25, click history, seller rating, CTR position). RecSys = two-tower model + content embeddings.»

Реализуй RecSys evaluation: HitRate@10, NDCG@10.

✅ Сильный ответ:

\\\python

import numpy as np

def hit_rate_at_k(predicted, ground_truth, k=10):

pred_topk = predicted[:k]

return int(any(item in ground_truth for item in pred_topk))

def ndcg_at_k(predicted, ground_truth, k=10):

dcg = 0

for i, item in enumerate(predicted[:k]):

if item in ground_truth:

dcg += 1 / np.log2(i + 2)

idcg = sum(1 / np.log2(i + 2) for i in range(min(len(ground_truth), k)))

return dcg / idcg if idcg > 0 else 0

\\\

Senior: «HitRate показывает «хоть один правильный в топ-10» — слабый сигнал. NDCG учитывает позицию (high-positioned hits лучше). В production WB используется MRR + NDCG.»

Search ranking offline metric → online metric divergence. Как лечишь?

✅ Сильный ответ:

«Classic проблема: offline NDCG +5%, online CTR +0.5%, conversion -1%. Причины:

Fix:

Pandas: посчитай return rate по cohort + product category.

✅ Сильный ответ:

\\\python

import pandas as pd

orders['cohort'] = orders.groupby('user_id')['order_date'].transform('min').dt.to_period('M')

agg = orders.pivot_table(

index=['cohort', 'category'],

values=['order_id', 'returned_flag'],

aggfunc={'order_id': 'count', 'returned_flag': 'sum'}

).reset_index()

agg['return_rate'] = agg['returned_flag'] / agg['order_id']

\\\

Cold-start: новый seller, нет истории — как ранжировать его SKU?

✅ Сильный ответ:

«Cold-start через 3 layers:

WB-specific: TrustScore новых sellers — composite от documents verification + insurance + история payment. Low TrustScore → ниже in ranking.»

5 A/B / Pricing вопросов

Pricing A/B на маркетплейсе: что специального?

✅ Сильный ответ:

«Spillover effects — главное отличие от обычного A/B.

Проблема: если treatment-юзеры видят -10% цену на SKU, а control видят полную — price discovery через цену арбитража, sellers могут поднять цены compensating. Чистый эффект искажается.

Решения:

В WB обычно использует cluster A/B (рандомизация на cluster level — категория или seller cohort).»

→ A/B-тесты на Python + scipy

Что такое cannibalization effect в маркетплейсе?

✅ Сильный ответ:

«Каннибализация = новый продукт/фича ворует трафик/выручку у существующих, а не привлекает новую.

В WB: запустили new category «Health & Wellness» → GMV категории +50M ₽, но Beauty -30M ₽ (юзеры переключают bucket). Чистый effect = +20M, не +50M.

Measurement:

Если каннибализация >50% → strategic question если стоит держать категорию»

Sample size для return rate A/B: 10K orders/группа достаточно?

✅ Сильный ответ:

«Зависит от baseline rate и MDE.

Если baseline 8%, MDE = relative 2% (от 8% к 8.16%):

\\\

n = (z_α/2 + z_β)² × 2p(1-p) / Δ²

n = (1.96 + 0.84)² × 2 × 0.08 × 0.92 / (0.0016)²

n ≈ 144 000 на группу

\\\

10K недостаточно для small effect. Если MDE relative 10% (8% → 8.8%):

n ≈ 5800 — 10K ОК.

Senior: «В WB на return rate обычно нужны 50K+ orders/группа для production decisions.»

→ Sample size калькулятор

Search ranking A/B: какая primary metric?

✅ Сильный ответ:

«Hierarchy:

Guardrails:

WB practice: A/B минимум 4 недели для покрытия weekly seasonality.»

Pricing optimization: optimal cross-sell offer.

✅ Сильный ответ:

«Pricing strategy через:

В WB используется bandit-based pricing для long-tail SKU — explore prices через small traffic, exploit winning prices на large.»

4 продуктовых кейса (раунд 4)

NSM для Wildberries — какую метрику предложишь?

✅ Сильный ответ:

«WB публично уважает Active Buyers + GMV + Frequency как key metrics. NSM для маркетплейса:

GMV — надувается крупными покупками, скидками

DAU — может быть нагнан ботами

Successful Transactions per Active Buyer per Quarter — учитывает retention + monetization + delivery success

Margin-Adjusted GMV — учитывает unit economics

Guardrails:

В WB реальный NSM возможно «Active Buyers × Frequency × Margin per buyer» — combined health metric.»

Top-100 sellers генерируют 50% GMV. Risk и opportunity.

✅ Сильный ответ:

«Risk: Concentration risk:

Opportunity:

Action:

Delivery NPS upal с 7.8 до 7.2. Что делаешь?

✅ Сильный ответ:

«Декомпозиция NPS:

NPS = promoters - detractors (% scale -100 to +100)

Drill-down:

WB-specific:

Action:

Inventory analytics: predict stockout.

✅ Сильный ответ:

«Stockout prediction через time-series:

Approach 1: Simple velocity — daily sales × days_until_stockout = current_inventory / avg_daily_sales. Threshold alert at 7 days.

Approach 2: Prophet / ARIMA — учитывает seasonality + trend.

Approach 3: ML (XGBoost) — features: historical sales, seasonality, promotions, day-of-week, weather, competitor pricing → predict daily sales next 14 days.

В WB используется hybrid: ML для long-tail, simple velocity для top-sellers (high stability).

Action на prediction:

3 behavioral вопроса (раунд 5)

Расскажи про случай когда твой analysis повлиял на operating decision.

✅ Сильный ответ (STAR):

«Ситуация: в WB seller cohort analysis показал что sellers с регулярными promo campaigns имеют 35% lower churn vs sellers без promos.

Задача: убедить product team запустить automated promo recommendations для sellers.

Действие:

Результат: Pilot showed +12% GMV для adopters, +18% retention. Product roadmap включил это в Q2 backlog. Я переход к next role — но фича уже в development.»

Case: data shows new feature destroys retention. Что делаешь?

✅ Сильный ответ:

«Сложный кейс — data-vs-roadmap conflict.

Steps:

Если фича обещана top management:

В WB случае: запустили fashion recommendations widget, retention -8%. Анализ показал — раздражение «слишком много suggestions». Tweaked density 5→3, retention +2% (still negative but acceptable trade-off против discovery uplift).»

Опиши свой опыт работы с большим SQL запросом 500+ строк.

✅ Сильный ответ:

«В WB у нас был ETL pipeline 800-line ClickHouse query для daily seller scorecard.

Approach:

Result: исходный 800-line monolith → 6 manageable CTEs + 50% runtime improvement.»

Red flags (не делай)

Как готовиться к Wildberries

Месяц 1: маркетплейс-метрики + ClickHouse

Месяц 2: RecSys basics + А/B

Месяц 3: кейсы + behavioral

FAQ

WB сложнее Ozon?

Оба крупных маркетплейса РФ, но WB больше операционных вопросов (логистика, sortировка, returns). Ozon — больше про монетизацию (advertising, financial services).

Можно ли пройти без маркетплейс опыта?

Junior/middle — да. Senior — крайне сложно без 1-2 marketplace проектов.

Какие команды самые конкурентные?

Search & Ranking (heavy ML), Pricing (revenue impact), Operations (large scale). Менее конкурентные — HR Analytics, Marketing Analytics.

Стек технологий?

ClickHouse + Airflow + dbt + Python. Greenplum для DWH. ML — TensorFlow + PyTorch + sklearn.

Что дальше

Сравнить Free и Pro → (1999 ₽/мес — безлимит мок-собесов)

Источники

Тренируй SQL/Python на 521+532 задачах
Тренажёр с авто-проверкой + 453 кейса под маркетплейс. AI мок-собес. Первые 5 задач бесплатно.
Открыть тренажёр →