Перейти к основному содержимому

49 записей с тегом "Beancount"

Посмотреть все теги

Технические преимущества Beancount по сравнению с Ledger, hledger и GnuCash

· 6 минут чтения
Mike Thrift
Mike Thrift
Marketing Manager

Выбор системы персонального учета предполагает компромисс между производительностью, архитектурой данных и расширяемостью. Для инженеров и других технических специалистов выбор часто сводится к тому, какая система обеспечивает наиболее надежную, предсказуемую и программируемую основу.

Опираясь на подробный сравнительный отчет, давайте проанализируем технические особенности Beancount по сравнению с его популярными аналогами с открытым исходным кодом: Ledger-CLI, hledger и GnuCash.

2025-07-22-beancounts-technical-edge-a-deep-dive-on-performance-python-api-and-data-integrity-vs-ledger-hledger-and-gnucash


Скорость и производительность: количественные тесты 🚀

Для любого серьезного набора данных производительность не подлежит обсуждению. Beancount спроектирован для обработки данных о транзакциях за десятилетия без ущерба для скорости. Несмотря на то, что он реализован на Python (v2), его высокооптимизированный парсер чрезвычайно эффективен.

  • Beancount: Практическое использование показывает, что он может загружать и обрабатывать журналы с сотнями тысяч транзакций примерно за 2 секунды. Использование памяти скромное; парсинг ~100 тыс. транзакций преобразует исходный текст в объекты в памяти, используя всего десятки мегабайт ОЗУ.
  • Стресс-тест на 1 млн транзакций: Тест с использованием синтетического журнала из 1 миллиона транзакций, 1000 счетов и 1 миллиона ценовых записей выявил существенные архитектурные различия:
    • hledger (Haskell): Успешно завершил полный парсинг и отчет за ~80,2 секунды, обрабатывая ~12 465 транзакций/сек, используя ~2,58 ГБ ОЗУ.
    • Ledger-CLI (C++): Процесс был завершен через 40 минут без завершения, вероятно, из-за известной регрессии, вызывающей чрезмерное использование памяти и процессора с очень сложными журналами.
    • Beancount: Хотя он не был включен в этот конкретный тест на 1 млн, его кривая производительности предполагает, что он справится с задачей эффективно. Более того, ожидается, что грядущий Beancount v3 с новым ядром на C++ и Python API обеспечит еще один порядок повышения пропускной способности.
  • GnuCash (C/Scheme): Поскольку GUI-приложение загружает весь свой набор данных в память, производительность заметно снижается с увеличением размера. Файл XML размером ~50 МБ (представляющий более 100 тыс. транзакций) открывался 77 секунд. Переход на серверную часть SQLite лишь незначительно улучшил это до ~55 секунд.

Вывод: Beancount обеспечивает исключительную производительность, которая масштабируется предсказуемо, что является критически важной функцией для долгосрочного управления данными. Он избегает падения производительности, наблюдаемого в Ledger, и задержки, связанной с пользовательским интерфейсом GnuCash.


Архитектура данных: простой текст против непрозрачных баз данных 📄

Способ хранения данных системой определяет ее прозрачность, переносимость и долговечность. Beancount использует чистый, удобочитаемый формат простого текста, который превосходен для технических пользователей.

  • Компактный и эффективный: Файл Beancount со 100 000 транзакций занимает всего ~8,8 МБ. Это компактнее, чем эквивалентный файл Ledger (~10 МБ), отчасти потому, что синтаксис Beancount позволяет выводить окончательную балансовую сумму в транзакции, уменьшая избыточность.
  • Структурно обеспеченный: Beancount требует явных директив YYYY-MM-DD\ open\ Account. Этот дисциплинированный подход предотвращает опечатки в названиях счетов, которые молча создают новые, неверные счета — распространенная ошибка в таких системах, как Ledger и hledger, которые создают счета на лету. Эта структура делает данные более надежными для программного манипулирования.
  • Готовность к контролю версий: Журнал в виде простого текста идеально подходит для контроля версий с помощью Git. Вы получаете полную, проверяемую историю каждого финансового изменения, которое вы делаете.
  • Сравнение с GnuCash: GnuCash по умолчанию использует сжатый с помощью gzip файл XML, где данные многословны и заключены в теги с GUID для каждой сущности. Хотя он предлагает серверные части SQLite, MySQL и PostgreSQL, это абстрагирует данные от простого, прямого управления текстом и управления версиями. Редактирование необработанного XML возможно, но гораздо более громоздко, чем редактирование файла Beancount.

Вывод: Формат данных Beancount — это не просто текст; это четко определенный язык, который максимизирует ясность, обеспечивает правильность и легко интегрируется с инструментами разработчика, такими как git и grep.


Убойная функция: настоящий Python API и архитектура плагинов 🐍

В этом заключается определяющее техническое преимущество Beancount. Это не монолитное приложение, а библиотека со стабильным, первоклассным Python API. Это дизайнерское решение открывает безграничные возможности автоматизации и интеграции.

  • Прямой программный доступ: Вы можете читать, запрашивать и манипулировать данными своего журнала непосредственно в Python. Вот почему разработчики мигрируют. Как отметил один пользователь, разочарование от попыток написания скриптов для плохо документированных внутренних связей Ledger исчезает с Beancount.
  • Конвейер плагинов: Загрузчик Beancount позволяет вставлять пользовательские функции Python непосредственно в конвейер обработки. Это позволяет выполнять произвольные преобразования и проверки потока данных по мере его загрузки — например, написать плагин, чтобы обеспечить, чтобы каждый расход от определенного поставщика имел определенный тег.
  • Мощная инфраструктура импорта: Выйдите за рамки неуклюжих мастеров импорта CSV. С Beancount вы пишете скрипты Python для анализа финансовой отчетности из любого источника (OFX, QFX, CSV). Такие инструменты сообщества, как smart_importer, даже используют модели машинного обучения для автоматического прогнозирования и назначения учетных записей проводок, превращая часы ручной категоризации в процесс, занимающий несколько секунд и выполняемый одной командой.
  • Как сравниваются другие:
    • Ledger/hledger: Расширяемость в основном внешняя. Вы передаете данные в/из исполняемого файла. Хотя они могут выводить JSON/CSV, вы не можете внедрить логику в их основной цикл обработки без изменения исходного кода C++/Haskell.
    • GnuCash: Расширяемость обрабатывается через крутую кривую обучения с Guile (Scheme) для пользовательских отчетов или через привязки Python (с использованием SWIG и таких библиотек, как PieCash), которые взаимодействуют с движком GnuCash. Это мощно, но менее прямо и "питонично", чем подход Beancount к родной библиотеке.

Вывод: Beancount разработан для программиста. Его библиотечно-ориентированный дизайн и глубокая интеграция с Python делают его наиболее гибкой и автоматизируемой системой из четырех.


Философия: строгий компилятор для ваших финансов 🤓

Кривая обучения Beancount является прямым результатом его основной философии: ваши финансовые данные — это формальный язык, и он должен быть правильным.

Парсер Beancount функционирует как строгий компилятор. Он выполняет надежную синтаксическую и логическую проверку. Если транзакция не сбалансирована или счет не был открыт, он откажется обрабатывать файл и вернет описательную ошибку с номером строки. Это функция, а не ошибка. Это гарантирует, что если ваш файл "компилируется", базовые данные структурно надежны.

Этот детерминированный подход обеспечивает уровень целостности данных, который неоценим для построения надежных автоматизированных систем поверх него. Вы можете писать скрипты, которые используют вывод Beancount с уверенностью, зная, что данные уже были тщательно проверены.

Для кого предназначен Beancount?

На основе этого технического анализа Beancount является оптимальным выбором для:

  • Разработчиков и инженеров, которые хотят рассматривать свои финансы как контролируемый версиями, программируемый набор данных.
  • Любителей данных, которые хотят писать пользовательские запросы, создавать уникальные визуализации с помощью таких инструментов, как Fava, или передавать свои финансовые данные в другие аналитические модели.
  • Любого, кто ценит доказуемую правильность и автоматизацию больше, чем удобство графического интерфейса или снисходительность менее структурированного формата.

Если вам нужна чистая производительность C++ для стандартных отчетов, Ledger — это претендент. Для исключительной масштабируемости в парадигме функционального программирования hledger впечатляет. Для многофункционального графического интерфейса с минимальной настройкой GnuCash превосходит.

Но если вы хотите построить действительно надежную, автоматизированную и глубоко настраиваемую систему управления финансами, Beancount обеспечивает превосходную техническую основу.

Сколько откладывать на налоги для малого бизнеса

· 6 минут чтения
Mengjia Kong
Mengjia Kong
IRS Enrolled Agent

Ведение малого бизнеса и так представляет собой постоянную жонглирование денежными потоками, поставщиками и клиентами — налоговые сюрпризы не должны быть еще одним шаром в воздухе. Хорошая новость: с помощью простой схемы и нескольких трюков Beancount вы можете превратить «Надеюсь, налоговый счет не будет огромным» в предсказуемый ежемесячный перевод.

1. Знайте, за что вы платите

2025-07-20-сколько-откладывать-на-налоги-для-малого-бизнеса

Прежде чем откладывать деньги, нужно знать, куда они пойдут. Для большинства малых предприятий в США (особенно индивидуальных предпринимателей и товариществ), общая сумма налоговых обязательств представляет собой комбинацию нескольких отдельных обязательств.

  • Федеральный подоходный налог: Это прогрессивный налог, то есть ставка увеличивается по мере роста вашего дохода. На 2025 год ставки доходят до 37% для доходов одиноких лиц выше 626 350 долларов США и доходов супружеских пар, подающих совместную декларацию (MFJ), выше 751 600 долларов США.
  • Налог на самозанятость (SE): Это предпринимательская версия налогов FICA (социальное обеспечение и медицинское страхование), которые платят сотрудники по форме W-2. Это фиксированные 15,3% от вашей первой части чистого дохода. Часть в размере 12,4% на социальное обеспечение перестает взиматься, как только ваша прибыль достигает годовой базы заработной платы, которая, по прогнозам, составит 176 100 долларов США в 2025 году. Оставшиеся 2,9% на медицинское страхование продолжают взиматься со всей прибыли.
  • Налог на прибыль штата и местный налог: Этот налог сильно варьируется в зависимости от местоположения, от 0% в таких штатах, как Вайоминг и Техас, до более 13% в верхней категории Калифорнии.
  • Штрафы за ежеквартальную недоплату: IRS хочет получать свои деньги в течение года, а не все сразу. Чтобы избежать штрафов, вы, как правило, должны предоплатить не менее 90% от суммы налоговых обязательств текущего года или 100% от суммы налогового счета за предыдущий год (этот порог поднимается до 110%, если ваш скорректированный валовой доход, или AGI, превышает 150 000 долларов США).

Быстрая эвристика: Большинство индивидуальных предпринимателей в США, проживающих в штате со средним уровнем налогообложения, в конечном итоге должны 25% - 30% от чистой прибыли после уплаты федеральных налогов, налогов на самозанятость и налогов штата.

2. Трехэтапная оценка, которую можно обновлять ежемесячно

Вам не нужно сложное программное обеспечение, чтобы справиться с этим. Достаточно простого, повторяемого процесса.

  1. Прогноз годовой прибыли: Посмотрите на свои показатели с начала года и составьте разумный прогноз на весь год. Базовая формула — ваш друг: Прогнозируемый доход - Прогнозируемые вычитаемые расходы = Прогнозируемая прибыль.
  2. Применение эффективной налоговой ставки: Начните с разумного процента. Если у вас есть налоговая декларация за прошлый год, вы можете рассчитать свою эффективную ставку на ее основе. Если вы новичок в этом деле, эвристика 30% — хорошая отправная точка.
  3. Разделите на 12 (или 52): Возьмите общую сумму предполагаемого годового налога и разделите ее на количество периодов оплаты, которые вы хотите использовать. Мы рекомендуем ежемесячно. Переводите эту сумму на специальный банковский счет для налоговых резервов каждый месяц. Если ваш денежный поток более волатилен, еженедельный перевод может показаться более управляемым.

3. Реализация в Beancount

Простая текстовая бухгалтерия делает этот процесс прозрачным и проверяемым. Вот как управлять своими налоговыми сбережениями в Beancount.

Сначала создайте рутинную транзакцию для перевода ваших ежемесячных сбережений с вашего основного расчетного счета на отдельный, специальный сберегательный счет для налогов.

; Резервируем налоги за июль
2025-07-31 * "Перевод налогового резерва"
Assets:Bank:Checking -3000 USD
Assets:Bank:TaxReserve 3000 USD
Equity:Opening-Balances

Когда вы совершаете ежеквартальный расчетный платеж в государственную казну, вы регистрируете фактическое обязательство. Платеж поступает непосредственно с вашего резервного счета.

; Регистрируем обязательство при подаче ежеквартального платежа
2025-09-15 * "Ежеквартальный расчетный налоговый платеж за 3 квартал"
Assets:Bank:TaxReserve -9000 USD
Liabilities:Taxes:Federal 6000 USD
Liabilities:Taxes:State 3000 USD

