ИИ быстро раскидает траты по категориям: продукты, такси, подписки, кафе. Удобно, красиво, уже хочется открыть диаграмму и ужаснуться расходам на кофе. Но модель может пропустить строку, задвоить операцию или принять перевод другу за доход.
Правило простое: банк хранит правду о деньгах, таблица считает, а ИИ помогает понять смысл операции. Не наоборот. Генеративные модели иногда уверенно выдают неверный ответ — NIST называет такие ошибки конфабуляциями. Это не повод отказаться от инструмента, а повод поставить ему простые стоп-краны.

Сначала зафиксируйте период, счета и знаки
Выберите один закрытый период: например, с 1 по 30 сентября. Не берите платежи со статусом «в обработке»: они могут отмениться, измениться или попасть в следующий месяц.
Для первого прогона берите одну карту. Кредитку, накопительный счёт и наличные добавите потом. Так легче поймать ошибку и понять, как устроен отчёт, а не играть в бухгалтера на максималках.
Сразу приведите суммы к одному правилу: расходы — со знаком минус, поступления — с плюсом. Банки выгружают данные по-разному, поэтому первые несколько строк проверьте руками.
Если банк даёт CSV или XLSX, берите этот файл: дата, описание и сумма там уже лежат в отдельных ячейках. PDF тоже сохраните рядом — это оригинал, с которым можно свериться.
Создайте лист `Исходник` и не меняйте в нём суммы или описания.
| ID | Дата | Описание из банка | Сумма | Валюта |
|---|---|---|---|---|
| 001 | 02.09 | Магазин у дома | -850,40 | RUB |
| 002 | 03.09 | Перевод на накопительный счёт | -5000,00 | RUB |
`ID` — просто номер строки. Он остаётся тем же, даже если вы поменяли категорию. Если операция потеряется, её можно найти по ID, а не гадать по суммам и датам.
Пусть ИИ ставит категории, а не считает деньги
Не просите чат сделать «готовую таблицу расходов». Дайте ему строки из выписки и попросите вернуть только категорию с коротким комментарием.
| ID | Категория | Комментарий |
|---|---|---|
| 001 | Продукты | Покупка в магазине |
| 002 | TRANSFER | Перевод между своими счетами |
Дата, сумма, валюта и исходное описание должны остаться в банковской выгрузке. ИИ отвечает только за смысл операции. Ошибся с аптекой — поправите одну ячейку. А вот если он перепишет `-1 499,90` как `-14 999`, финансового гремлина искать будет грустнее.
Разнеси операции по категориям.
Правила:
— Не меняй ID, дату, описание, сумму и валюту.
— Верни только таблицу с колонками: ID, Категория, Комментарий.
— Если операция непонятна, ставь NEEDS_REVIEW. Не угадывай.
— Переводы между своими счетами отмечай как TRANSFER.
— Снятие наличных отмечай как CASH_WITHDRAWAL.
— Возврат платежа отнеси к категории исходной покупки, но не меняй знак суммы.
— Не добавляй операции и не объединяй строки.
Категории:
Продукты, Кафе и доставка, Транспорт, Жильё и ЖКХ, Здоровье, Подписки, Покупки, Доходы, TRANSFER, CASH_WITHDRAWAL, NEEDS_REVIEW.
Операции:
[вставьте строки из таблицы]Можно затестить одинаковый очищенный фрагмент в нескольких моделях. У одной лучше распознаются названия магазинов, другая аккуратнее держит формат. Но не выбирайте «лучшую» по одному удачному ответу: сравнивайте на тех же строках и смотрите, не меняет ли она ID и суммы. Война ИИ-гигантов напоминает старую войну браузеров, но ваш бюджет не обязан быть полем боя.
Четыре проверки до диаграмм
Число строк совпало
В выписке 38 операций — на листе с категориями тоже должно быть 38 ID. Если их 37, не стройте диаграммы. Сначала найдите пропавшую операцию: небольшая сумма сегодня через пару месяцев превращается в вопрос «почему баланс вообще не сходится?».
Каждый ID встретился один раз
Рядом с листом `Исходник` посчитайте, сколько раз ID появился на листе `Категории`.
=COUNTIF(Категории!A:A;A2)Результат `1` — норма. Ноль означает пропуск, число больше единицы — дубль. Если формула выдаёт ошибку, замените `;` на `,`: разделитель зависит от региональных настроек таблицы.
Итоги считает таблица
Не просите чат посчитать траты за месяц. Он может округлить результат, пропустить строку или смешать валюты. Если суммы лежат в колонке `D`, расходы посчитает формула:
=SUMIF(D:D;"<0";D:D)Поступления:
=SUMIF(D:D;">0";D:D)Итог всех операций:
=SUM(D:D)Если в выписке есть начальный и конечный остаток, добавьте ещё одну проверку: начальный остаток плюс сумма операций должны равняться конечному остатку. Не сошлось — проверьте период, комиссии, возвраты, отменённые платежи и операции в обработке. Не подгоняйте цифру вручную: она отомстит в следующем месяце.
`NEEDS_REVIEW` не прячем
Строка `PAYMENT*STREAM` может быть подпиской. А `P2P IVAN P.` может означать возврат долга, перевод родственнику или оплату общей поездки. ИИ не знает контекст вашей жизни — и ему не надо его придумывать.
Разберите все строки с `NEEDS_REVIEW` до отчёта. Обычно их немного, зато именно там сидят ошибки, которые делают диаграмму бесполезной.

Не посчитайте переводы и наличные дважды
Перевод с карты на накопительный счёт — не расход. Деньги просто переехали между вашими счетами. Снятие наличных — тоже не расход: трата появится позже, когда вы заплатите этими наличными за обед, проезд или стрижку.
Для первого отчёта хватит трёх правил:
- не включайте `TRANSFER` в расходы по категориям;
- не считайте `CASH_WITHDRAWAL` потребительской тратой;
- реальные траты наличными добавляйте отдельной строкой в день оплаты.
Иначе отчёт покажет одни и те же деньги дважды: сначала «минус 20 тысяч в банкомате», потом покупки за эти же наличные. Возврат за кроссовки тоже не доход — это обратная операция в категории «Покупки».
Рубли, евро и доллары не складывайте в один итог, пока не выбрали правило конвертации. Для первого отчёта проще вести каждую валюту отдельно. Меньше магии — меньше ошибок.
В чат отправляйте минимум данных
Для категоризации не нужны логины, пароли, CVV, полные номера карт, паспортные данные и реквизиты. Удалите их до загрузки файла. Если в назначении платежа есть фамилия, номер счёта или личные детали, сократите описание.
Если сервис предлагает временный чат или настройку, запрещающую использовать диалоги для улучшения модели, включите её. Но это не делает загрузку полной выписки безопасной по умолчанию: отправляйте только те поля, без которых нельзя поставить категорию. Про риски уверенных ошибок генеративных моделей полезно почитать в материале NIST.
Сегодня выгрузите выписку за прошлый месяц, поставьте ID и отправьте ИИ только очищенные описания. Затем проверьте число строк, уникальность ID, итог по исходнику и все `NEEDS_REVIEW`. И только после этого открывайте диаграмму с кофе — такие дела.
Статья помогла?



