Мейрам ведёт рекламу небольшого интернет-магазина детских товаров в Алматы. Он загрузил в ИИ выгрузку заказов и их состава, попросил посчитать выручку и получил 20 000 ₸. В реестре заказов был один заказ, 101, на 10 000 ₸. После соединения с двумя товарными позициями сумма заказа повторилась в обеих строках. Программа отработала без ошибок, но денег у магазина от этого не прибавилось.
Записи и суммы в уроке условные. Ошибка случилась раньше, чем кто-то начал объяснять результат: Мейрам сложил денежный столбец, не выяснив, что теперь означает одна строка. ИИ может помочь написать расчёт и показать подозрительные места. Но исходные данные, определения показателей и сверку, которую можно повторить, маркетолог готовит сам, до того как советовать что-то клиенту.
Соединение строк не создаёт выручку
Исходный реестр
Заказ 101: 10 000 ₸
Один заказ
После соединения
Две товарные позиции
10 000 ₸ повторяются в обеих строках
Сверка итога
20 000 ₸ при суммировании строк: ошибка
Фактически по заказу: 10 000 ₸
Перед суммированием установите, что означает строка после преобразования.
Задайте вопрос, на который отвечает расчёт
«Найди инсайты» оставляет модели выбор цели и определений. Для решения о рекламе скажите, что сравнить: например, выручку выполненных оплаченных заказов за выбранные периоды, в одной валюте и с согласованным учётом возвратов. Пусть помощник ещё до расчёта перечислит, каких условий он не знает и от чего зависит ответ.
У вопроса есть единица счёта. У одного покупателя бывает несколько заказов, в одном заказе бывает несколько товаров, один платёж может покрывать только часть суммы. Это разные таблицы, и подставлять одну вместо другой нельзя. По названию столбца «сумма» не понять, чья это сумма: товара, заказа или перевода денег.
В задачу входят статусы, валюта, часовой пояс и границы периода. Договоритесь и о том, какая дата считается: создания заказа, оплаты или выполнения. Если один отчёт считает по оплате, а другой по созданию, итоги разойдутся просто потому, что вопросы разные. Согласуйте эти определения с владельцем отчёта до того, как искать причину падения продаж.
На выходе просите три вещи: таблицу сравнения, сам расчёт и список неизвестного. Тогда клиент увидит, откуда взялась цифра и какие решения по ней принимать рано. Одна уверенная фраза о причинах падения этого не заменит.
Воспроизведите соединение на одном заказе
В реестре одна запись: заказ 101, сумма 10 000 ₸. В составе заказа две записи, товар А и товар Б. После соединения по номеру заказа получилась такая таблица:
| Заказ | Позиция | Полная сумма заказа |
|---|---|---|
| 101 | Товар А | 10 000 ₸ |
| 101 | Товар Б | 10 000 ₸ |
Строка теперь описывает позицию, а сумма по-прежнему относится ко всему заказу. Поэтому 10 000 + 10 000 = 20 000 ₸ дважды считает одни и те же деньги. Выручка по этому заказу - 10 000 ₸, как и в реестре.
Для общего итога хватит правильной таблицы заказов. Для выручки по товарам нужны суммы позиций, скидки и возвраты или обоснованное правило распределения. Если их нет, не делите заказ поровну и не выдавайте результат за фактическую выручку каждого товара.
Удалять одинаковые суммы тоже опасно: два разных заказа могут стоить одинаково. Сверяют по номеру заказа и по тому, что означает запись, а сумма идентификатором не служит. Если внутри одного номера суммы расходятся, разберитесь с версиями заказа или операциями. Выбрать удобную строку и идти дальше - худший вариант.
Держите контроль до и после преобразования
После каждого соединения смотрите на три числа: строки, уникальные заказы и денежный итог в правильной единице. Ключи без пары и ключи с несколькими совпадениями выведите списком. Потерянные заказы занижают сумму, повторённые завышают.
Руководство pandas по соединениям показывает, как ведут себя повторяющиеся ключи, и описывает параметр validate, который проверяет ожидаемую связь между таблицами. Он поймает расхождение структуры с тем, что вы ожидали. Что столбец означает для бизнеса, вам всё равно нужно решить до проверки.
Связь «один заказ - много позиций» нормальна, без неё не разобрать состав корзины. Но даже если она проходит техническую проверку, сумму заказа нельзя ставить на место суммы позиции. Код может отработать без ошибок и дать неверный показатель, поэтому проверяют и то и другое.
Иногда контрольная сумма и должна измениться: команда убрала отменённые заказы или вычла согласованные возвраты. Тогда запишите причину и на сколько изменилась сумма. Если деньги пропали без объяснения, остановите вывод, который от них зависит, и вернитесь к преобразованию.
Задайте помощнику порядок работы
Сравни выручку выбранных периодов по согласованным определениям. До расчёта опиши единицу строки и ключи таблиц. Выдели неизвестные условия и не делай зависящих от них выводов.
Покажи число строк, уникальных заказов, несовпавшие ключи и контрольные суммы до и после преобразований. Объясни ожидаемые изменения суммы. Сохрани фильтры и выполненный расчёт.
Отдельно опиши наблюдаемую разницу, возможные объяснения и следующую проверку. Не заменяй отсутствующие значения нулями и не придумывай данные.
Промпт задаёт порядок, но верить можно только коду, который вы запустили, и его результату. Если инструмент действительно выполнил вычисления, сохраните данные, расчёт и вывод проверки. Фраза «всё сверено» без этих материалов - не повод менять бюджет.
Контрольный пример должен быть таким маленьким, чтобы его можно было сверить вручную. У нас номера и суммы помещаются в одну таблицу. После исправления прогоняйте его вместе с полным расчётом: помощник может верно объяснить ошибку словами и оставить старое суммирование в рабочем коде.
Отделите изменение продаж от объяснения причины
После сверки выручка может и правда оказаться ниже. Разложите разницу на число заказов и средний чек, потом посмотрите статусы, возвраты и состав товаров. Группы сравнивайте за одинаковый срок наблюдения, особенно если часть заказов ещё не выполнена.
Допустим, ИИ уверенно пишет: «продажи упали из-за нового объявления». Опираться на эту фразу пока не на что. В те же дни могли поменяться наличие товара, цена, настройка измерений или аудитория. Если объявления видели разные люди, сравнение их продаж смешивает текст рекламы с составом покупателей. Поэтому до решения сверьте на исходных данных определения, фильтры и расчёт, выпишите другие объяснения, а причину оставьте гипотезой и пометьте, какие данные помогут её проверить.
Итогом анализа может быть следующая задача: сверить отмены после сбоя склада, восстановить пропавший источник или сравнить сопоставимые группы. Клиенту это тоже помогает, даже если отключать канал прямо сейчас не нужно. Связать расходы на рекламу с подтверждённым результатом заказа поможет сквозная аналитика.
Передавайте только нужные данные
Для тренировки хватит искусственных записей вроде нашего заказа. В рабочем проекте состав полей и среду обработки согласуйте с тем, кто отвечает за данные. Если задача про суммы и статусы, имя, телефон и переписка с покупателем могут вообще не понадобиться.
Если убрать прямые контакты, раскрывается меньше, но человека можно узнать и по другим признакам и связям. Замена имени идентификатором помогает соединять строки, а вопросы доступа не закрывает. Кто может получать данные, где они хранятся и когда удаляются временные файлы, команда решает заранее, и помощник получает только тот набор, который нужен задаче.
Задание: исправьте итог и сформулируйте проверку
Заказы 101 и 102 стоят по 10 000 ₸. В первом две позиции, во втором одна. Соединение дало три строки по 10 000 ₸. Посчитайте правильную выручку и объясните, почему не подходит ни сумма всех строк, ни удаление одинаковых сумм. Потом выпишите единицу строки и контрольную сумму одной таблицы своего проекта.
Правильный итог - 20 000 ₸ за два заказа. Сумма трёх строк даст 30 000 ₸, лишние 10 000 ₸. Если удалить повторяющиеся суммы, останется 10 000 ₸ и пропадёт второй заказ. Рабочее исправление оставляет одну сумму на номер заказа или берёт настоящие суммы позиций, а потом сверяется с исходным реестром.
В своём проекте разбор должен закончиться результатом, который можно повторить: какие данные взяли, как преобразовали и какой итог подтвердили. О причинах изменения продаж говорят после этой сверки, и другие объяснения держат в списке, пока данных не станет достаточно.