Диагностика аномального падения продаж: декомпозиция и root cause analysis

Senior A/B-тесты SaaS

Условие задания

**Контекст:** SaaS-платформа для малого бизнеса. Отдел продаж зафиксировал: продажи за последнюю неделю на 15% ниже прогноза. CEO спрашивает: «Это аномалия или нормальная флуктуация? Что делать?»

**Данные:**
- Среднемесячные продажи: $420K (σ = $35K)
- Прогноз на эту неделю: $105K (1/4 месяца)
- Факт за неделю: $89K
- Conversion Rate (trial → paid): обычно 12%, на этой неделе 9.5%
- Средний чек: обычно $85/мес, на этой неделе $87/мес
- Трафик на сайт: обычно 45K/нед, на этой неделе 38K
- Trial signups: обычно 3 200/нед, на этой неделе 2 700

**Задание:**
1. Определите, является ли отклонение -15% статистически значимым. Используйте z-score.
2. Проведите мультипликативную декомпозицию revenue. Какой фактор внёс наибольший вклад?
3. Предложите пошаговый алгоритм root cause analysis.
4. Какие данные запросите для дальнейшей диагностики?

Пример данных

Структура для ориентира — реальные значения из эталонного решения.

import numpy as np

# Данные
norm = {'traffic': 45000, 'signup_rate': 0.0711,
        'cr': 0.12, 'arpu': 85}
fact = {'traffic': 38000, 'signup_rate': 2700/38000,
        'cr': 0.095, 'arpu': 87}

# Мультипликативная декомпозиция (логарифмическая)
total_change = np.log(89/105)
contributions = {}
for key in norm:
    contributions[key] = np.log(fact[key] / norm[key])

print(f"Общее изменение: {total_change:.4f} "
      f"({(89/105-1)*100:.1f}%)")
print(f"\nВклады (log scale):")

total_abs = sum(abs(v) for v in contributions.values())
for key, val in sorted(contributions.items(),
                        key=lambda x: abs(x[1]), reverse=True):
    pct = val / total_change * 100 if total_change != 0 else 0
    print(f"  {key:>12}: {val:+.4f} ({pct:+.0f}% от падения)")

# Z-score
mu, sigma_week = 105, 16.8
z = (89 - mu) / sigma_week
from scipy import stats
p_val = stats.norm.cdf(z)
print(f"\nz-score: {z:.2f}, p-value (one-sided): {p_val:.3f}")
print(f"Аномалия (p < 0.05): {'Да' if p_val < 0.05 else 'Нет'}")

Темы

root cause analysis декомпозиция аномалия воронка диагностика

Подсказки

Все тестовые задания →

Частые вопросы

Какой уровень знаний нужен для задачи "Диагностика аномального падения продаж: декомпозиция и root cause analysis"?

Это задание для уровня Senior. Senior-уровень — глубокое понимание темы, опыт решения нестандартных задач, обсуждение trade-off на собеседовании.

На каких собеседованиях встречается такая задача?

Подобные задания в категории «A/B-тесты» регулярно дают на собеседованиях аналитика данных в Яндекс, Сбер, Ozon, Авито, Тинькофф, Wildberries, T-Bank, X5, ВТБ и других крупных IT-компаниях. Тематика: root cause analysis, декомпозиция, аномалия, воронка, диагностика.

Сколько времени даётся на решение?

На реальном собеседовании на подобную задачу отводится 30-60 минут с обсуждением подходов, оптимизаций и trade-off. Для тренировки рекомендуем сначала решить самостоятельно, потом сверить с эталонным решением и подсказками.

Где ещё потренироваться по теме «A/B-тесты»?

На zasqlpython.ru есть другие задания в категории «A/B-тесты», продуктовые кейсы, справочник метрик, AI мок-собеседование с разбором ваших ответов.

← Все задания