Почему бы просто не вставить её в ChatGPT?
Часто именно так и стоит поступить. Ради одной личной выписки, на которую вы хотите посмотреть в таблице, чат-ассистент быстрее любого конвертера, и эта страница не станет делать вид, что это не так. Дальше — то место, где он перестаёт работать, и ни одна причина не в том, что модель глупа.
Начнём с честной половины
Бросьте в современного ассистента PDF с текстовым слоем, попросите CSV — и обычно получите пригодную таблицу. Он справится с вёрсткой, которой не видел ни один парсер. Он прочитает заголовок колонки на языке, профиля для которого у парсера нет. Для разового случая — проверить подписку, разделить расход, посмотреть прошлый год — это правильный инструмент, и целая категория, построенная на плате за эту работу, ему проигрывает. Владелец крупнейшего конвертера в этой нише опубликовал свои числа в августе 2026 года: выручка упала на 24 %, новых подписчиков стало 45 в месяц вместо 184, и причиной он называет чат-ассистентов.
Значит, вопрос не в том, кто умнее. Вопрос в том, что вы сможете потом доказать.
Он не может проверить собственное чтение
Выписка несёт собственное доказательство: входящий остаток, исходящий остаток, а часто и текущий остаток рядом с каждой строкой. Они пришли из главной книги банка, а не из того, что читало PDF, — значит, это независимая проверка каждого извлечённого числа. src/parse/reconcile.ts её и проводит — строка за строкой против колонки остатка, где она есть, и входящий + Σ(суммы) = исходящий, где её нет, — и сообщает о каждой строке, которая не сошлась.
Ассистента можно попросить проверить собственную арифметику, и он сообщит, что арифметика сходится. Но это утверждение другого рода: один и тот же процесс проверяет сам себя, а неверно прочитанная сумма неверна в итоге ровно так же, как была неверна в строке. Проверка чего-то стоит только тогда, когда число, с которым сверяются, получено не тем, что проверяют.
Как это выглядит на практике: ассистент, прочитавший 1.234,56 в европейской выписке как 1234.56, выдаёт таблицу, где одна строка в сто раз меньше, чем нужно, и ничем не помечена. Цепочке остатков здесь всё равно, как выглядела строка: она не сходится, называет строку и печатает оба числа.
Файл должен быть верным, а не правдоподобным
Если CSV — для ваших собственных глаз, правдоподобного достаточно. Если он идёт в программу — нет.
- QBO — это OFX 1.02 в SGML, US-ASCII, с
INTU.BID, который Intuit сверяет с собственным реестром, и сFITID, обязанным оставаться неизменным при повторных импортах, иначе QuickBooks задвоит каждую операцию.src/export/qbo.tsвыводит этот идентификатор какsha1(account|date|amount|description)со счётчиком дублей. Ассистент, которого попросили «файл QBO», напишет нечто с правильными тегами внутри. - DATEV датирует проводку как
TTMM— четыре цифры, без года — и берёт год из окна в заголовке; поэтомуsrc/export/datev.tsотказывает выписке, пересекающей границу календарного года, вместо того чтобы провести декабрь не тем годом. Суммы идут без знака; направление живёт в Soll/Haben относительно счёта. Файл в Windows-1252, а не в UTF-8. - CAMT.053 — это XML, проверяемый по схеме.
src/export/camt053.tsвыдаётcamt.053.001.02, потому что именно эту версию немецкое DFÜ-Abkommen описывает поэлементно, а вывод сверялся с опубликованной XSD, а не проглядывался глазами.
Ничего умного во всём этом нет. Это сотня мелких фактов, от которых зависит, сорвётся ли импорт молча, — и ровно тот род вещей, который модель воспроизводит приблизительно.
Тот довод, который вовсе не про качество
Если вы бухгалтер, ведёте чужой учёт или консультируете по налогам, выписка не ваша. В Германии Steuerberater связан §203 StGB; по всему ЕС передача данных клиента обработчику требует договора по статье 28 GDPR. Потребительский чат-продукт не является ни вашим обработчиком, ни стороной такого договора, и вставить в него банковскую выписку клиента — решение о раскрытии, а не выбор инструмента. Эту планку не берёт никакое качество модели.
Что делает с этим сайт, сказано на главной странице и обеспечено развёртыванием, а не обещанием: файл разбирается в памяти и никогда не пишется на диск, контейнер смонтирован только на чтение, а исходный код открыт, так что проверить можно и то и другое. Если для ваших обязательств этого всё равно мало, лицензия — MIT: запустите конвертер внутри своей сети, и наружу не уйдёт ничего.
Что можно отдать другому человеку
Каждая конвертация здесь оставляет расписку: простой текстовый документ, где названы выписка, профиль, который её прочитал, два остатка, с которыми её сверяли, сама арифметика и каждая строка, которая не сошлась. Её собирает src/receipt.ts — на тех же шести языках, что и остальной сайт. Последний раздел расписки говорит, чего проверка не доказывает: расписка, которая говорит только «проверено», напрашивается ровно на то доверие, которого не может выдержать.
Переписка с чатом таким документом не является. Её можно отредактировать, она не переживает вкладку и она объявляет вывод, не показывая арифметики, из которой он получился.
Где этот инструмент — неверный ответ
Прямым текстом, потому что остальную страницу стоит читать только при условии, что эта часть в ней есть.
- Сканированная выписка. Из фотографии страницы извлекать нечего. Распознавание здесь есть, но оно медленнее, а его числа проверяются иначе — ассистент, читающий картинку, вполне может справиться лучше.
- Вёрстка, которую никто не узнаёт. Универсальный движок вместе со сверкой остатков вывозит большинство выписок, но банк, чей профиль — непроверенный шаблон, может быть прочитан неверно. Когда так происходит, проверка обычно об этом говорит, в чём и смысл; и всё же это хуже, чем модель, которая просто её прочитает.
- Разовый случай, для себя, без программы дальше по цепочке. Берите то, что быстрее. Ничего здесь не стоит лишнего шага.
- Всё, что требует суждения. На какой счёт расходов отнести платёж, дубль ли этот перевод, что значит загадочная строка мерчанта, — эта программа не угадывает ничего из этого, а модель здесь по-настоящему полезна.
Коротко
Ассистент — когда вам нужно прочтение. Этот инструмент — когда нужно прочтение, которое можно проверить, в файле, который примет другая программа, от инструмента, которому вам разрешено отправлять эти данные.