Нотатки · 25 вересня 2026
Один розумний рядок коду і вісім хибних цифр.
Власник магазину вивантажує з Shopify замовлення за квартал і віддає файл ШІ-асистенту, який уміє запускати Python. Просить те, що попросив би будь-який власник: ключові цифри кварталу, «точні, для презентації інвестору». Асистент повертає охайний звіт зі 113 цифрами.
Вивантаження в цьому тесті синтетичне, але в справжньому форматі Shopify: 21 687 рядків і 9 659 замовлень, з усім безладом реального вивантаження — завантаженнями, що перекриваються, скасованими, тестовими й службовими замовленнями, цінами з ПДВ. Оскільки дані згенеровано, правильні відповіді відомі заздалегідь.
Що знайшов перерахунок
Зі 113 цифр для 35 окремий код перевірки має визначення. 27 із них зійшлися до цента, 8 — ні. Решту 78 перелічено з поясненням, чому їх не можна перерахувати: інше визначення, розбивка, якої код перевірки не рахує, або опис того, як чистили дані.
Усі вісім розбіжностей походять з одного рядка в коді асистента:
q['refund_prod'] = q['Refunded Amount'] * q['Subtotal'] / q['Total']
Він віднімає від кожного повернення пропорційну частку доставки. Для 364 повних повернень це правильно: доставку в них теж повернули. Але 439 часткових повернень у цьому вивантаженні стосуються лише товарів, і з них рядок відняв доставку, яку ніхто не повертав. У підсумку повернення за квартал занижено на 505,35 €, а чисті продажі завищено: по місяцях на 207,78, 149,19 і 148,38 €, за квартал на 505,35 € і на стільки ж у каналі інтернет-магазину.
Чому повторне читання цього не впіймає
- Рядок виглядає як розумне припущення. З вивантаження не зрозуміти, чи входила доставка в часткове повернення, тож вирішувати доводилося в будь-якому разі. Тут це вирішили мовчки, у коментарі до коду, про який у звіті ані слова.
- Якщо перечитувати той самий код, поділяєш те саме припущення. Окремий код, який не бачив звіту, його не поділяє.
- 505 € — небагато на тлі 1,47 млн €. Але цифра, яку побачить інвестор, або збігається з даними, або ні.
Який висновок я роблю
До підрахунку треба записати визначення й попросити власника відповісти на питання, на які дані не відповідають: чи входить доставка в часткове повернення, чи входить ПДВ у чисті продажі, яку дату рахувати. Потім перерахувати все, що можна перерахувати, і прямо назвати те, чого перерахувати не можна, з причиною.