متوسط عمر المخزون بوزن الوحدات المتبقية يبدأ بتحديد الرصيد وتاريخ الاستلام وتاريخ القراءة. سنختار كميات متبقية معطاة ونحسب أعمارها، ثم نقارن متوسط الوحدات بمتوسط الدفعات ووزن القيمة ونختبر تغير الوقت ودخول رصيد جديد. التواريخ والأرقام تعليمية والصورة مولدة والرسم أصلي؛ لم نجرد مستودعًا أو نشغل برنامجًا أو نستخرج طبقات تكلفة. البطاقة النهائية تحفظ المرجع والكمية والمقام وحدود الفئة والصلاحية، حتى يبقى معنى النتيجة واضحًا عند المقارنة.
الخلاصة السريعة
في مثال 2026 عند التاسعة بتوقيت ثابت: عشرون وحدة متبقية من 1 فبراير عمرها ثمانية وثلاثون يومًا في 11 مارس، وثلاثون من 1 مارس عمرها عشرة. المتوسط بوزن الوحدات واحد وعشرون فاصلة اثنان يومًا، ومتوسط الدفعتين بالتساوي أربعة وعشرون. المتوسط لا يغير عمر كل وحدة ولا يثبت صلاحية أو قيمة أو حركة مخزون؛ الكميات والتواريخ معطاة للشرح.
- وثائق Oracle تعرف عمرًا مرجحًا بتاريخ الاستلام والكمية الحالية في الوحدة الأساسية.[1] نختار في مثالنا صنفًا واحدًا وكميات متبقية معطاة، لا نموذج صرف أو نتيجة دفتر فعلي. الدفعة والصف والوحدة أوزان مختلفة، فلا نبدل المقام من عدد إلى آخر.
- عشرون في ثمانية وثلاثين تعطي سبعمئة وستين، وثلاثون في عشرة تعطي ثلاثمئة؛ المجموع ألف وستون على خمسين يساوي واحدًا وعشرين فاصلة اثنين يومًا. متوسط عمري الدفعتين بلا وزن أربعة وعشرون؛ لا وحدة في قصتنا تتغير إلى عمر المتوسط.
- فئتنا التعليمية ثلاثون يومًا أو أكثر تشمل الحد نفسه: عشرون من خمسين، أربعون بالمئة، رغم أن المتوسط أقل من ثلاثين. لا نسميها تالفًا أو غير قابل للبيع. احفظ حدود الفئة ولا تعد اليوم نفسه مرتين أو تنقل إليه عناوين تقرير دون تعريف.
- قيمتا وحدة مفترضتان أربعة واثنتا عشرة تعطيان ثمانين وثلاثمئة وستين، مجموع أربعمئة وأربعين. وزن القيمة يعطي متوسط عمر نحو خمسة عشر فاصلة صفر تسعة وحصة فئة أقدم نحو ثماني عشرة فاصلة ثمانية عشر بالمئة، لا نسب الكمية أو تقييمًا محاسبيًا اختبرناه.
- في 21 مارس 2026 عند التاسعة، مع ثبات الكميات، العمَران ثمانية وأربعون وعشرون والمتوسط واحد وثلاثون فاصلة اثنان بلا حركة. وفي بديل للّقطة الأولى، إضافة خمسين وحدة جديدة بعمر صفر تجعل المتوسط عشرة فاصلة ستة، دون تغيير عمر الوحدات القديمة.
- Oracle يفصل أيام الصلاحية عن العمر المرجح.[1] انتهاء افتراضي في 1 أبريل من قراءة 11 مارس يترك واحدًا وعشرين يومًا، مختلفًا عن عمر استلام 1 مارس البالغ عشرة. Infor يصف أساسًا لآخر الاستلام والنشاط مع استثناءات للنقل، وتقريرًا كميًا.[2] لا نفترض أن أي شاشة تطابق متوسطنا.
- البطاقة تحفظ الوحدة والموقع والكمية الحالية والتواريخ والمرجع والوزن والبسط والمقام. صف صفر الكمية لا يضيف وزنًا، ومجموع رصيد صفر لا ينتج متوسطًا بالقسمة. تاريخ مجهول لا يستبدل بتاريخ القراءة؛ لا نستخرج من الحسبة صلاحية أو شطبًا أو توصية شراء أو أصل حركات لم نرصدها.
اختر تاريخ البداية والكمية التي تزنها
تعرّف وثائق Oracle لمؤشر عمر المخزون متوسطًا مرجحًا يربط العمر بحسب تاريخ الاستلام بالكمية الحالية في وحدة القياس الأساسية. نقرأ هذين المدخلين معًا، ولا نستبدل كمية الرصيد الحالي بعدد دفعات الاستلام أو كميات وصلت ثم خرجت.[1]
سننشئ مثالًا لصنف واحد، فيه عشرون وحدة متبقية من استلام في الأول من فبراير ألفين وستة وعشرين، وثلاثون من استلام في الأول من مارس. تاريخ قراءة المثال الحادي عشر من مارس، وجميع الأوقات التاسعة صباحًا بتوقيت ثابت. الكميتان معطاتان في القصة؛ لم نستخرجهما من حركات صرف أو نموذج تكاليف، ولم نحلل متجرًا أو نشغل برنامجًا أو نجرد مستودعًا.
نعرف العمر بأنه فرق الأيام التقويمية بين تاريخ الاستلام وتاريخ القراءة. تحت هذا التعريف عمر الدفعة الأولى ثمانية وثلاثون يومًا، والثانية عشرة أيام. ليست الأرقام عمر المادة منذ صنعها أو تاريخ انتهاء صلاحيتها أو عدد أيام بقائها في متجر بعينه بعد تحويلات مجهولة. نحتفظ بالمرجع الزمني المختار، لأن اسم عمر المخزون وحده لا يخبرنا بأي حدث يبدأ العد.
الصورة مولدة والرسم أصلي، ولا يعرضان دفعات ذات أعداد أو تواريخ تحققنا منها. هدفنا قراءة أثر الأوزان والتواريخ ونطاق السجل، لا اقتراح قرار شطب أو تخفيض سعر أو تحديد مستوى شراء. قبل القسمة اكتب الصنف والوحدة والكمية الحالية والمرجع، وأظهر أي مدخل ناقص بدل منحه قيمة تبدو معقولة من عنوان التقرير.
كل وحدة لها وزن في المتوسط
العشرون في عمر ثمانية وثلاثين تعطي سبعمئة وستين وحدة مضروبة في يوم، والثلاثون في عمر عشرة تعطي ثلاثمئة. المجموع ألف وستون، ومجموع الوحدات خمسون؛ المتوسط المرجح واحد وعشرون فاصلة اثنان يومًا. هكذا أخذت كل وحدة متبقية وزنًا متساويًا، وأثرت الدفعة ذات الثلاثين وحدة أكثر من الدفعة ذات العشرين في تلخيص الرصيد الحالي.
إذا جمعنا الثمانية والثلاثين والعشرة ثم قسمنا على اثنين، نحصل على أربعة وعشرين يومًا. هذا متوسط عمري الدفعتين بالتساوي، لا متوسط أعمار الوحدات بالكمية التي اخترناها. كلا الحسابين له تعريف واضح، لكن لا نضع الثاني تحت عنوان الأول. عندما تختلف أحجام الدفعات، نحتاج إلى الأوزان المناسبة للسؤال بدل إعطاء كل سطر وزنًا واحدًا لمجرد أنه سطر في الملف.
ولا يعني الواحد والعشرون فاصلة اثنان أن أي وحدة في قصتنا عمرها بهذا المقدار. الوحدات الأولى في عمر ثمانية وثلاثين والثانية في عشرة عند تاريخ القراءة نفسه. المتوسط يلخص القائمة ولا يغير تواريخها. احتفظ بعمري الدفعتين وكميتيهما إلى جانب الرقم، كي يظهر ما يمكن أن يخفيه وصف الرصيد كله بجملة قصيرة مثل «عمره أقل من ثلاثين».
يمكن مراجعة البسط والمقام من قائمة الوحدات أو من قائمة الدفعات المجمعة، إذا بقيت الكميات والأعمار نفسها دون تكرار. ولا نجمع متوسطات عدة مستودعات بالتساوي تلقائيًا؛ لكل مجموعة عدد وحدات، ويحتاج المتوسط المجمع إلى مجموع الأوزان والمساهمات. إذا كان الملف يعرض متوسطًا فقط، اطلب ما يحدد وزنه بدل تخمين كمية الرصيد من عدد الصفوف المعروضة.
متوسط صغير قد يحتوي رصيدًا أقدم
نختار فئة تعليمية نسميها «عمره ثلاثون يومًا أو أكثر»، وندخل فيها اليوم الثلاثين نفسه. في اللقطة الأولى تقع العشرون وحدة ذات الثمانية والثلاثين يومًا ضمن الفئة، بينما الثلاثون ذات العشرة لا تقع فيها. إذن أربعون بالمئة من الكمية تقع في الفئة المختارة، رغم أن متوسط أعمار كل الوحدات واحد وعشرون فاصلة اثنان، أي أقل من ثلاثين.
لا يتعارض المتوسط مع النسبة، لأن أحدهما يجمع الأعمار بأوزان الكمية والآخر يعد الكمية التي حققت شرطًا. ولا نعطي اسمًا مثل تالف أو غير قابل للبيع لكل وحدة تجاوزت الثلاثين؛ هذا حد اخترناه لتوضيح توزيع الأعمار فقط. لم نعط نوع سلعة أو مدة صلاحية أو قاعدة تشغيل أو معيارًا يقرر قيمة الرصيد عند ذلك الحد.
لو كانت دفعة في عمر ثلاثين بالضبط، تدخل في فئتنا ذات الحد الشامل. لكن هذا لا يثبت أن كل تقرير تجاري يضعها في الفئة نفسها. اكتب حدود الفئات كما تعرفها، خاصة عند استخدام ألفاظ مثل أقل من أو حتى أو بين عددين. لا تنقل عناوين جاهزة إلى بيانات ثم تترك اليوم الحدي بلا تعريف أو تعده في فئتين معًا.
في بطاقة التوزيع، يمكن ذكر مجموع الوحدات وعدد داخل كل فئة وتعريف حدها، ثم المتوسط في خانة مستقلة. بهذه الطريقة يستطيع القارئ معرفة وجود رصيد أقدم حتى عندما ينخفض المتوسط المجمع. والبطاقة لا تحكم على الملاءمة أو المبيعات المستقبلية؛ إنها توضح أين تقع الأعداد تحت الشروط التي أعلنّاها، دون تحويل كلمة عمر إلى تقدير خطر لم ننفذه.
وزن القيمة يطرح سؤالًا آخر
نضيف للمثال قيمتي وحدة افتراضيتين: أربعة للدفعة الأولى واثنتا عشرة للثانية، في العملة نفسها. تصبح قيمة العشرين ثمانين، وقيمة الثلاثين ثلاثمئة وستين، والمجموع أربعمئة وأربعين. هذه قيم اخترناها للمقارنة، وليست تكلفة سجل فعلي أو نتيجة إعادة تقييم أو صيغة برنامج. لا نغير الأعمار أو الكميات لمجرد إدخال وزن نقدي جديد.
إذا وزنّا الأعمار بهذه القيم بدل الوحدات، يصبح مجموع الضرب ستة آلاف وستمئة وأربعين، وقسمته على الأربعمئة والأربعين تعطي نحو خمسة عشر فاصلة صفر تسعة يومًا. هذا متوسط مرجح بالقيم التي فرضناها، وليس الواحد والعشرين فاصلة اثنين المرجح بالكمية. اقترب الناتج من عمر العشرة، لأن الدفعة الأحدث أخذت وزنًا نقديًا أكبر بالنسبة إلى المجموع.
كذلك تصبح قيمة الفئة التي عمرها ثلاثون أو أكثر ثمانين من أربعمئة وأربعين، أي نحو ثماني عشرة فاصلة ثمانية عشر بالمئة. كانت حصة الكمية للفئة أربعين بالمئة، ولا يثبت اختلاف النسبتين أن بيانات إحداهما خاطئة. إننا نزن نفس الأعمار والمجموعتين بأساسين مختلفين. احتفظ باسم الوزن والوحدة النقدية والتعريف بدل كتابة «نسبة المخزون القديم» من دون مقام معلوم.
هذه المقارنة لا تختار أساس تقييم محاسبي أو تطبق طريقة تكاليف. لم نشتق الرصيد المتبقي من وارد وصادر، ولم نوزع كلفة نقل أو استرداد أو خصم على الوحدات. القيمة هنا مدخل تعليمي مستقل، وأي قراءة في تقرير فعلي تحتاج إلى أساس القيمة الذي اعتمده. صحة ضرب كمية في قيمة مفترضة لا تمنح الناتج صفة قيمة مخزون مدققة.
التاريخ يتغير حتى دون حركة
ننقل تاريخ القراءة في فرع مستقل إلى الحادي والعشرين من مارس عند التاسعة، مع بقاء العشرين والثلاثين وتاريخي استلامهما كما هما. يصبح العمَران ثمانية وأربعين وعشرين يومًا. مجموع الضرب ألف وخمسمئة وستون، والمقام خمسون، والمتوسط واحد وثلاثون فاصلة اثنان. زاد المتوسط عشرة أيام لأننا تقدمنا عشرة أيام بالرصيد نفسه، لا لأننا افترضنا استلامًا أو صرفًا جديدًا.
الفئة الأقدم التي اخترناها ما زالت تضم العشرين فقط، لأن العشرين يومًا للدفعة الثانية دون حد الثلاثين. لذلك قد يتغير المتوسط بينما لا تتغير كمية الفئة أو نسبتها في هذه اللقطة. ليس كل تغير في مؤشر الأعمار حركة مخزون، وليس ثبات فئة دليلاً على ثبات أعمار وحداتها. الفرق بين تاريخ القراءة وتاريخ الحدث يساعد على وصف ما تغير فعلًا في الحساب.
وفي بديل يعود إلى لقطة الحادي عشر من مارس، نضيف خمسين وحدة جديدة بعمر صفر عند وقت القراءة نفسه. تصبح الكمية مئة، بينما يبقى مجموع الأعمار الموزونة القديم ألفًا وستين، فتكون النتيجة عشرة فاصلة ستة أيام. انخفض المتوسط بسبب دخول وحدات جديدة، ولم تصبح أعمار الخمسين القديمة نصف قيمها أو يتغير استلام فبراير إلى استلام مارس.
احتفظ في المقارنة بما تغير في المقام وما تغير في أعمار القوائم وما تغير في تاريخ التقرير. قد ينتج متوسط أقل من أكثر من سبب، ولا يختار الرقم وحده تفسيرًا لها. ولا نستنتج من البديل شراءً مفيدًا أو سياسة إدارة أفضل؛ لم نعط سعرًا أو طلبًا أو تكلفة احتفاظ أو معلومات تسمح بتقييم تلك الأسئلة التشغيلية والمالية.
العمر ليس الأيام المتبقية للصلاحية
تفصل وثائق Oracle بين مؤشر العمر المرجح بحسب الاستلام ومؤشر الأيام المتبقية إلى انتهاء صلاحية الدفعة. لكل منهما تاريخ مرجعي وسؤال مختلف، فلا نغير أحدهما إلى الآخر من اسم المخزون وحده.[1]
لنفترض في حالة مستقلة تاريخ انتهاء في الأول من أبريل ألفين وستة وعشرين عند التاسعة، وقراءة في الحادي عشر من مارس عند التاسعة. الفرق المتبقي واحد وعشرون يومًا. ولدفعة استلمت في الأول من مارس، كان عمر الاستلام عشرة أيام عند اللقطة نفسها. العشرة والواحد والعشرون صحيحان وفق تاريخيهما، ولا يجمعان لتكوين متوسط عمر كمية أو حكم على جودة السلعة.
إذا لم يكن تاريخ الصلاحية معطى، لا نستخرجه بإضافة عدد ثابت إلى تاريخ الاستلام، ولا نجعل العمر أقل من ثلاثين دليل صلاحية. وإذا كانت المادة لا تحمل خانة مماثلة في بياناتنا، تظل تلك الخانة خارج ما حسبناه. المقال لا يحدد فترة حفظ سلعة أو شروط قبولها أو طريقة التعامل مع انتهاء صلاحيتها؛ المثال يوضح فرق العد من الماضي والعد إلى تاريخ لاحق معلوم.
يمكن أن يبدأ السؤال من تاريخ صنع أو استلام أو آخر نشاط إذا عرفه تقريره، لكن النتيجة تحتاج إلى اسم ذلك المرجع. لا نسمّي «الوقت منذ آخر حركة» عمرًا من أول استلام دون ملاحظة التغيير، ولا ندخل تاريخ إصدار فاتورة بدل استلام لمجرد أنه التاريخ المتاح. تحديد الحدث جزء من صحة الرقم، والبيانات الناقصة لا تعالج بتبديل عنوان العمود فقط.
أسماء التقارير لا تكفي لمساواة النتائج
يصف مرجع Infor تقريرًا يفحص تاريخ آخر استلام ونشاط، ويذكر معالجة مختلفة لحركات النقل والتحويل، ويوضح أن معلومات أعمار هذا التقرير مبنية على الكمية. لذا لا نفترض أن كل تقرير بهذا الاسم يحسب متوسط نموذجنا بالضبط.[2]
في لقطة فبراير ومارس، أحدث استلام في القائمة هو الأول من مارس، ومضى عليه عشرة أيام عند القراءة. هذا عدد يجيب عن الزمن منذ ذلك الاستلام الأخير، لا المتوسط المرجح الواحد والعشرين فاصلة اثنين. لا نضع العشرة بدل المتوسط أو نستنتج أن أي شاشة ستعرضها من تاريخين فقط؛ قد يختار تقرير نوع حركة أو مستوى تجميع أو قواعد لم نعطها في بياناتنا.
اقرأ تعريف الحقول والنطاق والإعدادات قبل مقارنة تقريرين. هل يجمعان الصنف نفسه والموقع نفسه والوحدة نفسها، وهل يعودان إلى تاريخ القراءة نفسه؟ وهل الأوزان وحدات أم قيمة أم عد صفوف؟ هذه بطاقة أسئلة من إعدادنا، وليست ادعاء بأننا شغلنا برنامجين أو تحققنا من تطابقهما. اختلاف تعريف مدخل أساسي يمكن أن يمنح نتيجتين مختلفتين لبيانات ظاهرها متشابه.
وعند وجود رد من عميل أو نقل بين مخازن أو تعديل تاريخ، لا نخمن أثره على العمر من جمع الكميات وحده. لا يحسب نموذجنا أصل الرصيد ولا قواعد إعادة تعيين عمره، لذلك تحتاج هذه الحالات إلى تعريف مصدرها وسجلها. يمكن ذكر هذا الحد بجوار المتوسط بدل عرضه كعمر مادي مؤكد لكل وحدة منذ بداية إنتاجها أو كقرار صرف متحقق منه.
بطاقة وزن تحفظ الرصيد والتواريخ
بطاقتنا تضم الصنف والموقع والوحدة ومرجع العمر وتاريخ القراءة والكمية المتبقية لكل دفعة وتاريخها. ثم نسجل العمر المحسوب ومساهمة الكمية في البسط ومجموع الرصيد والمتوسط الناتج. للمثال الأول تحفظ العشرين في ثمانية وثلاثين والثلاثين في عشرة، ومجموع الألف والستين والمقام خمسين، والواحد والعشرين فاصلة اثنين يومًا، دون إخفاء أي من الدفعتين وراء التلخيص.
إذا كان صف بكمية صفر، لا يضيف وزنًا إلى متوسط الوحدات، ولا نمنحه عمرًا سالبًا أو وحدة وهمية كي يدخل القسمة. أما عندما تكون الكمية الكلية صفرًا، فلا نحسب متوسطًا بالقسمة على صفر ولا نعرضه «صفر أيام» كأنه عمر رصيد موجود. وإذا كان تاريخ الاستلام مجهولًا لكمية موجبة، لا تستبدله بتاريخ القراءة لتبدو تلك الكمية جديدة؛ يحتفظ التقرير بحدود البيانات المتاحة.
وعند حساب وزن نقدي بديل، أضف قيمه وأساسه وعملته في خاناته، وسم النتيجة بوزن القيمة. لا تخلط بسطًا نقديًا بمقام وحدات ثم تسميه أيامًا مرجحة بالوحدات، ولا تجمع أصنافًا مختلفة بوحدة عامة من دون أساس معلن. ويمكن عرض نسبة الفئة الأقدم ومتوسط العمر جنبًا إلى جنب بشرط إبقاء المقام وحد الفئة واضحين لكل نتيجة.
متوسط عمر المخزون يصبح مفهومًا عندما نعرف الرصيد الذي نزن أعمارَه والتاريخ الذي نقيس عنده الحدث الذي اخترناه. المراجع تدعم تعريفات محددة قرأناها، بينما التواريخ والقيم والأمثلة والرسم من إعدادنا. لم نجرد مستودعًا أو نحسب نموذج تكاليف أو نحكم على صلاحية سلعة؛ ما يثبت هنا هو اتساق المدخلات والعمليات والحدود التي حفظناها مع كل رقم.
المصادر ومتابعة القراءة
- Oracle: تعريف عمر المخزون والصلاحية في التحليلات (يفتح في نافذة جديدة)docs.oracle.com
- Infor: أساس تقرير عمر المخزون الكمي (يفتح في نافذة جديدة)docs.infor.com
أُعدّ هذا المقال بصياغة عربية أصلية بالاستناد إلى المصادر أعلاه، وهو مدخل تمهيدي إلى الموضوع. اقرأ منهجية المحتوى وحدوده.