Эта простая система дает вам три мощных преимущества:

  • Мгновенная видимость: Баланс вашего счета Assets:Bank:TaxReserve всегда показывает, что уже «зарезервировано». Вы сразу видите, что эти деньги недоступны для других бизнес-расходов.
  • Точная прибыль: Поскольку резерв рассматривается как перевод между счетами активов, ваш отчет о прибылях и убытках не искажается. Вы регистрируете налоговое обязательство только тогда, когда фактически подаете декларацию и оплачиваете его.
  • Аудиторский след: Каждый платеж в IRS или казначейство вашего штата связан с четко обозначенным движением средств с вашего резервного счета, создавая чистый документальный след.

4. Точная настройка процента

Первоначальная оценка в 25% - 30% — отличное начало, но вы должны скорректировать ее в зависимости от вашей конкретной бизнес-модели.

  • Высокомаржинальные консультанты / агентства: Если вы значительно превышаете базу заработной платы для социального обеспечения (176 100 долларов США), ваша эффективная налоговая ставка вырастет. Ставка 30% - 35%, вероятно, будет более точной.
  • Товарный бизнес со значительными вычетами: Если у вас значительные затраты на проданные товары (COGS), запасы или другие вычеты, ваша чистая прибыль ниже. Ставки 20% - 25% может быть достаточно. Используйте рабочие листы формы 1040-ES каждый квартал для подтверждения.
  • Владельцы S-Corp: Ваша ситуация иная. «Разумная зарплата», которую вы себе выплачиваете, облагается стандартными удержаниями из заработной платы (FICA и подоходный налог). Ваши распределения (прибыль, выплачиваемая сверх зарплаты) по-прежнему требуют ежеквартальных расчетных платежей, но часто по более низкой предельной ставке, поскольку они не облагаются налогом SE.
  • Продавцы в нескольких штатах: Если у вас есть «нексус» (значительное присутствие бизнеса) в нескольких штатах, вы можете быть должны подоходный налог в каждом из них. Это может увеличить ваши обязательства. Для ясности создайте отдельные счета обязательств в Beancount, например, Liabilities:Taxes:State:CA и Liabilities:Taxes:State:NY.

5. Автоматизируйте, проверяйте, повторяйте

Система работает только тогда, когда вы ее используете. Сделайте ее использование легким.

  • Автоматизируйте: Подключите свой основной операционный счет к высокодоходному сберегательному счету с названием типа «TaxReserve». Настройте автоматический перевод сразу после закрытия книг каждый месяц.
  • Проверяйте: Пересматривайте прогноз своей годовой прибыли ежеквартально. Если продажи во втором квартале превзошли ожидания, немедленно увеличьте сумму ежемесячного резерва. Не ждите до января, чтобы обнаружить, что вы недосберегли.
  • Повторяйте: Храните ключевые документы в организованном виде в вашем каталоге Beancount. Сохранение прошлогодней окончательной налоговой декларации (document: "2024/Taxes/Form1040.pdf") дает вам контекст в один клик при обсуждении цифр с вашим CPA или планировании на следующий год.

Заключительные мысли

Налоговые счета кажутся случайными только тогда, когда случайным является процесс откладывания средств. Встраивая резерв на основе процентной ставки непосредственно в ваш поток двойной бухгалтерии, вы меняете беспокойство на алгебру, а Beancount делает математику (и аудит) тривиальными. Пересматривайте свою ставку каждый квартал, пополняйте Assets:Bank:TaxReserve, и 15 апреля снова станет обычным рабочим днем.


Отказ от ответственности: Эта статья предназначена только для образовательных целей и не является налоговой консультацией. Всегда уточняйте цифры у квалифицированного специалиста для вашей юрисдикции и типа организации.

Ведение учета vs. Бухгалтерский учет: В чем разница и как Beancount вписывается?

· 4 минуты чтения
Mike Thrift
Mike Thrift
Marketing Manager

Когда вы ведете бизнес или управляете личными финансами, термины ведение учета и бухгалтерский учет часто сливаются. Но понимание их различий — особенно при использовании текстового инструмента, такого как Beancount, — может помочь вам построить более эффективные системы и принимать более обоснованные финансовые решения.

В этом руководстве мы рассмотрим роли ведения учета и бухгалтерского учета, а также то, как Beancount поддерживает обе функции (да, это так).

2025-06-27-accounting-vs-bookkeeping

📘 Ведение учета: Искусство ежедневного отслеживания

Ведение учета — это базовый уровень финансового управления. Речь идет о записи того, что фактически произошло — без предположений и прогнозов.

Ведение учета включает:

  • Запись доходов и расходов
  • Отслеживание активов и обязательств
  • Присвоение тегов транзакциям для последующего использования
  • Ведение главной книги

В Beancount это выглядит так:

2025-06-27 * "Stripe Payout"
Assets:Bank:Checking 1,200.00 USD
Income:Sales

Каждая транзакция — это строительный блок. Вы еще не анализируете — вы просто записываете правду, строка за строкой.

Если вы только начинаете, Beancount поощряет хорошие привычки ведения учета благодаря своей явной структуре и читаемому синтаксису. Вы будете вынуждены (в хорошем смысле!) отслеживать каждый цент и объяснять каждую транзакцию.

📊 Бухгалтерский учет: Превращение данных в аналитику

Бухгалтерский учет основывается на ваших учетных записях для ответа на более глубокие вопросы:

  • Мы прибыльны?
  • Какой у нас запас денежных средств?
  • Стоит ли нам оплатить это программное обеспечение авансом или списывать ежемесячно?
  • Как нам минимизировать налоги?

В бухгалтерском учете вы:

  • Сверяете счета и корректируете записи
  • Генерируете отчеты, такие как отчеты о прибылях и убытках
  • Амортизируете активы
  • Планируете налоги и будущие расходы

С Beancount вы можете анализировать свои записи, используя такие инструменты, как beancount.io:

  • Просматривать бухгалтерские балансы, отчеты о прибылях и убытках и графики движения денежных средств
  • Визуализировать доходы по категориям
  • Аннотировать решения с помощью метаданных (например, tag:business-trip)

Хотите отслеживать годовую подписку на Zoom?

2025-01-15 * "Zoom Annual Plan"
Expenses:Software 149.90 USD
Assets:Bank:Checking
tag:business-tools

Позже вы можете амортизировать ее ежемесячно или анализировать во время бюджетных сессий.

👩‍💼 Специалист по ведению учета vs. Бухгалтер: Кто чем занимается?

  • Специалист по ведению учета: Сосредоточен на точности. Записывает, категоризирует и организует.
  • Бухгалтер: Добавляет интерпретацию. Консультирует, планирует и моделирует результаты.

Beancount позволяет вам быть и тем, и другим, или четко передать один уровень профессионалу.

Например:

  • Как основатель, вы можете вести свой учет с помощью Beancount.
  • В налоговый период вы экспортируете отчеты или необработанные данные для вашего бухгалтера, чтобы он их доработал.

🛠️ Программное обеспечение для ведения учета и бухгалтерского учета: Где место Beancount?

Большинство популярных инструментов (например, QuickBooks, Xero) размывают грань между ведением учета и бухгалтерским учетом. Beancount использует другой подход:

  • Вы управляете всем через простой текст, хранящийся в системе контроля версий, если хотите.
  • Нет скрытых транзакций или закулисной магии.
  • Вам предлагается понимать свои собственные книги.

Beancount идеален для тех, кто ценит прозрачность, целостность данных и автоматизацию с помощью инструментов с открытым исходным кодом.

🧠 Почему это различие важно

Знание различий между ведением учета и бухгалтерским учетом помогает вам:

  • Оставаться соответствующим требованиям и готовым к аудиту
  • Понимать, куда инвестировать время (ежедневное отслеживание vs. ежемесячные аналитические данные)
  • Четко общаться с финансовыми специалистами
  • Масштабировать свои финансовые системы, не утопая в сложности

🪄 Заключительная мысль: Ваша книга, ваши правила

Независимо от того, являетесь ли вы индивидуальным предпринимателем или владельцем малого бизнеса, Beancount дает вам возможность точно управлять своими книгами — и в конечном итоге принимать стратегические решения, как финансовый директор.

Помните:

  • Ведение учета = что произошло
  • Бухгалтерский учет = что это значит

С Beancount вы создаете оба слоя с ясностью и уверенностью.

Дайте знать, если вам нужна версия для печати или продолжение в виде руководства.

Бухгалтерские проводки Beancount: Как делать, определения и примеры

· 4 минуты чтения
Mike Thrift
Mike Thrift
Marketing Manager

Каждая финансовая операция, которую совершает ваш бизнес, должна быть записана — и в мире учета в виде простого текста это начинается с бухгалтерских проводок. Если вы используете Beancount, понимание бухгалтерских проводок является ключом к созданию точных, проверяемых и чистых финансовых записей.

Это руководство поможет вам разобраться:

2025-06-27-journal-entries

  • Что такое бухгалтерская проводка
  • Почему бухгалтерские проводки важны
  • Как их писать в синтаксисе Beancount
  • Как их эффективно использовать
  • Примеры реальных операций (платежи клиентов, покупки, займы и т. д.)

🧾 Что такое бухгалтерская проводка в Beancount?

В Beancount бухгалтерская проводка — это датированная операция, записанная в удобочитаемом текстовом формате. Каждая проводка следует принципам двойной записи: вы записываете, откуда поступают деньги (кредит) и куда они уходят (дебет), гарантируя, что ваши книги всегда сбалансированы.

Пример:

2024-06-01 * "Client payment for invoice #123"
Assets:Bank:Checking 600.00 USD
Income:Sales
  • * указывает на проведенную операцию.
  • Описание показывает контекст проводки.
  • Assets:Bank:Checking дебетуется.
  • Income:Sales кредитуется (значение подразумевается).

Каждая проводка хранится в файле .beancount — это просто текстовый файл, который вы можете версионировать, создавать резервные копии и даже редактировать в Vim или VSCode.

📒 Почему бухгалтерские проводки важны

Бухгалтерские проводки — это атомарная единица вашей бухгалтерской книги.

Они:

  • Поступают в вашу Главную книгу и Остатки по счетам
  • Формируют все отчеты: Отчеты о прибылях и убытках, Бухгалтерские балансы, Отчеты о движении денежных средств
  • Позволяют отслеживать каждый доллар, строка за строкой, до его источника

С помощью правильных инструментов вы увидите эти операции, отображенные в пользовательском интерфейсе — категоризированные, доступные для поиска и фильтрации. Но все начинается с этой простой текстовой записи.

📚 Как работает двойная запись в Beancount

Beancount обеспечивает двойную запись. Каждая операция должна быть сбалансирована: общий дебет = общий кредит.

Быстрое правило:

  • Дебетуйте активы и расходы (вы получаете денежные средства или несете затраты)
  • Кредитуйте доходы и обязательства (вы зарабатываете деньги или берете на себя долг)

Пример – Покупка офисных принадлежностей:

2024-06-02 * "Bought printer ink"
Expenses:OfficeSupplies 100.00 USD
Assets:Bank:Checking

🧠 Визуализация проводок

После сохранения, в левой навигационной панели https://beancount.io/ledger/0/income_statement/ вы увидите ...

  • Журнал проводок: Просмотр операций с поиском, тегами и фильтрацией
  • Выпадающий список фильтра счетов: Просмотр текущих остатков и проводок по каждому счету
  • Отчет о прибылях и убытках: Сумма ваших счетов Income:* и Expenses:*
  • Бухгалтерский баланс: Ваши активы за вычетом обязательств

Fava помогает превратить ваши необработанные проводки Beancount в полезные отчеты — без настройки базы данных.

💡 Примеры распространенных бухгалтерских проводок

✅ Вы получаете оплату от клиента

2024-06-05 * "Payment for invoice #456"
Assets:Bank:Checking 1,200.00 USD
Income:Consulting

Необязательно: Если вы используете счета к получению:

2024-05-20 * "Invoice #456 sent"
Assets:AccountsReceivable 1,200.00 USD
Income:Consulting

2024-06-05 * "Payment for invoice #456"
Assets:Bank:Checking 1,200.00 USD
Assets:AccountsReceivable -1,200.00 USD

🖨️ Вы покупаете офисные принадлежности

2024-06-07 * "Staples run"
Expenses:OfficeSupplies 85.00 USD
Assets:Bank:Checking

🏦 Вы совершаете платеж по кредиту

Допустим, вы платите $1 000, из которых $200 — проценты, а $800 — основной долг:

2024-06-10 * "Loan repayment"
Liabilities:Loan -800.00 USD
Expenses:LoanInterest 200.00 USD
Assets:Bank:Checking -1,000.00 USD

🔒 Закрывающие проводки в конце года

Чтобы «закрыть книги», вы обычно переносите все счета Income и Expenses на счет Equity.

2024-12-31 close Income:*
2024-12-31 close Expenses:*

Или вручную:

