مستندات امیر

مستندات پروژه امیر، نرم‌افزار آزاد حسابداری لاراول.

پیش‌بینی ماهانه درآمد و هزینه

این راهنما توضیح می‌دهد که امیر چگونه در میز کار ماهانه درآمد و هزینه، مبالغ پیش‌بینی، مقادیر واقعی، انحراف‌ها و درصدهای عملکرد را محاسبه می‌کند.

English version

بازگشت به راهنمای استفاده‌کنندگان

نمای کلی

میز کار برای هر ماه شمسی از سال مالی شرکت فعال، این سه مقدار را با یکدیگر مقایسه می‌کند:

مقدار مفهوم
پیش‌بینی درآمد یا هزینه مورد انتظار که کاربر ثبت کرده یا سیستم محاسبه کرده است
واقعی نتیجه تراکنش‌های اسناد حسابداری تأییدشده در ماه انتخابی
انحراف اختلاف مطلوب یا نامطلوب میان مبلغ واقعی و پیش‌بینی

پیش‌بینی روی سرفصل‌های موقت حسابداری انجام می‌شود؛ یعنی حساب‌های درآمد و هزینه که در پایان سال مالی بسته می‌شوند.

درآمد و هزینه واقعی

یک تراکنش تنها هنگامی در مقدار واقعی اثر می‌گذارد که سند حسابداری آن:

  • متعلق به شرکت فعال باشد؛
  • تأیید شده باشد (approved_at تهی نباشد)؛
  • تاریخ آن در محدوده ماه شمسی انتخابی قرار بگیرد؛
  • و روی یک سرفصل موقت مرتبط یا یکی از زیرمجموعه‌های آن ثبت شده باشد.

اسناد پیش‌نویس و تأییدنشده در محاسبات وارد نمی‌شوند. پیش از جست‌وجوی اسناد، ابتدا محدوده ماه شمسی انتخابی به تاریخ شروع و پایان میلادی تبدیل می‌شود.

برای محاسبه جمع مقادیر واقعی، امیر هر سرفصل ریشه موقت را همراه با همه زیرمجموعه‌های آن در تمام عمق‌ها محاسبه می‌کند. تراکنش‌های ثبت‌شده روی سرفصل‌های تفصیلی دائمی زیر یک ریشه موقت نیز در محاسبه حضور دارند.

مانده ریشه = تراکنش‌های خود ریشه + تراکنش‌های همه زیرمجموعه‌ها

جهت هر ریشه یک بار از مجموع علامت‌دار همه تراکنش‌های تأییدشده خود ریشه و تمام زیرمجموعه‌های آن در شرکت سال مالی فعال تعیین می‌شود:

اگر مانده کامل سلسله‌مراتب > 0 باشد:
    جهت سرفصل = درآمد

اگر مانده کامل سلسله‌مراتب < 0 باشد:
    جهت سرفصل = هزینه

سپس مانده ماه انتخابی با حفظ علامت حسابداری در همان جهت طبقه‌بندی می‌شود. حرکت با علامت مخالف، برگشت از عملیات است و به‌جای تبدیل‌شدن به مبلغ مثبت، جمع همان گروه را کاهش می‌دهد. به این ترتیب مجموع مقادیر ماهانه با مانده کامل و تأییدشده سلسله‌مراتب تطبیق دارد.

بنابراین:

درآمد واقعی = مجموع مانده‌های ماهانه علامت‌دار ریشه‌های درآمدی
هزینه واقعی = مجموع مانده‌های ماهانه علامت‌دار ریشه‌های هزینه‌ای

طبقه‌بندی مبلغ واقعی به‌عنوان درآمد یا هزینه را مانده کامل و تأییدشده سرفصل و همه زیرمجموعه‌هایش تعیین می‌کند؛ نه صرفاً نوع تعریف‌شده سرفصل یا فقط حرکت ماه انتخابی. در ردیف پیش‌بینی دستیِ سرفصل نوع هر دو، علامت مبلغ واردشده فقط جهت همان ردیف پیش‌بینی را تعیین می‌کند و طبقه‌بندی جمع واقعی را تغییر نمی‌دهد.

