Від розрізнених CSV
до перевіреного звіту
Замовлення, повернення, товари та реклама — в одному відтворюваному процесі. Кожен відхилений рядок має причину, кожна підсумкова сума — джерело.

Чи можна довіряти
цьому підсумку?
Уявімо магазин, який отримує кілька CSV від різних систем. У файлах є дублікати, зайві пробіли, різні формати дат, пропущені ключі та невідомі статуси. Якщо просто звести їх разом, звіт може подвійно врахувати замовлення або поєднати несумісні записи.
Рішення: спочатку перевірити й нормалізувати кожне джерело, зв’язати лише валідні записи, а винятки передати в окремий журнал для виправлення.
Обробка, яку можна повторити
Завантажити чотири CSV зі збереженням джерела та номера рядка.
Застосувати явні правила ключів, дат, статусів і сум.
Зв’язати очищені записи та перевірити цілісність зв’язків.
Зберегти результати й HTML-звіт; підготувати книгу Excel окремим скриптом.
Жодного рядка без пояснення
Рядки кожного джерела отримують один із трьох результатів: прийнято, точний дублікат або відхилено. У журналі зберігаються початкові значення та причина рішення, щоб проблему можна було виправити у джерелі.
| Джерело | Вхідні рядки | Прийнято | Дублікати | Відхилено |
|---|---|---|---|---|
| Товари | 9 | 6 | 1 | 2 |
| Замовлення | 256 | 240 | 5 | 11 |
| Повернення | 23 | 18 | 1 | 4 |
| Рекламні витрати | 63 | 60 | 1 | 2 |
| Усього | 351 | 324 | 8 | 19 |
Дублікати й відхилені рядки не беруть участі в бізнес-підсумках. Кількість рядків у різних джерелах не дорівнює кількості замовлень.
| Проблема | Рішення |
|---|---|
| Точний дублікат після нормалізації | Залишити один запис, повтор зафіксувати в журналі. |
| Однаковий ID, суперечливі значення | Відхилити всю групу; не вибирати довільно один варіант. |
| Дата в непідтримуваному форматі або валюта без UAH | Відхилити запис для уточнення; не вгадувати значення. |
| Повернення без замовлення або понад продану кількість | Відхилити некоректний запис або групу повернень. |
Що саме змінилося
| ID / поле | До обробки | Після обробки |
|---|---|---|
| O0003 / дата | 03.09.2026 | 2026-09-03 |
| O0004 / статус | Оплачено | completed |
| O0901 / дата | 09/10/2026 | Відхилено: неоднозначний формат |
| O0999 / кількість | 1 та 2 для одного ID | Відхилено обидва суперечливі записи |
Це реальні приклади з демонстраційних CSV. Відхилений запис не переписується: його початкове значення залишається в журналі.
Звіт + дані
для перевірки
У вересневому прикладі 226 виконаних замовлень дають 668 328 грн виручки після повернень. Повернення становлять 24 973 грн, рекламні витрати — 41 910 грн. Результат після собівартості та реклами — 261 288 грн.
Книга містить окремі вкладки для зведення, очищених наборів, винятків і контрольних підсумків. Це дозволяє переглянути не лише результат, а й шлях від джерела до розрахунку.
Відтворюваність — частина результату
13 із 13 автоматичних тестів пройдено; 8 контрольних звірок виконуються при кожному запуску. Повторний запуск дає побайтово однакові CSV, JSON та HTML.
- Кожен вхідний рядок враховано рівно один раз.
- ID прийнятих замовлень унікальні.
- Кількість повернень не перевищує продану.
- Скасовані замовлення не створюють виручку.
- Продажі, повернення та підсумкова виручка звіряються.
- Усі виключені рядки мають код і пояснення причини.
- Повторний запуск не змінює результати.
- Формули XLSX звірено з Python; зміна ціни перераховує підсумок.
Запустити обробку самостійно
Розпакуйте архів і виконайте команду з його кореневої папки.
python3 pipeline.py --input inputs --output results --month 2026-09
python3 test_pipeline.pyPython 3.9+ без додаткових бібліотек оновлює CSV, JSON та HTML-звіт. XLSX — окремий перевірений знімок із формулами. У комплекті є JS-скрипт його створення для поточної демоструктури; він потребує Node.js та @oai/artifact-tool. Для іншого місяця чи кількості рядків у XLSX слід адаптувати діапазони й підписи за README.
Відкрити та перевірити самостійно
Книга для перегляду підсумків, вихідних таблиць та винятків.
ZIP / ВІДТВОРЮВАНИЙ ПРОЄКТДані, код і документаціяСинтетичні CSV, скрипт обробки та інструкція запуску.
Навички: очищення й об’єднання даних, валідація схем, дедуплікація, контроль зв’язків, звірка сум, документування правил. Створено з допомогою Codex; код доступний для перевірки.