پرش به محتوای اصلی
Beancount.io Logo
مدیریت موجودی

مدیریت موجودی

یاد بگیرید چگونه موجودی را در 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 به طور خودکار کاهش‌ها را در برابر قدیمی‌ترین لات‌های موجود ثبت می‌کند.

2024-01-01 open Assets:Invest:STOCK "FIFO"
  • حل خودکار: با انتخاب قدیمی‌ترین لات‌های منطبق، ابهام را برطرف می‌کند.
  • تطابق زمانی: این یک روش حسابداری رایج است که در آن فرض می‌کنید دارایی‌هایی را که طولانی‌ترین زمان نگهداری کرده‌اید، می‌فروشید. این روش مورد نیاز برای اهداف مالیاتی در بسیاری از کشورها است.

3. 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,           # تاریخ تحصیل
    "شناسه-لات"           # یک برچسب رشته منحصر به فرد
}

در حالی که هر سه اختیاری هستند، ارائه حداقل مبنای هزینه یک روش استاندارد است.

روش‌های تطبیق

هنگام کاهش یک موجودی (فروش)، از همان نحو برای مشخص کردن اینکه از کدام لات(ها) بفروشید استفاده می‌کنید.

  • تطبیق با هزینه: این رایج‌ترین روش است.

    Assets:Invest:STOCK  -5 STOCK {100.00 USD}
  • تطبیق با تاریخ: اگر هزینه‌ها یکسان هستند، می‌توانید با استفاده از تاریخ تحصیل ابهام را برطرف کنید.

    Assets:Invest:STOCK  -5 STOCK {2024-01-15}
  • تطبیق با برچسب: برچسب‌ها یک روش بدون خطا برای شناسایی یک لات فراهم می‌کنند.

    Assets:Invest:STOCK  -5 STOCK {"شناسه-لات"}
  • تطبیق هر لات: یک مجموعه آکولاد خالی {} با هر لات موجود مطابقت خواهد داشت. این اغلب با ثبت 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 را می‌گیرد.

زمان مطالعه 7 دقیقه

Cin7 در مقابل Katana در مقابل inFlow: چگونه کسب‌وکارهای کوچک محصول‌محور باید نرم‌افزار مدیریت موجودی را در سال ۲۰۲۶ انتخاب کنند

Cin7، Katana و inFlow مشکلات مختلف موجودی را حل می‌کنند. بیاموزید که چگونه…

small-business
inventory
زمان مطالعه 10 دقیقه

مدیریت موجودی و حسابداری برای کسبوکارهای کوچک: یک راهنمای عملی

مدیریت مؤثر موجودی برای کسبوکارهای کوچک بسیار حیاتی است و بر درآمد و کارایی…

accounting
small-business
زمان مطالعه 11 دقیقه

مدیریت موجودی برای کسب و کارهای کوچک: راهنمای جامع برای کنترل هزینه ها و افزایش سود

مدیریت موثر موجودی برای کسب و کارهای کوچک برای جلوگیری از زیان درآمد ناشی از…

small-business
financial-management
زمان مطالعه 10 دقیقه

درآمد سیسکو در Q4 FY2026: سفارش‌های $9.3 میلیاردی هوش مصنوعی در برابر رشد 80% موجودی

سه‌ماهه چهارم سال مالی سیسکو با درآمد $17.25B (+18%)، سود خالص $3.86B (+51%)،…

financial-reporting
financial-analysis
زمان مطالعه 12 دقیقه

حسابداری موجودی فروشگاه خوراک دام: چگونه خوراک فله، SKUهای کیسه‌ای و کرایه حمل را هزینه‌یابی کنیم، بی‌آنکه حاشیه سود را از دست بدهیم

راهنمای فروشگاه‌های خوراک دام برای هزینه‌یابی خوراک فله و SKUهای کیسه‌ای بر…

inventory
bookkeeping