اگر پیش‌بینی اعمال‌شده و مقدار واقعیِ در دسترس هر دو صفر باشند، مبلغی برای طبقه‌بندی وجود ندارد. در این حالت، میز کار از نوع تعریف‌شده سرفصل استفاده می‌کند: سرفصل بدهکار هزینه و سرفصل بستانکار درآمد نمایش داده می‌شود. سرفصل هر دو جهت مبتنی بر مانده سلسله‌مراتب را حفظ می‌کند، زیرا نوع تعریف‌شده آن جهت واحدی ندارد.

مثال

سرفصل ریشه موقت مانده خالص سهم درآمد سهم هزینه
درآمد فروش ۱٬۲۰۰+ ۱٬۲۰۰ ۰
هزینه‌های عملیاتی ۷۰۰- ۰ ۷۰۰-
سایر درآمدها ۳۰۰+ ۳۰۰ ۰
درآمد واقعی = ۱٬۲۰۰ + ۳۰۰ = ۱٬۵۰۰
هزینه واقعی = ۷۰۰-

هر ریشه پیش از طبقه‌بندی خالص می‌شود. برای مثال، تراکنش‌های ۱٬۰۰۰+ و ۲۰۰- زیر یک ریشه، ۸۰۰ درآمد ایجاد می‌کنند؛ نه ۱٬۰۰۰ درآمد و ۲۰۰ هزینه جداگانه.

پیش‌بینی دستی

هر پیش‌بینی دستی شامل ماه، سرفصل موقت و مبلغ است. علامت مبلغ واردشده جهت آن را مشخص می‌کند:

مبلغ مثبت = پیش‌بینی درآمد
مبلغ منفی = پیش‌بینی هزینه
نوع سرفصل جهت مجاز پیش‌بینی
بستانکار درآمد، با ورودی مثبت
بدهکار هزینه، با ورودی منفی
هر دو درآمد یا هزینه

علامت ورودی مقدار budget_type را تعیین می‌کند، اما forecast_amount به صورت قدر مطلق و مثبت ذخیره می‌شود:

ورودی: ۸۰۰-
budget_type ذخیره‌شده: expense
forecast_amount ذخیره‌شده: ۸۰۰

برای هر ترکیب شرکت، ماه و سرفصل فقط یک پیش‌بینی قابل ثبت است. پیش‌بینی دستی برای همان سرفصل همیشه بر پیش‌بینی سیستمی اولویت دارد؛ فرقی نمی‌کند ماه پایان‌یافته، جاری یا آینده باشد.

عملیات کپی پیش‌بینی ماه قبل، همه پیش‌بینی‌های دستی ماه انتخابی را با یک نسخه از مجموعه کامل پیش‌بینی‌های ماه قبل جایگزین می‌کند.

پیش‌بینی سیستمی

تکمیل‌شدن ماه با تاریخ شمسی فعلی و منطقه زمانی Asia/Tehran تعیین می‌شود:

  • همه ماه‌های یک سال مالی قدیمی‌تر، تکمیل‌شده هستند؛
  • در سال مالی جاری، ماه‌های قبل از ماه شمسی فعلی تکمیل‌شده‌اند؛
  • ماه جاری و ماه‌های بعدی تکمیل‌شده محسوب نمی‌شوند.

ماه تکمیل‌شده

برای یک ماه تکمیل‌شده، پیش‌بینی سیستمی برابر با مقدار واقعی همان ماه است:

پیش‌بینی سیستمی درآمد = درآمد واقعی
پیش‌بینی سیستمی هزینه = هزینه واقعی

بنابراین، ماه‌های تکمیل‌شده نقاط گزارش‌دهی تاریخی هستند، نه پیش‌بینی آینده.

ماه جاری یا آینده

برای ماه جاری یا آینده، سرفصل بدون پیش‌بینی دستی، پیش‌بینی اعمال‌شده ماه قبل را به ارث می‌برد. اسنادی که در ماه باز ثبت شده‌اند مقدار واقعی و انحراف همان ماه را تغییر می‌دهند، اما جایگزین این پیش‌بینی سیستمی نمی‌شوند:

پیش‌بینی سیستمی ماه N = پیش‌بینی اعمال‌شده ماه N - ۱

