Перейти к основному содержимому
Beancount.io Logo

Как я веду Beancount: восемь лет денег в Git и 20-минутная воскресная проверка

Опубликовано 4 мин чтенияMike ThriftMike Thrift
Как я веду Beancount: восемь лет денег в Git и 20-минутная воскресная проверка

У Майи четырёхлетний ребёнок, компостный ящик на заднем дворе, который она описывает как «амбициозный», и привычка ходить за продуктами, о которой она не хочет говорить до конца этой статьи. Она работала бэкенд-инженером двенадцать лет, и последние восемь из них каждый доллар, заработанный или потраченный её домохозяйством, живёт в обычном текстовом файле в репозитории Git.

Непостановочное фото матери, обнимающей маленького ребёнка на диване в гостиной; на деревянном столике — бумажный блокнот, кружка кофе и стопка чеков

До этого она делала то же, что и большинство людей. Mint, с первой работы до самого закрытия. Затем полгода таблиц, которые, по её словам, «превратились во вторую работу с худшими инструментами». Коллега упомянул учёт в обычном тексте, она нырнула в эту кроличью нору и так из неё и не выбралась. «Я прочитала документацию Beancount во вторник вечером и за выходные перенесла три года истории. Мой парень подумал, что меня взломали, потому что я сидела за компьютером и улыбалась.»

Ритуал: 20 минут, раз в неделю, только за ноутбуком

Правило Майи противоположно правилам большинства пользователей приложений: финансы — это за столом, а не на телефоне. Каждое воскресенье, после того как ребёнок ложится спать, она открывает свою бухгалтерскую книгу в Fava на beancount.io и выполняет один и тот же цикл. Просмотреть транзакции за неделю. Распределить по категориям то, что импортёры оставили неоднозначным. Взглянуть на график чистой стоимости. Закрыть ноутбук.

«Это та же причина, по которой мне нравится CI, — говорит она. — Маленькая, скучная, повторяемая. Двадцать минут — и я закончила, и за неделю я об этом больше не думаю.»

Впрочем, у телефона есть одна задача: сбор данных. В продуктовом магазине она фотографирует чек в мобильном приложении beancount.io, даже не успев выйти с парковки. К воскресенью он уже лежит во входящих как проект транзакции, ожидающий подтверждения. «Раньше чек попадал в карман куртки, а затем, рано или поздно, в мусорку. Теперь он попадает в книгу. Вот и весь трюк — сбор в момент траты, суждение раз в неделю.»

Проверки баланса — модульные тесты для денег

Спросите её о любимой функции, и она не колеблется ни секунды — но это не график. Это проверки balance: однострочное утверждение в файле, которое гласит «на эту дату на этом счету было ровно столько». Если книга и банк когда-либо расходятся, файл отказывается проходить bean-check.

«Это провалившийся тест для ваших финансов. Моя книга не может незаметно отклониться от реальности. Люди платят за приложения для сверки счетов, а у меня это делает текстовый файл, который не компилируется.»

Её самая недооценённая функция — документы: прикрепление PDF-копии чека или фотографии непосредственно к транзакции. «В налоговый сезон мой бухгалтер спросил, где мои записи. Я отправила ему Git-бандл. Он подумал, что это шутка. Потом он открыл пробный баланс и перестал смеяться.»

Запрос о детском саде

Момент, когда система действительно оправдала себя, — это запрос BQL. Детский сад её четырёхлетнего сына казался дорогим, но чувства — это не цифры, поэтому она ввела одну строку — всего в месяц, с группировкой, двенадцатимесячное окно — на странице запросов Fava.

«Мне не нужно было программное обеспечение, чтобы понять, что детский сад дорогой. Но видеть, как линия ползёт вверх и вправо целый год, — вот что наконец заставило нас сравнивать цены. Мы переехали в место, которое нам на самом деле больше нравится, на двадцать минут ближе, и разница покрывает наши счета за продукты. Один запрос. Вот и вся окупаемость восьми лет бухгалтерии, если вы ведёте счёт. А я, очевидно, веду.»

Она также использует тот же трюк для подписок раз в квартал: один запрос, один список, десять минут отмен. «Всегда оказываются стриминговые сервисы. Такое ощущение, что они размножаются.»

Но также: кофе

У инженеров тоже есть статья расходов «излишества». Если бы её книга анализировала её, признаётся она, кульминацией было бы Expenses:Food:Coffee. «Сначала была V60. Потом весы. Потом чайник Fellow. Потом кофемолка, которая стоила дороже моего первого монитора.» Она, конечно, точно знает, сколько всё это стоило — она может посмотреть git log этой эпохи пуровера и увидеть, как коммиты становятся всё чаще.

Вот что люди не понимают в отслеживании денег в обычном тексте, говорит она. Дело не в ограничении. «Это не диета. Это зеркало. Я смотрю на строку с кофе и не чувствую ни капли вины, потому что я выбрала эту кофемолку. Книга просто гарантирует, что я делаю выбор с открытыми глазами.»

Восемь лет спустя этот репозиторий — самый долгий проект, который она когда-либо поддерживала. «Всё остальное, что я писала на работе, было переписано или удалено. Этот файл просто продолжает компилироваться.»

Хотите собственный воскресный ритуал? Зарегистрируйтесь на beancount.io, импортируйте свою первую выписку с помощью Smart Import и позвольте бухгалтерской книге запоминать за вас.

Поделиться этой статьёй