Перейти к основному содержимому
Beancount.io LogoBeancount.io
Управление инвентаризацией

Управление инвентаризацией

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

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

Основные концепции

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

Типы позиций

  1. Простая позиция (без себестоимости): Это стандартная проводка сальдо. Она представляет количество товара без какой-либо связанной стоимости приобретения. Подходит для денежных средств или простых проверок сальдо.

    Assets:Bank:Checking      100.00 USD
  2. Позиция с себестоимостью: Этот тип позиции включает не только количество единиц и товар, но также себестоимость, по которой он был приобретен. Это основа отслеживания запасов. Себестоимость указывается в фигурных скобках {}.

    Assets:Invest:VTSAX      10 VTSAX {100.00 USD, "lot-1"}

    В этом примере мы держим 10 единиц VTSAX. Каждая единица была приобретена по себестоимости 100,00 долларов США. Эта конкретная партия акций идентифицируется как «лот».

Операции с запасами

Существует две основные операции, которые можно выполнять с запасами:

  1. Увеличение (добавление в запасы): Когда вы покупаете товар, вы увеличиваете свои запасы. Вы создаете новый лот с определенным количеством единиц и себестоимостью.

    2024-01-15 * "Покупка акций"
      Assets:Invest:STOCK     50 STOCK {25.00 USD, "lot-1"}
      Assets:Bank:Checking   -1250.00 USD

    Здесь мы покупаем 50 единиц STOCK по цене 25,00 долларов США за единицу. Это создает лот на счете Assets:Invest:STOCK.

  2. Уменьшение (изъятие из запасов): Когда вы продаете товар, вы уменьшаете свои запасы. Вы должны указать, из какого лота происходит продажа. Это делается путем указания соответствующей информации в фигурных скобках.

    2024-01-20 * "Продажа акций"
      Assets:Invest:STOCK    -25 STOCK {25.00 USD}
      Assets:Bank:Checking    625.00 USD

    В этой транзакции мы продаем 25 единиц STOCK из лота, который был куплен по цене 25,00 долларов США за единицу.

Методы учета

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

1. STRICT (строгий) — по умолчанию

Метод STRICT является методом по умолчанию и самым безопасным. Он требует явного и однозначного сопоставления.

2024-01-01 open Assets:Invest:STOCK "STRICT"
  • Требует точного совпадения лота: Вы должны предоставить достаточно информации в проводке уменьшения ({...}), чтобы однозначно идентифицировать продаваемый лот.
  • Ошибка при неоднозначных совпадениях: Если предоставленная информация соответствует нескольким лотам, Beancount выдаст ошибку, вынуждая вас быть более конкретными.
  • Исключение: Если проводка уменьшения точно удаляет общее количество единиц, хранящихся на счете, допускается пустой спецификатор себестоимости ({}).

2. FIFO (FIFO, «первым поступил — первым выбыл»)

Метод FIFO автоматически списывает уменьшения сначала с самых старых доступных лотов.

2024-01-01 open Assets:Invest:STOCK "FIFO"
  • Автоматическое разрешение: Он разрешает неоднозначность, выбирая самые старые подходящие лоты.
  • Хронологическое сопоставление: Это распространенный метод бухгалтерского учета, при котором предполагается, что вы продаете активы, которые держали дольше всего. Во многих странах этот метод является обязательным для налоговых целей.

3. LIFO (LIFO, «последним поступил — первым выбыл»)

Метод LIFO противоположен FIFO. Он списывает уменьшения сначала с самых новых доступных лотов.

2024-01-01 open Assets:Invest:STOCK "LIFO"
  • Обратный хронологический порядок: Он выбирает лоты, приобретенные наиболее недавно, которые соответствуют критериям уменьшения.
  • Налоговая оптимизация: В некоторых юрисдикциях этот метод может использоваться для налоговой оптимизации, например, при продаже акций с самой высокой себестоимостью в первую очередь для минимизации прироста капитала.

4. NONE (отсутствует)

Метод NONE полностью отключает сопоставление лотов.

2024-01-01 open Assets:Invest:STOCK "NONE"
  • Нет сопоставления лотов: Beancount не пытается сопоставить уменьшения с увеличениями.
  • Допускает смешанные знаки: Это позволяет счету одновременно иметь как положительное, так и отрицательное сальдо по одному и тому же товару. Такое поведение аналогично тому, как инструмент Ledger CLI обрабатывает товары.

Спецификация лота

«Лот» — это конкретный блок товара, приобретенный в определенное время и по определенной цене. Когда вы создаете или уменьшаете позицию, вы можете подробно указать атрибуты ее лота.

Полная спецификация

При увеличении запасов (покупке) вы можете указать до трех атрибутов лота:

Assets:Invest:STOCK  10 STOCK {
    100.00 USD,           # Себестоимость (цена за единицу)
    2024-01-15,           # Дата приобретения
    "lot-identifier"      # Уникальная строковая метка
}

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

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