ماه اول سال مالی، ماه قبلی ندارد. اگر فروردین سند تأییدشده داشته باشد، پیش‌بینی سیستمی از مقدار واقعی و علامت‌دار آن شروع می‌شود؛ در غیر این صورت مقدار پایه صفر است:

پیش‌بینی سیستمی فروردین = مقدار واقعی فروردین، اگر سند وجود دارد
پیش‌بینی سیستمی فروردین = صفر، در غیر این صورت

این محاسبه به‌صورت ترتیبی انجام می‌شود و هنگام تحلیل در حافظه موقت نگه داشته می‌شود. بنابراین سیستم لازم نیست برای هر ماه دوباره از ابتدای سال جست‌وجو کند؛ هر ماه فقط به پیش‌بینی اعمال‌شده حل‌شده ماه قبل نیاز دارد. اگر پیش‌بینی ماه قبل تغییر کند، زنجیره نیز از مقدار جدید دوباره محاسبه می‌شود.

پیش‌بینی اعمال‌شده

پیش‌بینی اعمال‌شده برای هر سرفصل و هر ماه به صورت مستقل انتخاب می‌شود:

اگر پیش‌بینی دستی وجود داشته باشد:
    پیش‌بینی اعمال‌شده = پیش‌بینی دستی
در غیر این صورت:
    پیش‌بینی اعمال‌شده = پیش‌بینی سیستمی

این اولویت در ماه‌های پایان‌یافته نیز برقرار است. بنابراین جمع پیش‌بینی یک ماه پایان‌یافته، ترکیبی از مبالغ دستی سرفصل‌های دارای پیش‌بینی و مبالغ واقعی سرفصل‌های بدون پیش‌بینی دستی است. مبلغ دستی با جمع واقعی کل ماه جایگزین نمی‌شود.

برای مثال:

پیش‌بینی دستی سرفصل الف = ۱٬۰۰۰
مبلغ واقعی سرفصل الف    = ۱٬۲۰۰
سرفصل ب پیش‌بینی دستی ندارد
مبلغ واقعی سرفصل ب      = ۳۰۰

جمع پیش‌بینی اعمال‌شده = ۱٬۰۰۰ + ۳۰۰ = ۱٬۳۰۰

در ماه جاری و آینده، این اولویت یک زنجیره انتقال ایجاد می‌کند. برای مثال، اگر تیر پیش‌بینی دستی ۱٬۸۰۰ داشته باشد، مرداد مقدار دستی نداشته باشد، شهریور پیش‌بینی دستی ۲٬۲۰۰ داشته باشد و مهر نیز مقدار دستی نداشته باشد:

پیش‌بینی اعمال‌شده تیر      = ۱٬۸۰۰ (دستی)
پیش‌بینی اعمال‌شده مرداد   = ۱٬۸۰۰ (به ارث رسیده از تیر)
پیش‌بینی اعمال‌شده شهریور  = ۲٬۲۰۰ (دستی)
پیش‌بینی اعمال‌شده مهر     = ۲٬۲۰۰ (به ارث رسیده از شهریور)

پیش‌بینی سرفصل کل و زیرمجموعه‌ها

انتخابگر پیش‌بینی، سرفصل‌های کل موقت و زیرمجموعه‌های مستقیم آن‌ها را نمایش می‌دهد، اما محاسبات می‌توانند سطوح عمیق‌تر را نیز پوشش دهند. امیر از دوباره‌شماری جلوگیری می‌کند:

  1. اگر سرفصل کل پیش‌بینی دستی نداشته باشد اما یکی از زیرمجموعه‌های مستقیم آن پیش‌بینی دستی داشته باشد، کل زیرشاخه آن زیرمجموعه از سرفصل کل جدا می‌شود. ردیف سرفصل کل به صورت بدون زیرمجموعه‌های دارای پیش‌بینی جداگانه نمایش داده می‌شود.
  2. اگر هم سرفصل کل و هم یک زیرمجموعه پیش‌بینی دستی داشته باشند، مبلغ سرفصل کل جمع پیش‌بینی را کنترل می‌کند. ردیف زیرمجموعه فقط جهت اطلاع نمایش داده می‌شود و نشان فقط جهت اطلاع؛ لحاظ‌شده در جمع سرفصل کل دارد.

