Ілля Шкура
EN UK RU

Нотатки · 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 млн €. Але цифра, яку побачить інвестор, або збігається з даними, або ні.

Який висновок я роблю

До підрахунку треба записати визначення й попросити власника відповісти на питання, на які дані не відповідають: чи входить доставка в часткове повернення, чи входить ПДВ у чисті продажі, яку дату рахувати. Потім перерахувати все, що можна перерахувати, і прямо назвати те, чого перерахувати не можна, з причиною.

Кейс повністю, з таблицею всіх восьми цифр: Звіт ШІ про продажі: 35 цифр перераховано, 8 хибні.