2024-12-31 * "Close books"
Equity:RetainedEarnings 45,000.00 USD
Income:Consulting -45,000.00 USD

🛠️ Корректирующие проводки

Если вы ведете учет по методу начисления, вам потребуется добавить корректирующие проводки — для предоплаченных расходов, начисленных доходов и т. д.

Пример: Ежемесячная подписка на программное обеспечение за $100, оплаченная ежегодно

2024-01-01 * "Annual software payment"
Assets:Prepaid 1,200.00 USD
Assets:Bank:Checking -1,200.00 USD

2024-01-31 * "Monthly amortization"
Expenses:Software 100.00 USD
Assets:Prepaid -100.00 USD

Автоматизируйте с помощью скриптов или доступных инструментов Beancount.

🧰 Beancount: Легкий, проверяемый, мощный

Beancount — это не просто инструмент для учета, это идея: прозрачная, текстовая финансовая правда. Это современная система ведения бухгалтерских книг, которая является:

  • Легко поддается контролю версий (Git!)
  • Полностью портативна (без проприетарной базы данных)
  • Отлично подходит для разработчиков, фрилансеров и малого бизнеса

Готовы начать?

Начните свой файл Beancount с:

option "title" "My Business Ledger"
option "operating_currency" "USD"

2024-01-01 open Assets:Bank:Checking USD
2024-01-01 open Income:Sales USD
2024-01-01 open Expenses:OfficeSupplies USD
2024-01-01 open Equity:OpeningBalances USD

2024-01-01 * "Initial balance"
Assets:Bank:Checking 10,000.00 USD
Equity:OpeningBalances

Затем загрузите свой файл в предпочитаемый инструмент визуализации, чтобы увидеть магию.

Хотите начать проще? Попробуйте шаблоны, импортеры или общественные инструменты, такие как bean-extract.

С Beancount ваши книги наконец-то ваши собственные — простые, скриптуемые и устойчивые к аудиту.

Дайте мне знать, если вы хотите загружаемую версию в формате PDF или варианты примеров, специфичные для малого бизнеса.

Beancount для владельцев малого бизнеса

· 4 минуты чтения
Mike Thrift
Mike Thrift
Marketing Manager

Основы бухгалтерии, которые вы действительно можете понять — и освоить

Ведение собственной бухгалтерии не обязательно должно означать электронные таблицы, стресс или дорогостоящее программное обеспечение. Beancount предоставляет вам минималистичный, проверяемый и мощный способ ведения учета, используя только простой текст и систему двойной записи.

2025-06-25-beancount-for-small-businesses

Это руководство — ваше полное введение в приведение в порядок бухгалтерских книг вашего малого бизнеса с помощью Beancount, с реальными примерами и пошаговыми инструкциями.

🧾 Что такое Beancount?

Beancount — это система учета с открытым исходным кодом, основанная на двойной записи. Вы записываете свои транзакции в файлы .beancount и используете такие инструменты, как bean-doctor, bean-report или Fava, для анализа и визуализации ваших книг.

Вот базовая транзакция:

2025-06-01 * "Client Payment: Invoice #123"
Assets:Bank:Business:Checking 1,200.00 USD
Income:Consulting -1,200.00 USD

Он читаем, скриптуем и контролируем версиями — идеален для владельцев бизнеса, которые хотят прозрачности и контроля.

📌 Почему бухгалтерия важна (и почему Beancount)

  • Вам это нужно для налогов
  • Вам это нужно для ясности
  • Вам это нужно для финансирования
  • Вам это нужно, чтобы рано выявлять ошибки

И с Beancount вы можете сделать все это, используя только текстовый редактор и несколько инструментов.

🪜 8 шагов, чтобы начать вести собственную бухгалтерию с Beancount

1. Разделяйте бизнес- и личные финансы

Откройте отдельный расчетный счет и кредитную карту для бизнеса. Отразите это в Beancount:

2025-06-01 open Assets:Bank:Business:Checking USD
2025-06-01 open Liabilities:CreditCard:Business USD

Это сохраняет ваши книги в чистоте и защищает вас юридически (особенно если вы являетесь ООО или корпорацией).

2. Используйте двойную запись

Каждое финансовое событие затрагивает два счета. Beancount обеспечивает этот баланс по умолчанию:

2025-06-05 * "Web hosting payment"
Expenses:Hosting 15.00 USD
Assets:Bank:Business:Checking -15.00 USD

Это гарантирует математическую целостность вашей главной книги.

3. Выберите кассовый или метод начисления

  • Кассовый метод: Записывайте доходы/расходы только тогда, когда деньги получены/потрачены.
  • Метод начисления: Отслеживайте обязательства (кредиторская/дебиторская задолженность).

Пример кассового метода:

2025-06-10 * "Client payment received"
Assets:Bank:Business:Checking 800.00 USD
Income:Sales -800.00 USD

Пример метода начисления (счет отправлен, затем получен платеж):

2025-06-01 * "Invoice #2001 issued"
Assets:AccountsReceivable 800.00 USD
Income:Sales -800.00 USD

2025-06-15 * "Payment received for Invoice #2001"
Assets:Bank:Business:Checking 800.00 USD
Assets:AccountsReceivable -800.00 USD

4. Настройте свой план счетов

Четко определите свои категории. Минималистичный пример:

2025-01-01 open Income:Sales USD
2025-01-01 open Expenses:Software USD
2025-01-01 open Expenses:Meals USD
2025-01-01 open Equity:Owner USD

Адаптируйте их под свой бизнес. Сохраняйте последовательность и описательность.

5. Категоризируйте транзакции (с метаданными)

Используйте метаданные для отслеживания контекста. Это помогает с вычетами, аудитами и ясностью.

2025-06-18 * "Team lunch after Q2 milestone"
Expenses:Meals 90.00 USD
Assets:Bank:Business:Checking -90.00 USD
; business_purpose: Q2 celebration
; attendees: Alice, Bob, Tian

Добавьте теги или ссылки на квитанции:

  ; receipt: ./receipts/2025-06-18-lunch.jpg

6. Храните подтверждающие документы

Используйте Dropbox, Google Drive или папку receipts/. Затем свяжите их в Beancount так:

2025-06-02 * "Domain Renewal - GoDaddy"
Expenses:Hosting 20.00 USD
Assets:Bank:Business:Checking -20.00 USD
; receipt: ./receipts/domain-godaddy.pdf

Аудиторы и налоговые специалисты будут вам благодарны.

7. Организуйте для вычетов

Четко отмечайте вычитаемые расходы:

2025-06-03 * "Adobe Creative Cloud Subscription"
Expenses:Software 60.00 USD
Assets:Bank:Business:Checking -60.00 USD
; deductible: true
; usage: 100% business

Используйте пользовательские метаданные или теги, такие как #deductible, для отслеживания потенциальных списаний.

8. Сделайте это привычкой

Создайте рабочий процесс. Пример:

# Weekly bookkeeping routine
git pull origin main
bean-extract transactions.csv >> ledger.beancount
bean-doctor ledger.beancount
bean-check ledger.beancount
fava ledger.beancount

Или просто возьмите за правило "Beancount-пятницу" и сверяйте все еженедельно.

💼 Сделай сам или найми помощь?

Вы можете сделать все это самостоятельно с Beancount. Но даже продвинутым пользователям следует:

  • Проконсультироваться с бухгалтером при настройке
  • Нанять бухгалтера во время налогового периода, если это необходимо
  • Использовать Fava для ежемесячных отчетов

Вы получаете всю мощь бухгалтерской системы без привязки к поставщику или абонентской платы.

🛠️ Рекомендуемые инструменты для пользователей Beancount

  • Fava – красивая веб-панель для файлов Beancount
  • bean-doctor – проверки состояния вашей главной книги
  • bean-query – запускайте SQL-подобные отчеты
  • beancount-import / beanie – автоматический импорт банковских операций
  • Контроль версий – используйте Git для отслеживания изменений в ваших книгах

✅ Заключительный пример: Полный поток транзакций

2025-06-20 * "Consulting payment from Acme Inc."
Assets:Bank:Business:Checking 3,000.00 USD
Income:Consulting -3,000.00 USD
; invoice: 2025-06-acme
; project: "Backend API redesign"

2025-06-21 * "Notion Pro Plan"
Expenses:Software 10.00 USD
Assets:Bank:Business:Checking -10.00 USD
; purpose: project documentation
; receipt: ./receipts/notion-june.pdf

🎯 Резюме

Beancount идеально подходит для владельцев малого бизнеса, которые хотят:

  • Сохранять низкие затраты
  • Полностью контролировать свои финансы
  • Избежать раздутости устаревшего программного обеспечения
  • Принять прозрачность и простоту обычного текста

Хотите загружаемый стартовый шаблон .bean для вашего бизнеса? Сообщите мне тип вашего бизнеса, и я создам шаблон, адаптированный специально для вас.

Зеленая Главная Книга: Учет ESG с Beancount

· 7 минут чтения
Mike Thrift
Mike Thrift
Marketing Manager

В современном мире метрики экологического, социального и корпоративного управления (ESG) — это уже не просто модные слова; они являются важными показателями здоровья компании и ее будущей жизнеспособности. Но как интегрировать эти важнейшие данные об устойчивом развитии с традиционным финансовым учетом? На помощь приходит Beancount, открытый, текстовый регистр двойной записи, который предлагает удивительно мощное и гибкое решение для устранения этого пробела.

Представьте, что вы превращаете свою разрозненную отчетность по устойчивому развитию в оптимизированную, автоматизированную систему, которая отслеживает все — от выбросов углерода до разнообразия поставщиков, — и все это в рамках вашего существующего финансового рабочего процесса. Beancount делает это возможным, рассматривая данные ESG как "полноправных участников наряду с финансовыми транзакциями".

2025-06-22-esg-tracking

Моделирование данных ESG: Подход Beancount

Присущая Beancount гибкость — это его суперсила, когда речь заходит об ESG. Вместо разрозненных электронных таблиц вы можете встраивать показатели устойчивого развития непосредственно в свою финансовую структуру, используя несколько ключевых методов:

  • Выделенные счета и товары: Представьте свой экологический след как еще одну валюту. Вы можете создавать счета, такие как Metrics:Emissions:CO2e, для отслеживания выбросов углерода. Эти выбросы могут даже рассматриваться как товар (например, единица эквивалента CO2, тCO2e), что позволяет записывать конкретные количества в ваших транзакциях. Например, покупка авиабилета может кредитовать счет Emissions:CO2e на +0.3 тCO2e наряду с денежной стоимостью.
  • Пользовательские метаданные (теги): Метаданные Beancount в формате ключ-значение идеально подходят для добавления контекста. Вы можете пометить транзакцию тегом CO2e: 0.3 т или Scope: 3, чтобы обозначить ее углеродное воздействие или область Протокола по парниковым газам. Это напрямую связывает финансовые затраты с их экологическими последствиями, предоставляя более полную и насыщенную картину.
  • Структурированные теги для категорий: Соответствие таким стандартам, как Протокол по парниковым газам (GHGP), имеет решающее значение. Вы можете использовать согласованные теги или соглашения об именовании счетов, такие как Metrics:Emissions:Scope1, Metrics:Emissions:Scope2 и Metrics:Emissions:Scope3, чтобы легко классифицировать и отчитываться о прямых, энергетических и выбросах цепочки создания стоимости.

Такой адаптивный подход означает, что по мере развития стандартов ESG вы можете корректировать структуру своей бухгалтерской книги без полной перестройки.


Beancount против специализированных ESG-инструментов: Стратегический выбор

В то время как специализированные ESG-платформы, такие как Persefoni или SAP Green Ledger, предлагают высокоавтоматизированные, специально разработанные решения, Beancount представляет собой привлекательную альтернативу, особенно для тех, кто ищет прозрачность и контроль.

ХарактеристикаBeancount (простой текст)Специализированные SaaS (например, Persefoni, Plan A)Интеграция с корпоративными ERP (например, SAP Green Ledger)
Моделирование данныхОпределяемые пользователем счета и метаданные; гибко, но требует ручной структуризации.Предопределенные схемы; управляемый ввод для действий и автоматическое преобразование в выбросы.Выбросы напрямую сопоставляются с транзакциями ERP и основными данными.
Коэффициенты выбросовПредоставляются пользователем или интегрируются через пользовательские скрипты; требуют ручных обновлений.Встроенные, регулярно обновляемые библиотеки коэффициентов выбросов; автоматические расчеты.Интегрированы с корпоративными данными и стандартными факторами для точности, пригодной для аудита.
Интеграция данныхОткрытая архитектура через пользовательские скрипты Python/API; требует разработки для автоматического импорта.Множество готовых коннекторов к внешним источникам данных (коммунальные услуги, ERP, системы путешествий).Нативная интеграция с основными бизнес-процессами и потоками данных внутри ERP.
Отчетность и аудитПользовательские запросы и отчеты Fava; высоко настраиваемые, но требуют пользовательского дизайна. Контроль версий (Git) для прозрачного аудиторского следа.Многофункциональные дашборды, готовые отчеты для стандартов (GHG, TCFD, CDP). Журналы аудита и блокировка периодов внутри платформы.Интегрированная отчетность внутри ERP; разработана для данных, поддающихся аудиту с "разумной уверенностью".
Стоимость и доступностьБесплатно и с открытым исходным кодом; требует знаний Beancount/скриптинга.Коммерческий SaaS с абонентской платой; меньшие технические накладные расходы.Корпоративное программное обеспечение с потенциально высокими затратами на лицензирование и внедрение; требует специфического опыта работы с ERP.