هشدار بالای بخش پیش‌بینی جدید از کاربر می‌خواهد هنگام ثبت پیش‌بینی برای سرفصل کل، جمع مبلغ پیش‌بینی خود سرفصل و همه زیرمجموعه‌های آن را وارد کند؛ نه فقط مبلغ پیش‌بینی خود سرفصل کل. در نتیجه، پیش‌بینی ۱۰٬۰۰۰ برای سرفصل کل و ۳٬۰۰۰ برای زیرمجموعه، جمع پیش‌بینی ۱۰٬۰۰۰ ایجاد می‌کند، نه ۱۳٬۰۰۰.

چون ردیف‌های زیرمجموعه اجزای مبلغ سرفصل کل هستند، جهت همه آن‌ها باید با سرفصل کل یکسان باشد و مجموع مبالغشان نیز نباید از پیش‌بینی سرفصل کل بیشتر شود. امیر ثبت اطلاعاتی را که یکی از این دو شرط را نقض کند نمی‌پذیرد.

اگر در ماه بعد فقط پیش‌بینی دستی زیرمجموعه باقی بماند، ابتدا پیش‌بینی اعمال‌شده ماه قبل همان زیرمجموعه از مبلغ به‌ارث‌رسیده سرفصل کل کسر می‌شود. سپس فقط مانده سرفصل کل و مبلغ جدید زیرمجموعه با هم جمع می‌شوند تا انتقال پیش‌بینی باعث دوباره‌شماری نشود.

گروه‌هایی که دست‌کم یک پیش‌بینی دستی دارند، پیش از گروه‌های کاملاً سیستمی نمایش داده می‌شوند. ردیف سرفصل کل و زیرمجموعه‌ها کنار یکدیگر باقی می‌مانند: ابتدا سرفصل کل و بلافاصله پس از آن زیرمجموعه‌های مستقیمی که پیش‌بینی دستی دارند نمایش داده می‌شوند. بنابراین ممکن است یک سرفصل کل سیستمی در بخش گروه‌های دستی قرار بگیرد، زیرا یکی از زیرمجموعه‌های آن پیش‌بینی دستی دارد.

نشان منبع هر مقدار اعمال‌شده کنار همان عدد نمایش داده می‌شود. توضیح پیش‌بینی دستی و پیش‌بینی سیستمی فقط یک‌بار بالای جدول آمده است و دیگر به شکل Tooltip در تک‌تک ردیف‌ها تکرار نمی‌شود. در ردیف دستی، مقدار سیستمی نیز برای مقایسه نمایش داده می‌شود.

محاسبه انحراف

جهت فرمول‌ها طوری انتخاب شده است که انحراف مثبت مطلوب و انحراف منفی نامطلوب باشد.

انحراف درآمد

در درآمد، بیشتر بودن مبلغ واقعی از پیش‌بینی مطلوب است:

انحراف درآمد = درآمد واقعی - درآمد پیش‌بینی‌شده
پیش‌بینی واقعی انحراف مفهوم
۱٬۰۰۰ ۱٬۲۰۰ ۲۰۰+ مطلوب؛ درآمد بیشتر از پیش‌بینی است
۱٬۰۰۰ ۸۰۰ ۲۰۰- نامطلوب؛ درآمد کمتر از پیش‌بینی است

انحراف هزینه

مبالغ هزینه در محاسبات علامت منفی حسابداری خود را حفظ می‌کنند. بنابراین همان تفریق علامت‌دار استفاده می‌شود و کمتر بودن هزینه واقعی نسبت به پیش‌بینی، انحراف مثبت ایجاد می‌کند:

انحراف هزینه = هزینه واقعی - هزینه پیش‌بینی‌شده
پیش‌بینی واقعی انحراف مفهوم
۱٬۰۰۰- ۸۰۰- ۲۰۰+ مطلوب؛ هزینه کمتر از بودجه است
۱٬۰۰۰- ۱٬۲۰۰- ۲۰۰- نامطلوب؛ هزینه بیشتر از بودجه است

درصد انحراف

درصد انحراف درآمد = (انحراف ÷ پیش‌بینی درآمد) × ۱۰۰
درصد انحراف هزینه = (انحراف ÷ (پیش‌بینی هزینه × ۱-)) × ۱۰۰

