Перейти до основного вмісту
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, і дозвольте книзі пам'ятати за вас.

Поділитися цією статтею