Beancount — это мощный инструмент для самостоятельного использования: Он дает вам беспрецедентную гибкость и прозрачность, делая его идеальным для частных лиц или технически подкованных небольших организаций. Вы полностью владеете своими данными, избегая привязки к поставщику.

Специализированные инструменты предлагают готовые решения: Они превосходны в автоматизированном сборе данных, встроенных базах данных коэффициентов выбросов и готовых отчетах о соответствии, часто по более высокой цене и с меньшей гибкостью.

Гибридный подход также жизнеспособен: используйте Beancount для детального внутреннего отслеживания и сверки, а затем экспортируйте сводные данные на внешнюю платформу для отчетности для заинтересованных сторон высокого уровня.


Практическое применение: ESG в действии с Beancount

Универсальность Beancount делает его подходящим для ряда ключевых сценариев использования ESG:

  • Отслеживание выбросов категории 3: Наиболее сложные для отслеживания выбросы (из вашей цепочки создания стоимости) могут быть интегрированы путем связывания данных о выбросах поставщиков с транзакциями закупок. Beancount обеспечивает четкий аудиторский след для этих сложных показателей, что позволяет проводить более глубокий анализ и точно определять источники данных.
  • Аудиты устойчивого развития и обеспечение достоверности: Как и финансовые данные, показатели ESG должны быть проверяемыми. Beancount позволяет связывать каждую запись ESG с исходными документами (например, счетами за коммунальные услуги, заявлениями о проверке третьей стороной), обеспечивая тщательный аудиторский след для прозрачности и обеспечения достоверности.
  • Отчетность о соответствии EU CSRD/ESRS: Для компаний, сталкивающихся со строгими правилами, такими как CSRD, Beancount может служить центральным хранилищем для количественных раскрытий информации. Хотя он не будет автоматически форматировать отчеты в XBRL, он предоставляет детализированные, проверяемые данные, необходимые для формирования показателей, готовых к соблюдению требований.
  • Анализ углеродного следа и управленческий учет: Рассматривайте углерод как еще одно измерение управленческого учета. Распределяя выбросы по центрам прибыли или кодам продуктов, вы можете рассчитать такие показатели, как "выбросы на доллар выручки", и выявить углеродные горячие точки, что способствует принятию более обоснованных решений в области устойчивого развития.

Лучшие практики для вашего ESG-учета в Beancount

Чтобы максимально эффективно использовать Beancount для ESG, рассмотрите следующие лучшие практики:

  1. Разработайте четкий план счетов для ESG: Продуманно структурируйте свои ESG-счета (например, Metrics:Emissions:Scope1:Fuel), так же как и финансовые счета.
  2. Последовательно используйте метаданные: Применяйте теги (например, Scope: 3, FactorSource: EPA2024) для обеспечения последовательного контекста и упрощения запросов.
  3. Балансируйте детализацию с управляемостью: Сосредоточьтесь на существенных показателях, чтобы не перегружать вашу бухгалтерскую книгу ненужными деталями.
  4. Автоматизируйте с осторожностью: Используйте скрипты Python для импорта и проверки данных, но обеспечьте надежную проверку ошибок и четкую документацию ваших процессов автоматизации.
  5. Используйте контроль версий: Применяйте Git для отслеживания каждого изменения в вашей бухгалтерской книге, обеспечивая прозрачную и проверяемую историю ваших ESG-данных.
  6. Привязывайте к документам и доказательствам: Связывайте исходные файлы (например, PDF-файлы счетов за коммунальные услуги) с записями в бухгалтерской книге для легкой проверки во время аудитов.
  7. Используйте Fava для получения аналитики: Настройте Fava для отображения пользовательских ESG-графиков и отчетов, делая ваши данные об устойчивом развитии действенными и доступными для нетехнических заинтересованных сторон.
  8. Будьте в курсе стандартов: ESG-отчетность динамична; будьте готовы адаптировать вашу структуру Beancount по мере появления новых правил и фреймворков.

Будущее — зеленое и в простом тексте

Хотя Beancount в настоящее время не имеет встроенного ESG-интеллекта или готовой отчетности, его открытый исходный код предоставляет огромные возможности для улучшения. Плагины, разработанные сообществом, для учета выбросов углерода, стандартизированные шаблоны ESG-реестров и улучшенная интеграция с API-интерфейсами коэффициентов выбросов могли бы значительно расширить его возможности.

Поскольку корпоративный мир все больше принимает "зеленые реестры" (green ledgers), Beancount готов стать гибким, прозрачным и поддающимся аудиту решением. Интегрируя данные ESG с той же строгостью, что и финансовые данные, Beancount позволяет организациям не только соответствовать требованиям комплаенса, но и продвигать значимые инициативы в области устойчивого развития.

Готовы ли вы привнести свои данные ESG в революцию простого текста?

Полное руководство по учету криптовалют с Beancount.io

· 11 минут чтения
Mike Thrift
Mike Thrift
Marketing Manager

Вы запутались в криптовалютных транзакциях на множестве бирж, боретесь со сложностью DeFi или паникуете перед налоговым сезоном? Вы не одиноки. Криптовалютный ландшафт стремительно развился от простых покупок биткойнов до сложной экосистемы протоколов DeFi, вознаграждений за стейкинг, доходного фермерства и кросс-чейн активностей, которые бросают вызов традиционным методам учета.

Вот суровая реальность: каждая криптовалютная транзакция потенциально облагается налогом, и Налоговая служба (IRS) наблюдает. Независимо от того, являетесь ли вы обычным держателем биткойнов или продвинутым пользователем DeFi, управляющим позициями в десятках протоколов, ведение точного финансового учета не является необязательным — это крайне важно для соблюдения требований и финансовой ясности.

Проблема? Традиционное бухгалтерское программное обеспечение имеет ограниченную нативную поддержку сложности криптовалют. В то время как такие инструменты, как QuickBooks, могут работать с криптовалютами с помощью дополнительных плагинов, а Excel может импортировать данные блокчейна с помощью скриптов, большинство решений требуют значительной настройки для всестороннего учета криптовалют.

Решение? Система текстового учета Beancount.io, построенная на мощном языке Beancount с открытым исходным кодом. Важное примечание: Beancount — это язык бухгалтерского учета с двойной записью с открытым исходным кодом, созданный Мартином Блеем, в то время как Beancount.io — это коммерческий хостинг-сервис, который предоставляет удобный интерфейс и облачную инфраструктуру для Beancount. Это руководство охватывает как основные принципы Beancount, так и способы их эффективного использования через платформу Beancount.io.

Полное руководство по бухгалтерскому учету криптовалют

Кошмар учета криптовалют (И почему ситуация ухудшается)

Ваш криптопортфель разбросан повсюду

Давайте будем честны о вашей ситуации. У вас, вероятно, есть:

  • 3-5 различных бирж (Coinbase для простых покупок, Binance для альткоинов, Kraken для того самого токена...)
  • Несколько кошельков (MetaMask для DeFi, Ledger для долгосрочного хранения, тот старый кошелек, о котором вы забыли...)
  • DeFi-позиции на 10+ протоколах (Uniswap, Compound, Aave и любая новая доходная ферма, привлекшая ваше внимание)
  • Награды за стейкинг, поступающие от различных валидаторов
  • Случайные аирдропы, появляющиеся в вашем кошельке, как крипто-рождественские подарки

Каждая платформа говорит на своем языке. Coinbase предоставляет вам CSV-файл, который совершенно не похож на экспорт Binance. Uniswap вообще не имеет экспортов. И даже не начинайте говорить об отслеживании ваших DeFi-позиций в сетях второго уровня.

Типы транзакций, которые бросают вызов традиционному учету

Ваша криптовалютная деятельность включает типы транзакций, которые традиционные системы учета изначально не были предназначены обрабатывать:

  • Непостоянная потеря от предоставления ликвидности (попробуйте объяснить это QuickBooks)
  • Флеш-займы, которые позволяют заимствовать и погашать миллионы за одну транзакцию
  • Фарминг доходности, где вы зарабатываете 5 различных токенов за предоставление ликвидности
  • Межсетевые мосты, которые заставляют активы исчезать в одной сети и появляться в другой
  • Деривативы стейкинга, такие как stETH, которые накапливают стоимость иначе, чем базовый актив
  • Токены управления DAO, которые вы получили за использование протоколов

Минное поле налогового соответствия

Вот что не дает спать криптоинвесторам по ночам:

  • Каждая отдельная сделка облагается налогом (да, даже тот обмен ETH на USDC)
  • Отслеживание себестоимости становится невозможным при сотнях микротранзакций
  • Вознаграждения за стейкинг являются доходом в момент их получения (по справедливой рыночной стоимости)
  • Вознаграждения DeFi являются доходом, даже если вы еще не можете их продать
  • IRS требует форму 8949 с перечислением каждой отдельной транзакции
  • Штрафы суровы за ошибки

Традиционное бухгалтерское программное обеспечение требует значительной настройки для учета такой сложности. Хотя решения существуют, они часто требуют дополнительных плагинов, скриптов или ручных процессов для обработки всего спектра криптовалютной деятельности.

Встречайте Beancount.io: Решение для учета криптовалют, которое вы ждали

Что, если бы я сказал вам, что существует система учета, разработанная именно для этого хаоса? Beancount.io — это не просто очередной инструмент учета, это революция в учете на основе обычного текста, который справляется со сложностью криптовалют, будто был создан для этого.

Почему Beancount.io лидирует в криптоучете

🔍 Полная прозрачность: Каждый расчет виден. Никаких черных ящиков, никаких алгоритмов "доверьтесь нам". Вы точно видите, как рассчитывается ваша себестоимость, как вычисляется прибыль и куда ушел каждый сатоши.

📊 Неограниченная гибкость: Создавайте любую структуру счетов, которая вам нужна. Отслеживайте DeFi-позиции, деривативы стейкинга, кроссчейн-активы или тот странный токен, который вы получили по результатам голосования DAO. Если вы можете это представить, вы можете это отслеживать.

🎯 Точная себестоимость: Отслеживание по партиям с конкретной идентификацией. Выбирайте, какой именно биткойн вы продаете для оптимальных налоговых результатов. FIFO, LIFO или выборочный выбор партий — ваш выбор.

🔗 Перспективность: Формат обычного текста означает, что ваши данные навсегда останутся вашими. Никакой привязки к поставщику, никаких проприетарных форматов, никаких писем "извините, мы закрываемся".

⚡ Мощь скриптов: Автоматизируйте импорт, генерируйте пользовательские отчеты и интегрируйтесь с любым инструментом. Поскольку ваш криптопортфель уникален, ваш учет также должен быть таким.

Настройка Вашего Крипто Командного Центра

Построение архитектуры счетов

Представьте это как разработку плана для вашей криптоимперии. Мы создаем структуру, способную обрабатывать все: от вашей первой покупки биткойнов до сложных многопротокольных DeFi-стратегий:

Примечание: В примерах 1970-01-01 используется как дата открытия счета-заполнитель. Для фактического использования замените ее на реальные даты открытия ваших счетов, особенно если вы используете инструменты автоматического импорта, которые фильтруют транзакции по дате.

; Exchange Accounts
1970-01-01 open Assets:Crypto:Coinbase:USD
1970-01-01 open Assets:Crypto:Coinbase:BTC
1970-01-01 open Assets:Crypto:Coinbase:ETH
1970-01-01 open Assets:Crypto:Binance:USD
1970-01-01 open Assets:Crypto:Binance:BTC
1970-01-01 open Assets:Crypto:Binance:ETH
1970-01-01 open Assets:Crypto:Binance:ADA

; Wallet Accounts
1970-01-01 open Assets:Crypto:Wallet:MetaMask:ETH
1970-01-01 open Assets:Crypto:Wallet:MetaMask:USDC
1970-01-01 open Assets:Crypto:Wallet:MetaMask:UNI
1970-01-01 open Assets:Crypto:Wallet:Ledger:BTC
1970-01-01 open Assets:Crypto:Wallet:Ledger:ETH

; DeFi Protocol Accounts
1970-01-01 open Assets:DeFi:Compound:cUSDC
1970-01-01 open Assets:DeFi:Uniswap:ETH-USDC-LP
1970-01-01 open Assets:Staking:Ethereum:ETH
1970-01-01 open Assets:Crypto:Mining:BTC

; Income Accounts
1970-01-01 open Income:Crypto:Staking:ETH
1970-01-01 open Income:Crypto:Mining:BTC
1970-01-01 open Income:Crypto:Airdrops
1970-01-01 open Income:Crypto:DeFi:Yield
1970-01-01 open Income:CapitalGains:Crypto
1970-01-01 open Income:Crypto:Trading:Margin