برای پیش‌بینی هزینه ۸۰۰- و هزینه واقعی ۶۰۰-:

انحراف = ۶۰۰- - (۸۰۰-) = ۲۰۰
درصد انحراف = (۲۰۰ ÷ (۸۰۰- × ۱-)) × ۱۰۰ = ۲۵٪

اگر مبلغ پیش‌بینی صفر باشد، امیر برای جلوگیری از تقسیم بر صفر، درصد را ۰٪ گزارش می‌کند.

درصد تحقق و مصرف

این نسبت‌های عملکرد پیش‌بینی با درصد انحراف متفاوت‌اند:

درصد تحقق درآمد = (درآمد واقعی ÷ درآمد پیش‌بینی‌شده) × ۱۰۰
درصد مصرف هزینه = (هزینه واقعی ÷ هزینه پیش‌بینی‌شده) × ۱۰۰
  • تحقق درآمد بیشتر از ۱۰۰٪ یعنی درآمد از پیش‌بینی بیشتر بوده است.
  • تحقق درآمد کمتر از ۱۰۰٪ یعنی درآمد به پیش‌بینی نرسیده است.
  • مصرف هزینه کمتر از ۱۰۰٪ یعنی هزینه زیر بودجه باقی مانده است.
  • مصرف هزینه بیشتر از ۱۰۰٪ یعنی هزینه از بودجه عبور کرده است.

اگر مخرج پیش‌بینی صفر باشد، نسبت نمایشی مربوط به آن نیز صفر در نظر گرفته می‌شود.

نمایش اعداد و نمودارها

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

۸۰۰- به صورت (۸۰۰) نمایش داده می‌شود

نمودارها همه مبالغ را به صورت مثبت نمایش می‌دهند. فقط هنگام آماده‌سازی داده برای نمودار، امیر قدر مطلق درآمد و هزینه را محاسبه می‌کند:

برگشت درآمد علامت‌دار در محاسبات = ۲۰۰-
مقدار درآمد ارسالی به نمودار     = ABS(۲۰۰-) = ۲۰۰
هزینه علامت‌دار در محاسبات        = ۸۰۰-
مقدار هزینه ارسالی به نمودار      = ABS(۸۰۰-) = ۸۰۰

بنابراین نمودارهای میز کار ماهانه و نمودار درآمد و هزینه ماهانه در reports.cost-income، همه ستون‌ها، خطوط و سهم‌ها را مثبت نمایش می‌دهند؛ بدون آنکه علامت مبالغ در محاسبات حسابداری تغییر کند.

نمودارها فقط بزرگی مبلغ را نمایش می‌دهند. برای تشخیص علامت اصلی هر مبلغ، باید مقدار علامت‌دار جدول یا کارت‌های شاخص را بررسی کرد.

ماه‌های بدون سند حسابداری

مقادیر واقعی فقط وقتی در دسترس‌اند که دست‌کم یک سند حسابداری تأییدشده در ماه انتخابی وجود داشته باشد. اگر چنین سندی وجود نداشته باشد:

درآمد واقعی = ناموجود
هزینه واقعی = ناموجود
انحراف = ناموجود

اگر یک سند تأییدشده وجود داشته باشد اما هیچ تراکنش درآمد یا هزینه مرتبطی نداشته باشد، محاسبه واقعی فعال است و ممکن است نتیجه آن صفر باشد.

گزارش کل سال

تحلیل سالانه همین محاسبه را برای هر ۱۲ ماه شمسی انجام می‌دهد:

پیش‌بینی درآمد سالانه = مجموع پیش‌بینی درآمد ماهانه
پیش‌بینی هزینه سالانه = مجموع علامت‌دار پیش‌بینی هزینه ماهانه

درآمد واقعی سالانه =
    مجموع درآمد واقعی ماه‌هایی که سند تأییدشده دارند

هزینه واقعی سالانه =
    مجموع علامت‌دار هزینه واقعی ماه‌هایی که سند تأییدشده دارند

محاسبات سالانه علامت حسابداری درآمد و هزینه را حفظ می‌کنند. نمودارها قدر مطلق این مبالغ را نمایش می‌دهند تا فقط ظاهر نمودار مثبت باشد و محاسبات میز کار و گزارش درآمد و هزینه بدون تغییر باقی بماند.