Почему заказы растут, а выручка падает: заказы × средний чек
Содержание курса
Восстановление показателей последней партии заказов
Что произошло
Интернет-магазин завершил закрытую распродажу. Бухгалтерия получила итоговый акт закрытия: в нём зафиксированы общее число оплаченных заказов за весь период распродажи и точный средний чек. Детализированная выгрузка заказов поступила раньше, но в неё не попала последняя закрывающая партия. При этом вся последняя партия целиком вошла в акт.
Менеджер считает, что в последней партии шли мелкие незначительные чеки, и предлагает отложить её оформление. Бухгалтеру нужно проверить это впечатление: определить число покупок, выручку и средний чек недостающей части, сопоставить чек партии с чеком ранее загруженных заказов и убедиться, что объединённые данные сходятся с актом.
Строк отдельных заказов для последней партии нет. Выдумывать отдельные чеки или подбирать их состав не нужно — требуется рассчитать сводные показатели партии и оформить отчёт.
Данные и правила отбора
В работе используются две таблицы:
-
known_orders— строки ранее выгруженных заказов:order_id— уникальный идентификатор заказа;order_date— дата оформления заказа в форматеYYYY-MM-DD(не дата платежа);status— состояние заказа на момент выгрузки;gross_revenue— целая сумма покупки в рублях до вычета возвратов.
-
closing_act— одна контрольная строка по всему периоду распродажи:paid_orders— точное итоговое число оплаченных заказов за весь период (включает и загруженные строки, и последнюю партию);aov_exact— точный средний чек в рублях на один заказ со всеми исходными знаками. Значение не округлено, и его произведение сpaid_ordersдаёт целую сумму выручки в рублях.
Из таблицы known_orders в расчёт берутся только заказы со статусом status = 'paid', оформленные в границах периода: дата должна быть больше или равна дате начала периода и строго меньше даты окончания (order_date >= period_start AND order_date < period_end). Начальная граница включена, конечная исключена. Все остальные статусы и даты вне интервала исключаются.
Параметры периодов для двух наборов данных:
- Основной магазин («Маяк — закрытая распродажа»): с
2024-03-01по2024-05-01(заказы марта и апреля 2024 года); - Контрольный магазин: с
2027-02-10по2027-04-05.
Требования к результирующей таблице
Таблица отчёта должна содержать ровно 3 строки и 5 колонок в следующем порядке:
part, paid_orders, gross_revenue, aov, aov_vs_loaded
Значения в колонке part (порядок строк в итоговой таблице не имеет значения):
loaded— показатели отобранных оплаченных заказов из таблицыknown_orders;last— восстановленные показатели отсутствующей последней партии;combined— показатели объединения обеих частей (loadedиlast), сведённые для проверки с актом.
Правила расчёта колонок:
paid_orders— целое число оплаченных заказов в соответствующей части;gross_revenue— суммарная выручка в рублях (целое число);aov— средний чек части в рублях на заказ (gross_revenue / paid_orders);aov_vs_loaded— разница междуaovтекущей строки иaovстрокиloaded(aov - loaded_aov). Для строкиloadedэта разница равна0.
Значения paid_orders и gross_revenue должны оставаться точными целыми числами. Для метрик aov и aov_vs_loaded сохраняйте полную точность без принудительного округления: сверка проверяет дробные значения с высокой точностью. Округлять числа до копеек для экранного вывода не требуется.
Выбор маршрута выполнения
Выполнить работу можно одним из двух способов: написать SQL-запрос в интерфейсе лаборатории либо решить задачу на Python в pandas. Достаточно выполнить один выбранный маршрут.
Скачайте Python-программу run_lab_01.py из материалов этого шага и выполните python run_lab_01.py. Программа восстановит неизменённую лабораторную и напечатает локальный адрес для браузера. Файлы и проверки исходной лабораторной сохраняются. Это локальная лабораторная, не встроенный исполнитель Latorn.