; Expense Accounts
1970-01-01 open Expenses:Crypto:Fees:Trading
1970-01-01 open Expenses:Crypto:Fees:Network
1970-01-01 open Expenses:Crypto:Fees:Withdrawal

; Additional accounts for advanced scenarios
1970-01-01 open Assets:Crypto:Binance:BTC-Margin
1970-01-01 open Liabilities:Crypto:Binance:Borrowed
1970-01-01 open Liabilities:Crypto:Binance:BTC
1970-01-01 open Assets:Checking
1970-01-01 open Expenses:Crypto:Mining:Electricity

Определения активов

Определите свои криптовалюты как активы с соответствующими метаданными:

1970-01-01 commodity BTC
name: "Bitcoin"
asset-class: "cryptocurrency"
price-source: "coinbase"

1970-01-01 commodity ETH
name: "Ethereum"
asset-class: "cryptocurrency"
price-source: "coinbase"

1970-01-01 commodity ADA
name: "Cardano"
asset-class: "cryptocurrency"
price-source: "binance"

1970-01-01 commodity USDC
name: "USD Coin"
asset-class: "stablecoin"
price-source: "coinbase"

1970-01-01 commodity UNI
name: "Uniswap"
asset-class: "cryptocurrency"
price-source: "coinbase"

1970-01-01 commodity UNI-V2-ETH-USDC
name: "Uniswap V2 ETH-USDC LP Token"
asset-class: "liquidity-pool"

Освоение криптотранзакций: от простых к сложным

Готовы увидеть Beancount.io в действии? Давайте рассмотрим реальные сценарии, которые стали бы проблемой для других бухгалтерских систем, но элегантно обрабатываются здесь.

1. Ваша Первая Покупка Биткоина (Начало Пути)

Каждое криптопутешествие где-то начинается. Вот как записать этот судьбоносный момент, когда вы купили свой первый биткоин:

2024-01-15 * "Buy 0.5 BTC on Coinbase"
Assets:Crypto:Coinbase:BTC 0.5 BTC {30000.00 USD}
Assets:Crypto:Coinbase:USD -15025.00 USD
Expenses:Crypto:Fees:Trading 25.00 USD

2. Фиксация прибыли (или сокращение убытков) как профессионал

Момент истины: продажа вашей криптовалюты. Именно здесь большинство бухгалтерских систем дают сбой, но Beancount.io блестяще справляется с точным отслеживанием себестоимости:

2024-03-20 * "Sell 0.3 BTC on Coinbase"
Assets:Crypto:Coinbase:BTC -0.3 BTC {30000.00 USD}
Assets:Crypto:Coinbase:USD 10470.00 USD
Expenses:Crypto:Fees:Trading 30.00 USD
Income:CapitalGains:Crypto 1440.00 USD ; 10470 - (0.3 × 30000) - 30 = 1440

3. Вознаграждения за стейкинг: Зарабатывайте, пока спите

Пассивный доход в лучшем виде. Но помните, IRS требует декларировать вознаграждения за стейкинг как налогооблагаемый доход при получении, исходя из справедливой рыночной стоимости на момент получения (согласно руководству IRS по цифровым активам, 2024). Хотя идет судебное разбирательство (Джарретт против Соединенных Штатов), текущая официальная позиция требует незамедлительного декларирования. Вот как их правильно отслеживать:

2024-02-01 * "ETH Staking Rewards"
Assets:Staking:Ethereum:ETH 0.05 ETH {2500.00 USD}
Income:Crypto:Staking:ETH 125.00 USD

4. Фарминг доходности DeFi: Где становится интересно 🌶️

Добро пожаловать в продвинутый учет DeFi. Фарминг доходности DeFi включает сложные мультитокенные транзакции, которые требуют сложного отслеживания. Вот как правильно учитывать позицию ликвидности Uniswap:

; Первоначальное предоставление ликвидности
2024-01-10 * "Add liquidity to ETH-USDC pool"
Assets:Crypto:Wallet:MetaMask:ETH -10 ETH {2500.00 USD}
Assets:Crypto:Wallet:MetaMask:USDC -25000 USDC {1.00 USD}
Assets:DeFi:Uniswap:ETH-USDC-LP 100 UNI-V2-ETH-USDC {500.00 USD}

; Получение вознаграждений
2024-02-10 * "Claim Uniswap LP rewards"
Assets:Crypto:Wallet:MetaMask:UNI 50 UNI {8.00 USD}
Income:Crypto:DeFi:Yield 400.00 USD

5. Межбиржевые переводы

Перевод Биткойна из Coinbase в кошелек Ledger:

2024-01-20 * "Transfer BTC from Coinbase to Ledger"
Assets:Crypto:Coinbase:BTC -1.0 BTC {30000.00 USD}
Assets:Crypto:Wallet:Ledger:BTC 0.9995 BTC {30000.00 USD}
Expenses:Crypto:Fees:Withdrawal 0.0005 BTC {30000.00 USD}

Продвинутые сценарии криптовалют

Маржинальная торговля

Учет позиций с кредитным плечом:

; Открытие длинной позиции с кредитным плечом (заимствование BTC)
2024-02-15 * "Open 2x leveraged BTC position"
Assets:Crypto:Binance:BTC-Margin 1.0 BTC {35000.00 USD}
Liabilities:Crypto:Binance:BTC -1.0 BTC {35000.00 USD}
Expenses:Crypto:Fees:Trading 50.00 USD
Assets:Crypto:Binance:USD -50.00 USD

; Закрытие позиции с прибылью
2024-02-20 * "Close leveraged BTC position"
Assets:Crypto:Binance:BTC-Margin -1.0 BTC {35000.00 USD}
Assets:Crypto:Binance:USD 37950.00 USD
Liabilities:Crypto:Binance:BTC 1.0 BTC {35000.00 USD}
Income:Crypto:Trading:Margin -2900.00 USD
Expenses:Crypto:Fees:Trading 50.00 USD

Аирдропы и Форки

Учет бесплатных распределений токенов:

2024-03-01 * "Received UNI airdrop"
Assets:Crypto:Wallet:MetaMask:UNI 400 UNI {8.00 USD}
Income:Crypto:Airdrops 3200.00 USD

Майнинговые операции

Для майнеров криптовалют:

2024-01-01 * "Вознаграждение за майнинг биткойнов"
Assets:Crypto:Mining:BTC 0.1 BTC {45000.00 USD}
Income:Crypto:Mining:BTC 4500.00 USD

; Расходы на майнинг
2024-01-31 * "Затраты на электроэнергию для майнинга"
Expenses:Crypto:Mining:Electricity 800.00 USD
Assets:Checking -800.00 USD

Налоговая отчетность и соблюдение

Отслеживание Себестоимости

Beancount.io автоматически отслеживает себестоимость, используя систему учета по партиям:

; Несколько покупок по разным ценам
2024-01-01 * "Buy BTC batch 1"
Assets:Crypto:Coinbase:BTC 1.0 BTC {40000.00 USD}
Assets:Crypto:Coinbase:USD -40000.00 USD

2024-02-01 * "Buy BTC batch 2"
Assets:Crypto:Coinbase:BTC 1.0 BTC {45000.00 USD}
Assets:Crypto:Coinbase:USD -45000.00 USD

; Продажа конкретных партий (ФИФО, ЛИФО или по индивидуальной оценке)
2024-03-01 * "Sell BTC using FIFO"
Assets:Crypto:Coinbase:BTC -0.5 BTC {40000.00 USD}
Assets:Crypto:Coinbase:USD 22470.00 USD
Expenses:Crypto:Fees:Trading 30.00 USD
Income:CapitalGains:Crypto 2440.00 USD ; 22470 - 20000 - 30 = 2440

Генерация налоговых отчетов

Используйте систему запросов и плагины Beancount для генерации налоговых отчетов:

  • Форма 8949: Доходы и убытки от операций с капиталом (через bean-query или сторонние плагины)
  • Приложение D: Сводка доходов от операций с капиталом (требует дополнительного скриптинга)
  • Форма 1040: Доход от стейкинга, майнинга, аирдропов (через пользовательские отчеты)
  • Подробные журналы транзакций: Для целей аудита

Примечание: Генерация налоговых отчетов требует дополнительных плагинов, скриптов или интеграции со специализированным налоговым программным обеспечением. Beancount предоставляет основу данных, но специфические налоговые формы обычно требуют индивидуальной разработки или сторонних инструментов.

Лучшие практики для криптоучета

1. Регулярная Сверка

  • Еженедельно импортировать данные об обменах
  • Ежемесячно проверять балансы кошельков
  • Сверять с блокчейн-эксплорерами

2. Правильное Документирование

  • Сохраняйте все подтверждения транзакций
  • Документируйте цель каждой транзакции
  • Ведите учет рыночных цен на момент транзакции

3. Разделение деловых и личных финансов

; Личные криптоинвестиции
Активы:Личные:Крипто:Coinbase:BTC

; Деловые криптооперации
Активы:Деловые:Крипто:Казначейство:BTC

4. Отслеживайте все источники дохода

  • Вознаграждения за стейкинг (облагаются налогом как доход)
  • Вознаграждения за майнинг (облагаются налогом как доход)
  • Эйрдропы (облагаются налогом по справедливой рыночной стоимости)
  • Доходность DeFi (облагается налогом как доход)

5. Управление комиссиями

Учитывайте все комиссии отдельно для корректного налогового вычета:

Expenses:Crypto:Fees:Trading     ; Комиссии за торговые операции на бирже
Expenses:Crypto:Fees:Network ; Сетевые комиссии блокчейна
Expenses:Crypto:Fees:Withdrawal ; Комиссии за вывод средств

Интеграция с Популярными Криптоинструментами

Интеграция с API Бирж

Beancount.io может интегрироваться с крупными биржами:

  • Coinbase Pro API: Автоматический импорт транзакций
  • Binance API: Обновление балансов в реальном времени
  • Kraken API: Синхронизация исторических данных

Анализ Блокчейна

Подключитесь к блокчейн-эксплорерам:

  • Etherscan: верификация транзакций Ethereum
  • Blockchain.info: отслеживание транзакций Биткойн
  • BscScan: мониторинг Binance Smart Chain

Отслеживание портфеля

Синхронизация с инструментами управления портфелем:

  • CoinTracker: Генерация налоговых отчетов
  • Koinly: Агрегация данных с нескольких бирж
  • Blockfolio: Мобильное отслеживание портфеля

Важные Заявления об Отказе от Ответственности

Налоговое и Юридическое Уведомление: Данное руководство предоставляет общую информацию о бухгалтерском учете криптовалют с использованием Beancount и не является профессиональной налоговой, юридической или финансовой консультацией. Налоговый режим криптовалютных транзакций варьируется в зависимости от юрисдикции и индивидуальных обстоятельств. Сложные сценарии, такие как кросс-чейн мосты, непостоянные потери и флэш-кредиты, могут иметь неясные налоговые последствия в соответствии с действующими нормативными актами. Для получения конкретных рекомендаций относительно того, являются ли транзакции налогооблагаемыми операциями по отчуждению, обратитесь к IRS FAQ Q-15 – Q-18 (2024) или ознакомьтесь с местными налоговыми нормами. Всегда консультируйтесь с квалифицированным налоговым специалистом или дипломированным бухгалтером (CPA), знакомым с налогообложением криптовалют в вашей юрисдикции, прежде чем принимать решения, связанные с налогами.

Уточнение по Программному Обеспечению: Примеры в данном руководстве используют стандартный синтаксис Beancount. Хотя Beancount.io предоставляет удобный интерфейс для Beancount, базовые принципы бухгалтерского учета применимы к любой реализации Beancount.

Заключение

Учет криптовалют не должен быть сложным. С мощной системой учета в виде обычного текста Beancount, доступной через платформу Beancount.io, вы сможете:

  • Поддерживать полную прозрачность: Каждая транзакция видна и подлежит аудиту
  • Обеспечить соблюдение налогового законодательства: Корректный учет себестоимости и отчетность по доходам
  • Масштабировать с вашим портфелем: Обрабатывать простые сделки до сложных DeFi-стратегий
  • Бесшовная интеграция: Подключаться к биржам, кошелькам и налоговым инструментам
  • Обеспечить долговечность ваших записей: Формат обычного текста обеспечивает долгосрочную доступность

Независимо от того, являетесь ли вы обычным держателем биткоинов или опытным DeFi-фермером, Beancount предоставляет основу и гибкость, необходимые для освоения учета криптовалют. Начните с базовых транзакций и постепенно включайте более сложные сценарии по мере развития вашего крипто-путешествия.

Примеры в этом руководстве обеспечивают прочную основу, но помните, что учет криптовалют — это развивающаяся область. Будьте в курсе нормативных изменений, консультируйтесь с налоговыми специалистами и адаптируйте свои методы учета по мере необходимости.

