Управление запасами в Beancount
Система управления запасами Beancount — это мощная функция для отслеживания активов, которые покупаются и продаются с течением времени, таких как акции, взаимные фонды или иностранные валюты. Она позволяет точно отслеживать себестоимость, что необходимо для расчета прироста капитала и понимания эффективности портфеля. В этом руководстве рассматриваются основные механики управления запасами в вашей книге учета.
Основные концепции
В своей основе управление запасами вращается вокруг отслежи вания позиций. «Позиция» — это просто количество товара, хранящегося на счете. Beancount различает два основных типа позиций.
Типы позиций
-
Простая позиция (без себестоимости): Это стандартная запись баланса. Она представляет собой количество товара без какой-либо связанной стоимости приобретения. Подходит для наличных денег или простых подтверждений баланса.
Assets:Bank:Checking 100.00 USD -
Позиция с себестоимостью: Этот тип позиции включает в себя не только количество единиц и товар, но и стоимость, по которой он был приобретен. Это основа отслеживания запасов. Стоимость указывает ся в фигурных скобках
{}.Assets:Invest:VTSAX 10 VTSAX {100.00 USD, "lot-1"}В этом примере у нас есть 10 единиц
VTSAX. Каждая единица была приобретена по цене 100.00 USD. Эта конкретная партия акций идентифицируется как «лот».
Операции с запасами
Существует две основные операции, которые вы можете выполнять с запасами:
-
Увеличение (добавление в запасы): Когда вы покупаете товар, вы увеличиваете свои запасы. Вы создаете новый лот с определенным количеством единиц и себестоимостью.
2024-01-15 * "Купить акции"
Assets:Invest:STOCK 50 STOCK {25.00 USD, "lot-1"}
Assets:Bank:Checking -1250.00 USDЗдесь мы покупаем 50 единиц
STOCKпо цене 25.00 USD за единицу. Это создает лот на счетеAssets:Invest:STOCK. -
Уменьшение (удаление из запасов): Когда вы продаете товар, вы уменьшаете свои запасы. Вы должны указать, из какого лота вы продаете. Это делается путем предоставления совпадающей информации в фигурных скобках.
2024-01-20 * "Продать акции"
Assets:Invest:STOCK -25 STOCK {25.00 USD}
Assets:Bank:Checking 625.00 USDВ этой транзакции мы продаем 25 единиц
STOCKиз лота, который был приобретен по цене 25.00 USD за единицу.
Методы учета
Когда вы уменьшаете запасы, Beancount нужен правило, чтобы решить, из какого конкретного лота брать, если несколько лотов совпадают или если совпадение неоднозначно. Это правило называется «методом учета». Вы можете установить метод по умолчанию для всего файла или указать его для каждого счета.
1. STRICT (по умолчанию)
STRICT — это метод учета по умолчанию и самый безопасный. Он обес печивает явное и однозначное сопоставление.
2024-01-01 open Assets:Invest:STOCK "STRICT"
- Требуется точное соответствие лота: Вы должны предоставить достаточно информации в записи уменьшения (
{...}), чтобы однозначно идентифицировать продаваемый лот. - Ошибка при неоднозначных соответствиях: Если предоставленная информация соответствует нескольким лотам, Beancount выдаст ошибку, заставляя вас быть более конкретным.
- Исключение: Если запись уменьшения точно удаляет общее количество единиц, хранящихся на счете, допускается пустой спецификатор стоимости (
{}).