При уменьшении запасов (продаже) вы используете тот же синтаксис, чтобы указать, из какого лота (лотов) продавать.

  • Сопоставление по себестоимости: Это самый распространенный метод.

    Assets:Invest:STOCK  -5 STOCK {100.00 USD}
  • Сопоставление по дате: Если себестоимость идентична, вы можете устранить неоднозначность, используя дату приобретения.

    Assets:Invest:STOCK  -5 STOCK {2024-01-15}
  • Сопоставление по метке: Метки обеспечивают безошибочный способ идентификации лота.

    Assets:Invest:STOCK  -5 STOCK {"lot-identifier"}
  • Сопоставить любой лот: Пустой набор фигурных скобок {} будет соответствовать любому доступному лоту. Это часто используется с методами учета FIFO или LIFO, где конкретный лот выбирается автоматически.

    Assets:Invest:STOCK  -5 STOCK {}

Обработка цен

Крайне важно понимать разницу между себестоимостью ({}) и ценой (@). Они служат разным целям и не являются взаимозаменяемыми.

Цена против себестоимости

  • {cost}: Определяет стоимость приобретения актива. Она является частью самого инвентарного лота и используется для учета уменьшений и расчета прироста капитала.
  • @ price: Аннотация, которая записывает рыночную цену на момент совершения транзакции. Она используется для конвертации валют или для указания рыночной стоимости на определенную дату.

Вот три сценария:

  1. Аннотация цены (конвертация): Используйте @ для конвертации из одной валюты в другую.

    Assets:Forex     1000 USD @ 0.85 EUR
  2. Себестоимость (приобретение): Используйте {} при покупке актива для установления его себестоимости.

    Assets:Invest    10 STOCK {100.00 USD}
  3. Оба варианта (продажа с записью цены): При продаже актива используйте {} для идентификации продаваемого лота и @ для записи цены продажи. Это позволяет автоматически рассчитывать прирост капитала.

    Assets:Invest    -10 STOCK {100.00 USD} @ 105.00 USD

    Эта запись продает 10 STOCK из лота, который стоил 100,00 долларов каждый, по цене продажи 105,00 долларов каждый.

Правила использования цены

  1. Аннотации цены (@) не влияют на то, какой лот учитывается. Сопоставление лотов осуществляется исключительно на основе себестоимости ({}) и метода учета счета.
  2. Символ @ используется только для:
  • Конвертации валют.
  • Записи рыночной стоимости актива на момент совершения транзакции.
  • Предоставления цены продажи для расчета прироста капитала.

Конфигурация

Вы можете настроить методы учета глобально или для каждого счета.

Глобальный метод учета

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

option "booking_method" "STRICT"

Доступные варианты: "STRICT", "FIFO", "LIFO" и "NONE".

Переопределение для каждого счета

Часто бывает полезно использовать разные методы для разных счетов. Например, вы можете захотеть FIFO для пенсионного счета, но STRICT для брокерского счета, облагаемого налогом, чтобы гарантировать продажу конкретных налоговых лотов. Вы можете установить метод учета при открытии счета.

2024-01-01 open Assets:Retirement:401K "FIFO"
2024-01-01 open Assets:Taxable:Stock  "STRICT"

Рекомендации

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

    # ХОРОШО: Отдельные счета по товарам
    Assets:Invest:VTSAX    ; Только позиции VTSAX здесь
    Assets:Invest:VFIAX    ; Только позиции VFIAX здесь

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

  2. Управление лотами:

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

    Assets:Invest:STOCK  10 STOCK {100.00 USD, "tax-loss-harvest-2024"}
  • Документируйте свои сделки комментариями. Это сделает вашу книгу учета более удобной для чтения и понимания в будущем.

    Assets:Invest:STOCK  -10 STOCK {100.00 USD} @ 110.00 USD ; Прибыль: 10%
  1. Отладка: Если вы столкнулись с ошибками или неожиданным поведением, Beancount предоставляет инструменты для проверки состояния ваших запасов.
  • Проверка состояния запасов: Инструмент bean-doctor может показать точное состояние всех запасов в любой точке вашего файла.

    Замените <LINENO> на номер строки сразу после транзакции, чтобы увидеть ее эффект.

  • Проверка сопоставления лотов: Инструмент bean-check проверяет весь ваш файл. Он выявит любые ошибки учета, такие как неоднозначные совпадения лотов в режиме STRICT.

10 мин чтения

Управление запасами и учет для малого бизнеса: практическое руководство

Эффективное управление запасами имеет решающее значение для малого бизнеса,…

accounting
small-business
11 мин чтения

Управление запасами для малого бизнеса: Полное руководство по контролю затрат и увеличению прибыли

Эффективное управление запасами имеет решающее значение для малых предприятий,…

small-business
financial-management
9 мин чтения

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

Малые предприятия часто остаются без денег несмотря на здоровую прибыль, потому…

cash-flow
small-business
8 мин чтения

Тарифы никуда не денутся: 5 стратегий учета и управления запасами, которые мелкие импортеры используют для защиты маржи в 2026 году

Мелкие импортеры теряют пункты маржи, когда тарифы скрываются в стоимости…

tariffs
bookkeeping
7 мин чтения

Рентабельность чистых активов (RONA): как понять, приносят ли ваше оборудование и запасы прибыль

Рентабельность чистых активов (RONA = Чистая прибыль ÷ Основные средства +…

financial-ratios
financial-analysis