Готовы взять под контроль свои криптовалютные финансы? Зарегистрируйтесь на Beancount.io и ощутите мощь прозрачного, скриптуемого крипто-учета, построенного на надежной основе Beancount.

Руководство по соблюдению налогового законодательства для криптовалют: Освоение требований IRS с Beancount.io

· 9 минут чтения
Mike Thrift
Mike Thrift
Marketing Manager

Налогообложение криптовалют превратилось из нишевой проблемы в критически важное требование соответствия для миллионов инвесторов. Поскольку IRS усиливает контроль и требует подробной отчетности, точное ведение учета — это не просто хорошая практика, это крайне важно для избежания штрафов и оптимизации ваших налоговых обязательств.

Это всеобъемлющее руководство покажет вам, как достичь полного соблюдения налогового законодательства в отношении криптовалют, используя мощную систему учета в виде простого текста Beancount.io, гарантируя, что вы соответствуете всем требованиям IRS, при этом максимально повышая налоговую эффективность.

Руководство по соблюдению налогового законодательства в отношении криптовалют

Понимание налоговых требований к криптовалютам

Налоговый режим IRS для криптовалют

IRS рассматривает криптовалюту как имущество, а не как валюту, что влечет за собой определенные налоговые последствия:

  • Каждая операция потенциально облагается налогом: Торговля, продажа, трата или обмен криптовалюты
  • Необходимо отслеживать себестоимость: Для каждой единицы принадлежащей криптовалюты
  • Срок владения определяет налоговую ставку: Краткосрочные против долгосрочных приростов капитала
  • Требуется признание дохода: Для майнинга, стейкинга, аирдропов и вознаграждений DeFi
  • Обязательны подробные записи: Пооперационная документация для аудита

Ключевые налоговые формы для криптовалюты

Form 1040 - Декларация о доходах физического лица

  • Строка 1: Укажите доход от криптовалют (стейкинг, майнинг, эйрдропы)
  • Schedule 1: Дополнительные источники дохода
  • Вопрос о цифровых активах: Необходимо ответить "Да", если у вас были криптовалютные транзакции

Форма 8949 - Продажи и прочие выбытия капитальных активов

  • Часть I: Краткосрочные приросты/убытки капитала (владение ≤ 1 года)
  • Часть II: Долгосрочные приросты/убытки капитала (владение > 1 года)
  • Детальная отчетность по операциям: Дата приобретения, дата продажи, выручка, базисная стоимость

Schedule D - Прирост и убытки капитала

  • Сводка формы 8949: Суммарные приросты/убытки капитала
  • Чистый прирост/убыток капитала: Окончательный расчет налогового обязательства

Настройка налогово-совместимого учета криптовалют

Структура счетов для налоговой отчетности

Спроектируйте иерархию счетов в соответствии с налоговыми требованиями:

; Активы - Организованы по сроку владения и источнику
1970-01-01 open Assets:Crypto:ShortTerm:Coinbase:BTC
1970-01-01 open Assets:Crypto:LongTerm:Coinbase:BTC
1970-01-01 open Assets:Crypto:Trading:Binance:ETH
1970-01-01 open Assets:Crypto:Investment:Ledger:BTC

; Доходы - Разделены по налоговому режиму
1970-01-01 open Income:Crypto:Staking:Ordinary ; Облагается как обычный доход
1970-01-01 open Income:Crypto:Mining:Ordinary ; Облагается как обычный доход
1970-01-01 open Income:Crypto:Airdrops:Ordinary ; Облагается как обычный доход
1970-01-01 open Income:CapitalGains:ShortTerm ; Краткосрочные доходы от прироста капитала
1970-01-01 open Income:CapitalGains:LongTerm ; Долгосрочные доходы от прироста капитала

; Расходы - Категории, подлежащие налоговому вычету
1970-01-01 open Expenses:Crypto:Fees:Deductible ; Торговые комиссии
1970-01-01 open Expenses:Crypto:Mining:Equipment ; Оборудование для майнинга
1970-01-01 open Expenses:Crypto:Mining:Electricity ; Электроэнергия для майнинга
1970-01-01 open Expenses:CapitalLoss:ShortTerm ; Краткосрочные убытки от прироста капитала
1970-01-01 open Expenses:CapitalLoss:LongTerm ; Долгосрочные убытки от прироста капитала

Метаданные для соблюдения налогового законодательства

Используйте метаданные для отслеживания налогово-значимой информации:

2024-01-15 * "Buy BTC for long-term investment" ^investment-btc #long-term
purchase-date: "2024-01-15"
intended-holding: "long-term"
tax-lot-id: "BTC-001"
Assets:Crypto:LongTerm:Coinbase:BTC 1.0 BTC {45000.00 USD}
Assets:Crypto:Coinbase:USD -45000.00 USD
Expenses:Crypto:Fees:Deductible 50.00 USD
Assets:Crypto:Coinbase:USD -50.00 USD

Учет налогооблагаемых криптовалютных событий

1. Продажи криптовалют

Краткосрочные приросты капитала (≤ 1 год)

2024-06-15 * "Продажа BTC - Краткосрочный прирост капитала" ^btc-sale-001
date-acquired: "2024-01-15"
holding-period: "151 days"
form-8949-code: "A"
Assets:Crypto:ShortTerm:Coinbase:BTC -0.5 BTC {45000.00 USD}
Assets:Crypto:Coinbase:USD 24000.00 USD
Expenses:Crypto:Fees:Deductible 30.00 USD
Assets:Crypto:Coinbase:USD -30.00 USD
Income:CapitalGains:ShortTerm 1470.00 USD ; 24000 - 22500 - 30

Долгосрочные приросты капитала (> 1 года)

2025-02-01 * "Продажа BTC - Долгосрочный прирост капитала" ^btc-sale-002
date-acquired: "2024-01-15"
holding-period: "382 days"
form-8949-code: "D"
Assets:Crypto:LongTerm:Coinbase:BTC -0.5 BTC {45000.00 USD}
Assets:Crypto:Coinbase:USD 28000.00 USD
Expenses:Crypto:Fees:Deductible 35.00 USD
Assets:Crypto:Coinbase:USD -35.00 USD
Income:CapitalGains:LongTerm 5465.00 USD ; 28000 - 22500 - 35

2. Обмен криптовалюты на криптовалюту

Каждый криптовалютный обмен облагается налогом:

2024-03-20 * "Обмен BTC на ETH - Налогооблагаемый обмен"
; Реализация BTC (налогооблагаемое событие)
Assets:Crypto:Trading:Binance:BTC -1.0 BTC {46000.00 USD}
Income:CapitalGains:ShortTerm 2000.00 USD ; 48000 - 46000

; Приобретение ETH (новая себестоимость)
Assets:Crypto:Trading:Binance:ETH 20 ETH {2400.00 USD}

; Торговые комиссии
Expenses:Crypto:Fees:Deductible 40.00 USD
Assets:Crypto:Trading:Binance:USD -40.00 USD

3. Награды за стейкинг (Обычный доход)

2024-01-31 * "Награды за стейкинг ETH - Январь"
reward-type: "staking"
fair-market-value: "2500.00 USD за ETH"
taxable-income: "200.00 USD"
Assets:Staking:Ethereum:ETH 0.08 ETH {2500.00 USD}
Income:Crypto:Staking:Ordinary 200.00 USD

4. Доход от майнинга

2024-01-15 * "Вознаграждение за майнинг биткойнов"
mining-pool: "Slush Pool"
block-height: "825000"
fair-market-value: "45000.00 USD за BTC"
Assets:Crypto:Mining:BTC 0.01 BTC {45000.00 USD}
Income:Crypto:Mining:Ordinary 450.00 USD

; Расходы на майнинг (подлежащие вычету)
Expenses:Crypto:Mining:Electricity 120.00 USD
Assets:Checking -120.00 USD

5. Аирдропы и Хардфорки

2024-03-01 * "Аирдроп токенов UNI"
источник-аирдропа: "Протокол Uniswap"
справедливая-рыночная-стоимость: "8.00 USD за UNI"
налогооблагаемая-сумма: "3200.00 USD"
Assets:Crypto:Wallet:MetaMask:UNI 400 UNI {8.00 USD}
Income:Crypto:Airdrops:Ordinary 3200.00 USD

6. DeFi-деятельность

Вознаграждения за фарминг доходности

2024-02-28 * "Доход от протокола Compound"
protocol: "Compound"
reward-token: "COMP"
fair-market-value: "85.00 USD за COMP"
Assets:Crypto:Wallet:MetaMask:COMP 12 COMP {85.00 USD}
Income:Crypto:DeFi:Ordinary 1020.00 USD

Комиссии пула ликвидности

2024-02-15 * "Получены комиссии LP Uniswap"
protocol: "Uniswap V3"
pool: "ETH-USDC"
Assets:Crypto:Wallet:MetaMask:ETH 0.2 ETH {2600.00 USD}
Assets:Crypto:Wallet:MetaMask:USDC 300 USDC
Income:Crypto:DeFi:Ordinary 820.00 USD

Стратегии налоговой оптимизации

1. Сбор налоговых убытков

Систематически фиксируйте убытки для компенсации прибыли:

; Определите убыточные позиции
2024-12-15 * "Сбор налоговых убытков - Продажа ADA с убытком"
purchase-date: "2024-06-01"
purchase-price: "0.60 USD per ADA"
sale-price: "0.45 USD per ADA"
Assets:Crypto:Trading:Binance:ADA -1000 ADA {0.60 USD}
Assets:Crypto:Trading:Binance:USD 445.00 USD
Expenses:Crypto:Fees:Deductible 5.00 USD
Assets:Crypto:Trading:Binance:USD -5.00 USD
Expenses:CapitalLoss:ShortTerm 150.00 USD ; Реализованный убыток

2. Особенности "отмывочных" продаж

Хотя правила "отмывочных" продаж официально не применяются к криптовалютам, избегайте потенциальных проблем:

; Подождите 31 день перед повторной покупкой
2025-01-16 * "Повторная покупка ADA после периода "отмывочной" продажи"
wash-sale-safe: "прошло 31+ дней"
Assets:Crypto:Trading:Binance:ADA 1000 ADA {0.45 USD}
Assets:Crypto:Trading:Binance:USD -450.00 USD
Expenses:Crypto:Fees:Deductible 5.00 USD
Assets:Crypto:Trading:Binance:USD -5.00 USD

3. Метод специфической идентификации

Выберите, какие лоты продать для оптимизации налогообложения:

; Лот с высокой базой затрат для фиксации убытков
2024-11-30 * "Продажа лота ETH с высокой себестоимостью для фиксации налогового убытка"
lot-selection: "specific-identification"
cost-basis: "3500.00 USD per ETH"
sale-price: "2400.00 USD per ETH"
Assets:Crypto:Trading:Coinbase:ETH -5 ETH {3500.00 USD}
Assets:Crypto:Trading:Coinbase:USD 11950.00 USD
Expenses:Crypto:Fees:Deductible 50.00 USD
Assets:Crypto:Trading:Coinbase:USD -50.00 USD
Expenses:CapitalLoss:ShortTerm 5500.00 USD ; Значительный убыток

4. Долгосрочное и краткосрочное планирование

Стратегически планируйте время продаж для выгодного налогового режима:

; Удерживать для долгосрочного владения
2024-12-20 * "BTC приближается к статусу долгосрочного владения"
purchase-date: "2024-01-01"
days-held: "354"
long-term-date: "2025-01-02"
note: "Удерживать еще 11 дней для долгосрочного владения"

Автоматизированная налоговая отчетность

Генерация Формы 8949

Используйте запросы Beancount.io для генерации данных Формы 8949:

-- Краткосрочный прирост/убытки капитала
SELECT
date,
narration,
-position as quantity_sold,
cost(position) as cost_basis,
value(position) as proceeds,
value(position) + cost(position) as gain_loss
WHERE account ~ "Income:CapitalGains:ShortTerm"
OR account ~ "Expenses:CapitalLoss:ShortTerm"
ORDER BY date;

Сводка по Приложению D

-- Сводка по приросту капитала
SELECT
'Short-term' as type,
sum(position) as total_gain_loss
WHERE account ~ "Income:CapitalGains:ShortTerm"
OR account ~ "Expenses:CapitalLoss:ShortTerm"

UNION ALL

SELECT
'Long-term' as type,
sum(position) as total_gain_loss
WHERE account ~ "Income:CapitalGains:LongTerm"
OR account ~ "Expenses:CapitalLoss:LongTerm";

Отчетность по обычному доходу

-- Обычный доход от криптовалют
SELECT
account,
sum(position) as total_income
WHERE account ~ "Income:Crypto.*:Ordinary"
GROUP BY account
ORDER BY total_income DESC;

Ведение учета и Документация

Необходимая Документация

Ведите исчерпывающие записи для каждой транзакции:

2024-01-15 * "BTC Purchase - Complete Documentation" ^btc-001
exchange: "Coinbase Pro"
transaction-id: "abc123def456"
confirmation-hash: "0x789..."
ip-address: "192.168.1.100"
timestamp: "2024-01-15T14:30:00Z"
market-price-source: "CoinGecko"
Assets:Crypto:LongTerm:Coinbase:BTC 1.0 BTC {45000.00 USD}
Assets:Crypto:Coinbase:USD -45000.00 USD

Ведение аудиторского следа

Создавайте подробные аудиторские следы:

; Связывание связанных транзакций
2024-01-15 * "BTC Purchase" ^btc-purchase-001
2024-01-20 * "BTC Transfer to Wallet" ^btc-purchase-001
2024-06-15 * "BTC Sale" ^btc-purchase-001

Верификация цен

Задокументируйте источники цен для справедливой рыночной стоимости:

2024-01-15 price BTC 45000.00 USD
source: "CoinGecko"
timestamp: "2024-01-15T14:30:00Z"
verification: "Multiple exchange average"

Распространенные ошибки при соблюдении налогового законодательства

1. Неучтенные Транзакции

  • Проблема: Неучет всех налогооблагаемых событий
  • Решение: Комплексный учет транзакций в Beancount.io

2. Неверный базис стоимости

  • Проблема: Использование неверного метода расчета базиса стоимости
  • Решение: Отслеживание по лотам с индивидуальной идентификацией

3. Неучтенный доход

  • Проблема: Неучет дохода от стейкинга, майнинга или аирдропов
  • Решение: Отдельные счета доходов для всех источников

4. Недостаточная Документация

  • Проблема: Недостаточные записи для защиты при аудите
  • Решение: Подробные метаданные и связывание транзакций

5. Вопросы сроков

  • Проблема: Некорректные расчеты периода владения
  • Решение: Автоматическое отслеживание дат и оповещения

Интеграция с налоговым программным обеспечением

Экспорт в популярные налоговые программы

Генерируйте отчеты, совместимые с крупными налоговыми программами:


# Экспорт в формат TurboTax
def export_turbotax_format():
return {
'form_8949_short_term': query_short_term_gains(),
'form_8949_long_term': query_long_term_gains(),
'schedule_1_income': query_ordinary_income(),
'deductible_expenses': query_deductible_expenses()
}

Профессиональная подготовка налоговой отчетности

Предоставляйте CPA исчерпывающие отчеты:

-- Полный налоговый пакет для CPA
SELECT
'Capital Gains Summary' as report_type,
account,
sum(position) as amount
WHERE account ~ "Income:CapitalGains"
OR account ~ "Expenses:CapitalLoss"
GROUP BY account

UNION ALL

SELECT
'Ordinary Income Summary' as report_type,
account,
sum(position) as amount
WHERE account ~ "Income:Crypto.*:Ordinary"
GROUP BY account;

Годовое налоговое планирование

Декабрьские Налоговые Стратегии

Примените оптимизацию налогов в конце года:

; Чек-лист налогового планирования на декабрь
2024-12-01 * "Обзор налогового планирования на конец года"
unrealized-gains: "Рассчитайте нереализованные позиции"
loss-harvesting: "Определите возможности для фиксации убытков"
income-timing: "Рассмотрите перенос дохода на следующий год"
expense-timing: "Ускорьте вычитаемые расходы"

Квартальные расчетные налоги

Отслеживайте квартальные налоговые обязательства:

2024-01-15 * "Авансовый налоговый платеж за 1 квартал"
Expenses:Taxes:Estimated:Federal 5000.00 USD
Expenses:Taxes:Estimated:State 1200.00 USD
Assets:Checking -6200.00 USD

Заключение

Соблюдение налоговых требований по криптовалютам не должно быть обременительным. С помощью комплексной системы учета Beancount.io на основе простого текста вы сможете:

  • Обеспечьте полное соответствие: Соответствуйте всем требованиям IRS по отчетности
  • Оптимизируйте налоговые обязательства: Внедряйте сложные налоговые стратегии
  • Ведение записей, готовых к аудиту: Комплексная документация и аудиторские следы
  • Автоматизируйте отчетность: Автоматически генерируйте налоговые формы и отчеты
  • Масштабируйтесь с учетом сложности: Обрабатывайте простые сделки и сложные стратегии DeFi

Ключевые преимущества для соблюдения налоговых требований по криптовалютам:

  • Прозрачные расчеты: Точно видите, как рассчитываются налоговые показатели
  • Гибкая отчетность: Генерируйте отчеты любого необходимого формата
  • Профессиональная интеграция: Беспрепятственно работайте с сертифицированными бухгалтерами (CPA) и налоговым программным обеспечением
  • Долговечные записи: Формат простого текста обеспечивает долгосрочную доступность

Начните соблюдать надлежащие налоговые требования по криптовалютам уже сегодня. Инвестиции в точное ведение учета сэкономят ваше время, деньги и нервы в налоговый сезон, обеспечивая при этом полное соответствие требованиям IRS.

Готовы освоить соблюдение налоговых требований по криптовалютам? Начните работу с Beancount.io и возьмите под контроль свои налоговые обязательства по криптовалютам.

Простой учет DeFi: Отслеживание доходного фермерства, пулов ликвидности и вознаграждений за стейкинг с помощью учета в виде обычного текста

· 8 минут чтения
Mike Thrift
Mike Thrift
Marketing Manager

Децентрализованные финансы (DeFi) произвели революцию в нашем взаимодействии с финансовыми услугами, предложив беспрецедентные возможности для получения дохода, предоставления ликвидности и децентрализованной торговли. Однако вместе с этими возможностями возникает проблема точного отслеживания сложных транзакций для соблюдения налогового законодательства и управления портфелем.

Традиционные методы учета сталкиваются с уникальными характеристиками DeFi: автоматизированными маркет-мейкерами, майнингом ликвидности, непостоянными потерями и многотокеновыми вознаграждениями. Это исчерпывающее руководство покажет вам, как освоить учет DeFi с помощью мощной системы текстового учета Beancount.io.

Учет DeFi просто

Понимание вызовов бухгалтерского учета в DeFi

Сложность DeFi-транзакций

DeFi-протоколы создают бухгалтерские сложности, которых нет в традиционных финансах:

  • Мультивалютные транзакции: Единичные операции с участием нескольких криптовалют
  • Автоматическое реинвестирование: Вознаграждения автоматически реинвестируются
  • Непостоянные потери: Изменения стоимости из-за расхождения цен в пулах ликвидности
  • Оптимизация комиссий за газ: Сложные структуры комиссий в разных сетях
  • Управление протоколом: Права голоса и распределение токенов управления
  • Межпротокольные взаимодействия: Транзакции, охватывающие несколько DeFi-платформ

Налоговые последствия деятельности в DeFi

Налоговая служба США (IRS) рассматривает деятельность в DeFi как налогооблагаемые события:

  • Предоставление ликвидности: Может повлечь за собой налогооблагаемые события при внесении активов
  • Вознаграждения за доходное фермерство (Yield Farming): Облагаются налогом как обычный доход по справедливой рыночной стоимости
  • Непостоянные потери (Impermanent Loss): Потенциальные налоговые последствия при выводе средств из пулов
  • Токены управления (Governance Tokens): Аирдропы и вознаграждения облагаются налогом как доход
  • Вознаграждения за стейкинг (Staking Rewards): Облагаются налогом как доход при получении

Настройка DeFi-счетов в Beancount.io

Комплексная Структура Счетов

Создайте подробную иерархию счетов, которая охватывает все операции DeFi:

; Счета Кошельков
1970-01-01 open Assets:Crypto:Wallet:MetaMask:ETH
1970-01-01 open Assets:Crypto:Wallet:MetaMask:USDC
1970-01-01 open Assets:Crypto:Wallet:MetaMask:DAI
1970-01-01 open Assets:Crypto:Wallet:MetaMask:WBTC

; Пулы Ликвидности Uniswap V3
1970-01-01 open Assets:DeFi:Uniswap:ETH-USDC-LP
1970-01-01 open Assets:DeFi:Uniswap:DAI-USDC-LP
1970-01-01 open Assets:DeFi:Uniswap:WBTC-ETH-LP

; Протокол Compound
1970-01-01 open Assets:DeFi:Compound:cUSDC
1970-01-01 open Assets:DeFi:Compound:cETH
1970-01-01 open Assets:DeFi:Compound:cDAI

; Протокол Aave
1970-01-01 open Assets:DeFi:Aave:aUSDC
1970-01-01 open Assets:DeFi:Aave:aETH
1970-01-01 open Assets:DeFi:Aave:DebtETH

; Протоколы Стейкинга
1970-01-01 open Assets:Staking:Ethereum:ETH
1970-01-01 open Assets:Staking:Lido:stETH
1970-01-01 open Assets:Staking:RocketPool:rETH

; Счета Доходов
1970-01-01 open Income:DeFi:Yield:Uniswap
1970-01-01 open Income:DeFi:Yield:Compound
1970-01-01 open Income:DeFi:Yield:Aave
1970-01-01 open Income:DeFi:Staking:Ethereum
1970-01-01 open Income:DeFi:Governance:Tokens
1970-01-01 open Income:DeFi:Airdrops

; Счета Расходов
1970-01-01 open Expenses:DeFi:Gas:Ethereum
1970-01-01 open Expenses:DeFi:Gas:Polygon
1970-01-01 open Expenses:DeFi:Gas:Arbitrum
1970-01-01 open Expenses:DeFi:ImpermanentLoss

Активы, специфичные для DeFi

Определите токены и LP-токены с соответствующими метаданными:

1970-01-01 commodity UNI-V3-ETH-USDC
name: "Uniswap V3 ETH-USDC LP Token"
asset-class: "liquidity-pool"
protocol: "uniswap-v3"

1970-01-01 commodity cUSDC
name: "Compound USDC"
asset-class: "lending-token"
protocol: "compound"

1970-01-01 commodity stETH
name: "Lido Staked Ethereum"
asset-class: "staking-derivative"
protocol: "lido"

Отслеживание распространенных операций DeFi

1. Предоставление ликвидности на Uniswap

Добавление ликвидности в пул

2024-01-15 * "Добавление ликвидности в пул ETH-USDC Uniswap V3"
Assets:Crypto:Wallet:MetaMask:ETH -5.0 ETH {2500.00 USD}
Assets:Crypto:Wallet:MetaMask:USDC -12500 USDC
Assets:DeFi:Uniswap:ETH-USDC-LP 100 UNI-V3-ETH-USDC {250.00 USD}
Expenses:DeFi:Gas:Ethereum 0.01 ETH {2500.00 USD}
Assets:Crypto:Wallet:MetaMask:ETH -0.01 ETH {2500.00 USD}

Получение комиссий LP

2024-02-15 * "Получение комиссий LP Uniswap"
Assets:Crypto:Wallet:MetaMask:ETH 0.2 ETH {2600.00 USD}
Assets:Crypto:Wallet:MetaMask:USDC 300 USDC
Income:DeFi:Yield:Uniswap 820.00 USD
Expenses:DeFi:Gas:Ethereum 0.005 ETH {2600.00 USD}
Assets:Crypto:Wallet:MetaMask:ETH -0.005 ETH {2600.00 USD}

Вывод ликвидности с непостоянными потерями

2024-03-15 * "Вывод ликвидности из пула ETH-USDC"
Assets:DeFi:Uniswap:ETH-USDC-LP -100 UNI-V3-ETH-USDC {250.00 USD}
Assets:Crypto:Wallet:MetaMask:ETH 4.8 ETH {2800.00 USD}
Assets:Crypto:Wallet:MetaMask:USDC 12800 USDC
Expenses:DeFi:ImpermanentLoss 240.00 USD ; расчет НП
Expenses:DeFi:Gas:Ethereum 0.008 ETH {2800.00 USD}
Assets:Crypto:Wallet:MetaMask:ETH -0.008 ETH {2800.00 USD}

2. Кредитование по протоколу Compound

Предоставление активов в Compound

2024-01-20 * "Внесение USDC в Compound"
Assets:Crypto:Wallet:MetaMask:USDC -10000 USDC
Assets:DeFi:Compound:cUSDC 500 cUSDC {20.00 USD}
Expenses:DeFi:Gas:Ethereum 0.008 ETH {2500.00 USD}
Assets:Crypto:Wallet:MetaMask:ETH -0.008 ETH {2500.00 USD}

Получение сложного процента

2024-02-20 * "Начисление сложного процента"
Assets:DeFi:Compound:cUSDC 5.2 cUSDC {20.50 USD}
Income:DeFi:Yield:Compound 106.60 USD

Получение наград COMP

2024-02-20 * "Получение управляющих токенов COMP"
Assets:Crypto:Wallet:MetaMask:COMP 12 COMP {85.00 USD}
Income:DeFi:Governance:Tokens 1020.00 USD
Expenses:DeFi:Gas:Ethereum 0.006 ETH {2600.00 USD}
Assets:Crypto:Wallet:MetaMask:ETH -0.006 ETH {2600.00 USD}

3. Операции протокола Aave

Внесение и Заимствование

; Внесение ETH в качестве залога
2024-01-25 * "Deposit ETH to Aave"
Assets:Crypto:Wallet:MetaMask:ETH -10 ETH {2500.00 USD}
Assets:DeFi:Aave:aETH 10 aETH {2500.00 USD}
Expenses:DeFi:Gas:Ethereum 0.01 ETH {2500.00 USD}
Assets:Crypto:Wallet:MetaMask:ETH -0.01 ETH {2500.00 USD}

; Заимствование USDC под залог ETH
2024-01-25 * "Borrow USDC from Aave"
Assets:Crypto:Wallet:MetaMask:USDC 15000 USDC
Liabilities:DeFi:Aave:DebtUSDC -15000 USDC
Expenses:DeFi:Gas:Ethereum 0.008 ETH {2500.00 USD}
Assets:Crypto:Wallet:MetaMask:ETH -0.008 ETH {2500.00 USD}

Погашение займов с процентами

2024-03-25 * "Repay USDC loan to Aave"
Liabilities:DeFi:Aave:DebtUSDC 15000 USDC
Expenses:DeFi:Interest:Aave 450 USDC ; Начисленные проценты
Assets:Crypto:Wallet:MetaMask:USDC -15450 USDC
Expenses:DeFi:Gas:Ethereum 0.008 ETH {2700.00 USD}
Assets:Crypto:Wallet:MetaMask:ETH -0.008 ETH {2700.00 USD}

4. Стейкинг Эфириума

Прямой стейкинг Ethereum

2024-01-10 * "Размещение ETH на Ethereum 2.0"
Assets:Crypto:Wallet:MetaMask:ETH -32 ETH {2500.00 USD}
Assets:Staking:Ethereum:ETH 32 ETH {2500.00 USD}
Expenses:DeFi:Gas:Ethereum 0.01 ETH {2500.00 USD}
Assets:Crypto:Wallet:MetaMask:ETH -0.01 ETH {2500.00 USD}

Вознаграждения за стейкинг

2024-02-10 * "Вознаграждения за стейкинг ETH"
Assets:Staking:Ethereum:ETH 0.15 ETH {2600.00 USD}
Income:DeFi:Staking:Ethereum 390.00 USD

Ликвидный стейкинг с Lido

2024-01-12 * "Стейкинг ETH с Lido"
Assets:Crypto:Wallet:MetaMask:ETH -10 ETH {2500.00 USD}
Assets:Staking:Lido:stETH 10 stETH {2500.00 USD}
Expenses:DeFi:Gas:Ethereum 0.008 ETH {2500.00 USD}
Assets:Crypto:Wallet:MetaMask:ETH -0.008 ETH {2500.00 USD}

Продвинутые сценарии DeFi

Стратегии фарминга доходности

Мультипротокольный доходный фарминг

; Шаг 1: Внесение USDC в Compound
2024-01-30 * "Внесение USDC в Compound для доходного фарминга"
Assets:Crypto:Wallet:MetaMask:USDC -20000 USDC
Assets:DeFi:Compound:cUSDC 1000 cUSDC {20.00 USD}

; Шаг 2: Заимствование DAI под залог cUSDC
2024-01-30 * "Заимствование DAI из Compound"
Assets:Crypto:Wallet:MetaMask:DAI 15000 DAI
Liabilities:DeFi:Compound:DebtDAI -15000 DAI

; Шаг 3: Предоставление ликвидности DAI-USDC в Uniswap
2024-01-30 * "Добавление ликвидности DAI-USDC для фарминга"
Assets:Crypto:Wallet:MetaMask:DAI -15000 DAI
Assets:Crypto:Wallet:MetaMask:USDC -5000 USDC ; Дополнительный USDC
Assets:DeFi:Uniswap:DAI-USDC-LP 200 UNI-V3-DAI-USDC {100.00 USD}

Кроссчейн DeFi Операции

Мостование активов

2024-02-05 * "Перевод ETH в Polygon"
Assets:Crypto:Wallet:MetaMask:ETH -5 ETH {2600.00 USD}
Assets:Crypto:Wallet:Polygon:ETH 5 ETH {2600.00 USD}
Expenses:DeFi:Bridge:Fees 0.01 ETH {2600.00 USD}
Assets:Crypto:Wallet:MetaMask:ETH -0.01 ETH {2600.00 USD}

Флеш-кредиты и Арбитраж

2024-02-10 * "Возможность арбитража с флеш-кредитом"
; Флеш-кредит
Активы:Крипто:Временные:ФлешКредит 100000 USDC
Обязательства:DeFi:Aave:ФлешКредит -100000 USDC

; Арбитражная сделка
Активы:Крипто:Временные:ФлешКредит -100000 USDC
Активы:Крипто:Временные:Арбитраж 101500 USDC

; Погашение флеш-кредита
Обязательства:DeFi:Aave:ФлешКредит 100000 USDC
Активы:Крипто:Временные:Арбитраж -100090 USDC ; Включая комиссии

; Прибыль
Активы:Крипто:Кошелек:MetaMask:USDC 1410 USDC
Доход:DeFi:Арбитраж:Прибыль 1410.00 USD

Соображения по налоговой отчетности DeFi

Признание дохода

Все вознаграждения DeFi облагаются налогом как обычный доход:

; Отслеживайте все источники дохода отдельно
Income:DeFi:Yield:Uniswap ; Комиссии LP
Income:DeFi:Yield:Compound ; Полученные проценты
Income:DeFi:Staking:Ethereum ; Вознаграждения за стейкинг
Income:DeFi:Governance:Tokens ; Аирдропы токенов управления
Income:DeFi:Airdrops ; Аирдропы протоколов

Вычеты расходов

Отслеживайте вычитаемые расходы:

Expenses:DeFi:Gas:Ethereum          ; Комиссии за газ
Expenses:DeFi:Gas:Polygon ; Комиссии второго уровня (L2)
Expenses:DeFi:Interest:Aave ; Затраты на заимствования
Expenses:DeFi:ImpermanentLoss ; Непостоянные потери (IL) от LP-позиций

Отслеживание прироста капитала

Используйте партионный учет для точного расчета прироста капитала:

; Различная себестоимость для одного и того же токена
Assets:DeFi:Compound:cUSDC 100 cUSDC {20.00 USD} ; Партия 1
Assets:DeFi:Compound:cUSDC 100 cUSDC {21.00 USD} ; Партия 2

Лучшие практики бухгалтерского учета DeFi

1. Запись транзакций в режиме реального времени

  • Записывайте транзакции сразу после выполнения
  • Используйте хеши транзакций для проверки
  • Отслеживайте мемпул на предмет ожидающих транзакций

2. Отслеживание оптимизации платы за газ

; Отслеживание стратегий оптимизации платы за газ
Расходы:DeFi:Газ:Ethereum:Стандартная ; Стандартная плата за газ
Расходы:DeFi:Газ:Ethereum:Быстрая ; Быстрая плата за газ
Расходы:DeFi:Газ:Ethereum:Мгновенная ; Мгновенная плата за газ

3. Управление рисками протокола

; Отслеживание рисков, специфичных для протокола
Expenses:DeFi:Risk:SmartContract ; Сбои смарт-контрактов
Expenses:DeFi:Risk:Liquidation ; События ликвидации
Expenses:DeFi:Risk:Slippage ; Издержки проскальзывания

4. Автоматическая сверка

  • Настроить автоматические потоки цен
  • Использовать API протоколов для проверки баланса
  • Реализовать автоматический импорт транзакций

5. Стандарты Документации

  • Вести подробные примечания к транзакциям
  • Документировать обоснование стратегии
  • Вести записи взаимодействия с протоколом

Интеграция с инструментами DeFi

Отслеживание портфеля

  • DeBank: Обзор DeFi портфеля
  • Zapper: Многопротокольная панель управления
  • Zerion: DeFi кошелек и трекер

Налоговая отчетность

  • Koinly: Расчеты налогов DeFi
  • CoinTracker: Поддержка нескольких протоколов
  • TokenTax: Специализированная отчетность DeFi

Аналитические платформы

  • DeFi Pulse: Аналитика протоколов
  • DeFiLlama: Отслеживание TVL и доходности
  • APY.vision: Отслеживание непостоянных потерь

Заключение

Сложность учета DeFi не должна мешать вам участвовать в революции децентрализованных финансов. С мощной текстовой системой учета Beancount.io вы сможете:

  • Отслеживать сложные транзакции: Бесшовно обрабатывать многопротокольные взаимодействия
  • Обеспечивать налоговое соответствие: Корректное признание доходов и отслеживание расходов
  • Мониторить эффективность портфеля: Получать аналитику DeFi-позиций в реальном времени
  • Управлять рисками: Отслеживать непостоянные потери и протокольные риски
  • Масштабировать операции: От простого стейкинга до сложных стратегий доходного фермерства

Ключ к успешному учету DeFi — это последовательность, точность и правильная категоризация. Начните с базовых протоколов и постепенно переходите к более сложным стратегиям по мере того, как освоитесь с учетными паттернами.

Готовы освоить учет DeFi? Начните свой путь с Beancount.io и возьмите под контроль свой портфель децентрализованных финансов уже сегодня.

Beancount v3: Что нового?

· 3 минуты чтения
Mike Thrift
Mike Thrift
Marketing Manager

Beancount версии 3, выпущенный в середине 2024 года, знаменует собой значительную архитектурную эволюцию для популярного инструмента текстового учета. Хотя он сохраняет обратную совместимость для файлов учета пользователей, базовая структура и сопутствующие инструменты претерпели существенные изменения. Вот обзор того, что нового в Beancount v3.

Более модульная и оптимизированная архитектура

2025-06-06-whats-new-in-beancount-v3

Наиболее значительным изменением в Beancount v3 является переход к более модульной экосистеме. Несколько ключевых функций, которые ранее входили в состав ядра, были выделены в отдельные, независимые проекты. Это делает ядро Beancount более компактным и позволяет сосредоточиться на разработке отдельных компонентов.

Ключевые компоненты, которые теперь являются отдельными пакетами, включают:

  • beanquery: Мощный SQL-подобный инструмент запросов для ваших файлов учета теперь находится в отдельном пакете.
  • beangulp: Это новое место для фреймворка импорта данных, заменяющее бывший модуль beancount.ingest.
  • beanprice: Специализированный инструмент для получения цен на товары и акции.

Это разделение означает, что пользователям потребуется установить эти пакеты в дополнение к самому beancount, чтобы сохранить полную функциональность, к которой они привыкли в версии 2.

Изменения в инструментах командной строки и рабочих процессах

Отражая новую модульную архитектуру, произошли некоторые заметные изменения в инструментах командной строки:

  • bean-report удален: Этот инструмент был удален. Теперь пользователям рекомендуется использовать bean-query (из пакета beanquery) для своих потребностей в отчетности.
  • Новый рабочий процесс импорта: Команды bean-extract и bean-identify были удалены из ядра. Новый подход с beangulp основан на скриптах. Теперь пользователи будут создавать свои собственные скрипты Python для обработки импорта данных из внешних источников, таких как банковские выписки.

Улучшения синтаксиса и функций

Хотя основные принципы бухгалтерского учета остаются прежними, Beancount v3 вводит некоторую приветствуемую гибкость в свой синтаксис:

  • Более гибкие коды валют: Предыдущие ограничения на длину и символы для названий валют были ослаблены. Теперь поддерживаются односимвольные обозначения валют.
  • Расширенные флаги транзакций: Теперь пользователи могут использовать любую заглавную букву от A до Z в качестве флага для транзакций, что позволяет осуществлять более детальную категоризацию.

Важно отметить, что эти изменения обратно совместимы, поэтому ваши существующие файлы учета Beancount v2 будут работать без каких-либо изменений.

Перезапись на C++ и производительность

Одной из долгосрочных целей Beancount была перезапись его критически важных для производительности компонентов на C++. Хотя эта работа продолжается, первоначальный выпуск Beancount v3 не включает ядро на базе C++. Это означает, что на данный момент производительность v3 сопоставима с v2. Код C++ остается в отдельной ветке разработки для будущей интеграции.

Миграция с v2 на v3

Для большинства пользователей миграция с Beancount v2 на v3 относительно проста:

  1. Файлы учета: Изменения для ваших файлов .beancount не требуются.
  2. Установка: Вам потребуется установить новые, отдельные пакеты, такие как beanquery и beangulp, используя pip.
  3. Скрипты импорта: Если у вас есть пользовательские импортеры, вам потребуется обновить их для использования нового API beangulp. Это в основном включает изменение базового класса, от которого наследуют ваши импортеры, и корректировку некоторых сигнатур методов.
  4. Fava: Популярный веб-интерфейс для Beancount, Fava, был обновлен для совместимости с v3. Убедитесь, что у вас установлена последняя версия Fava для бесперебойной работы.

По сути, Beancount v3 — это фундаментальный выпуск, который оптимизирует архитектуру проекта, делая его более модульным и легким для поддержки и расширения в долгосрочной перспективе. Хотя он требует некоторых корректировок в рабочих процессах пользователей, особенно в отношении импорта данных, он закладывает основу для будущего развития этого мощного инструмента учета.