تعلّم / التكاليف
تدحرج تكلفة قائمة المواد متعدد المستويات لوصفات الأغذية والمشروبات الطبقية
وصفة الأغذية والمشروبات ليست أبداً مستوى واحد. المركّز يدخل في خليط سائب؛ الخليط السائب يُعبَّأ في منتج تام. الأصناف الوهمية تنمذج العقد المفاهيمية التي لا تُخزَّن. إليك كيف يحسب التدحرج متعدد المستويات التكلفة المعيارية ميكانيكياً — ولماذا يعتمد مديرك المالي على صحته.
قائمة المواد المسطّحة هي خيال تبيعه بعض أنظمة ERP لأن محرّك التكاليف لديها لا يستطيع فعل أي شيء أكثر تعقيداً. وصفات الأغذية والمشروبات الحقيقية متداخلة. المركّز يدخل في خليط سائب. الخليط السائب يُعبَّأ. الزجاجات تُحزَم في علب. كل مستوى علاقة وصفة خاصة به.
هذا المقال يمشي عبر كيف يحسب التدحرج متعدد المستويات التكلفة المعيارية للمنتج التام من المدخلات الأساسية، بما في ذلك بناء الصنف الوهمي الذي تستخدمه كل وصفة أغذية ومشروبات حقيقية.
شكل قائمة مواد أغذية ومشروبات حقيقية
خذ عصير مانجو واحة 1 لتر (FG-SA-MNG-1L). ثلاثة مستويات:
المستوى 0 (المنتج التام): عصير مانجو واحة 1 لتر. المكونات:
- 1 مُسبَك زجاجة PET 1 لتر
- 1 غطاء PCO 28 مم
- 1 ملصق انكماش
- 1 لتر من خليط عصير المانجو السائب (WIP)
- 1/12 من حالة كرتون (تخصيص)
المستوى 1 (WIP): خليط عصير المانجو السائب (WIP-SA-MNG-MIX). المكونات لكل لتر:
- 130 جم مركّز مانجو
- 95 جم سكر
- 0.5 جم حمض الستريك
- 0.05 جم فيتامين C
- ~0.85 لتر ماء معالَج
- (ربما عقدة وهمية — “خلطة حمض الفاكهة” — تخلط حمض الستريك + فيتامين C + ملاحظات نكهة طفيفة مباشرةً)
المستوى 2 (المواد الخام): مركّز مانجو مستورد، سكر محلي، حمض الستريك، فيتامين C، ماء RO معالَج.
ثلاثة مستويات. تدحرج التكلفة المعيارية يمشي الشجرة من أعلى إلى أسفل، يجمع تكاليف المكونات في كل مستوى.
كيف يحسب التدحرج ميكانيكياً
الخوارزمية في standard-cost-rollup.service.ts (وضع FULL) هي:
function rollupCost(item):
if item.kind == 'RAW' or 'PACKAGING':
return item.standardCost // ورقة — الحالة الأساسية
total = 0
for component in item.bom.components:
if component.isPhantom:
// وهمي — انفجر خلاله، لا تُضِف تكلفة الوهمي الخاصة
total += rollupCost(component) × component.quantityPerUnit
else:
total += rollupCost(component) × component.quantityPerUnit
for routing in item.routing.operations:
total += routing.standardLabourHours × routing.resource.standardLabourRate
total += routing.standardOverheadAbsorption
item.standardCost = total
return total
ثلاث ملاحظات:
- التكرار. كل مستوى يستدعي الوظيفة مرة أخرى. قائمة مواد بثلاث مستويات تعني 3 مستويات من الاستدعاءات التكرارية. تطبيق AION يُحمِّل قوائم المواد الفرعية مسبقاً بشكل دفعي لتجنب مشكلة استعلام N+1 (انظر
preloadChildBoms()في خدمة تفجير قائمة المواد). - الأصناف الوهمية تساهم بالبنية، وليس بأسطر التكلفة. عقدة وهمية موجودة في شجرة قائمة المواد لكنها لا تملك تكلفتها المعيارية الخاصة — تكاليف أطفالها تتدحرج إلى الوالد مباشرةً. هذا حاسم للوصفات التي لديها العديد من الخلطات الفرعية المفاهيمية.
- عمالة المسار + المصروفات غير المباشرة تُضاف في كل مستوى مُصنَّع. WIP والمنتج التام كلاهما لديهما مسارات. المواد الخام لا. لذا العمالة والمصروفات المُستوعَبة في خطوة الخليط السائب تُضاف إلى تكلفة WIP؛ العمالة المُستوعَبة في التعبئة تُضاف إلى تكلفة المنتج التام فوق تكلفة WIP.
مثال عملي — عصير مانجو واحة 1 لتر
باستخدام متوسطات واقعية لمايو 2026 من عرض واحة الطازجة:
المستوى 2 — المواد الخام (لكل كجم أو لكل لتر):
| الصنف | التكلفة المعيارية |
|---|---|
| مركّز المانجو | 42.00 ر.س / كجم |
| سكر (مكرَّر) | 5.00 ر.س / كجم |
| حمض الستريك | 14.00 ر.س / كجم |
| فيتامين C | 90.00 ر.س / كجم |
| ماء RO | 0.60 ر.س / لتر |
المستوى 1 — خليط عصير المانجو السائب (لكل لتر):
| المكون | الكمية لكل لتر | تكلفة الوحدة | تكلفة المكون |
|---|---|---|---|
| مركّز المانجو | 0.130 كجم | 42.00 | 5.46 |
| السكر | 0.095 كجم | 5.00 | 0.48 |
| حمض الستريك | 0.0005 كجم | 14.00 | 0.01 |
| فيتامين C | 0.00005 كجم | 90.00 | 0.00 |
| ماء RO | 0.85 لتر | 0.60 | 0.51 |
| عمالة المسار (خط الخليط السائب) | 0.30 | ||
| المصروفات غير المباشرة للمسار | 0.20 | ||
| التكلفة المعيارية للخليط السائب | 6.96 ر.س / لتر |
المستوى 0 — عصير مانجو واحة 1 لتر (لكل زجاجة):
| المكون | الكمية | تكلفة الوحدة | تكلفة المكون |
|---|---|---|---|
| الخليط السائب للمانجو | 1 لتر | 6.96 | 6.96 |
| زجاجة PET 1 لتر | 1 لكل | 1.40 | 1.40 |
| غطاء PCO 28 مم | 1 لكل | 0.18 | 0.18 |
| ملصق انكماش | 1 لكل | 0.35 | 0.35 |
| تخصيص الكرتون | 1/12 | 1.90 | 0.16 |
| عمالة المسار (خط التعبئة) | 0.40 | ||
| المصروفات غير المباشرة (التعبئة) | 0.55 | ||
| تخصيص المنصة | 0.05 | ||
| التكلفة المعيارية للمنتج التام | 10.05 ر.س / زجاجة |
المعيار المُهيَّأ في واحة الطازجة هو 10.5 ر.س، أعلى قليلاً لأن البيانات تشمل بدلاً صغيراً للتقلص وخردة رفض QA. قريب بما يكفي — الخوارزمية تُنتج الرقم التقريبي.
النقطة هي أنك تستطيع تدقيق هذا الحساب. كل سطر قابل للتتبع إلى مدخل أساسي. إذا ارتفع سعر المركّز، تستطيع رؤية بالضبط كم يدفع التكلفة المعيارية للمنتج التام للأعلى. إذا غيّرت مورد التعبئة، ترى التأثير الفوري على مستوى الخليط السائب والمنتج التام.
الأصناف الوهمية في الممارسة
لماذا تستخدم أصنافاً وهمية إذا لم تظهر في المخزون؟
ثلاثة أسباب خاصة بالأغذية والمشروبات:
1. النقاء المفاهيمي في الوصفة. “خلطة حمض الفاكهة” تقرأ أفضل من “30% حمض الستريك بالكتلة بالإضافة إلى 5% فيتامين C بالإضافة إلى 1% نكهة طبيعية.” الصنف الوهمي يُسمّي المفهوم؛ الأطفال يحملون المكونات الفعلية.
2. إعادة الاستخدام عبر منتجات تامة متعددة. خلطة نكهة تدخل في عصير المانجو والبرتقال والرمان يمكن تعريفها مرة كصنف وهمي والإشارة إليها في الوصفات الثلاث. غيّر نسبة الخلط مرة، وكل تدحرجات المنتجات التامة الثلاثة تُحدَّث.
3. سير عمل R&D. تطوير وصفة جديدة يُنشئ أصنافاً وهمية كعناصر نائبة قبل أن يقرر ما إذا كان سيتتبعها كمخزون حقيقي. إذا كانت نتيجة R&D خليطاً فرعياً مُخزَّناً، يتحول الوهمي إلى صنف WIP حقيقي.
في AION، يُعلَّم صنف كـ phantom على تعريفه. خدمة التدحرج تعالجها عبر منطق التفجير — الاستدعاء التكراري لا يزال يمشي خلاله، لكن سطر تكلفة الوهمي الخاص لا يُضاف.
التدحرج الدفعي — لماذا يهم
عندما يتحرك متوسط تكلفة مركّز المانجو من 9.4 ر.س/كجم إلى 10.2 ر.س/كجم، كل قائمة مواد تستخدم المركّز تحتاج لإعادة التدحرج. عرض واحة الطازجة لديه 12 منتجاً تاماً، 4 أصناف WIP، وعدة وصفات تُشير إلى المركّز.
تشغيل التدحرج لقائمة مواد واحدة في كل مرة بطيء ومعرض للأخطاء. التدحرج الدفعي في AION (batch-cost-rollup.use-case.ts) يُعيد تشغيل الحساب لكل قائمة مواد APPROVED أو FROZEN في المؤسسة في معاملة واحدة. يُحرَّك تلقائياً عند حدوث عتبة مُهيَّأة من حركة السعر، أو يدوياً من قبل محاسب التكاليف.
المعاملة الذرية مهمة: إما أن كل المعايير المُحدَّثة تُكتَب معاً، أو لا شيء. لا يمكن أن يكون لديك تكلفة معيارية للمنتج التام تعكس سعر المركّز الجديد بينما تكلفة WIP المعيارية لا تزال تستخدم القديم. معاملة التدحرج تفرض الاتساق.
ما لا يمكنك فعله اليوم (خارطة الطريق)
شيئان على قائمة “ليست ميزة أساسية بعد” في تدقيق التكاليف:
البحث العكسي “أين استُخدمت”. اليوم تستطيع تفجير قائمة مواد للأسفل — بإعطاء المنتج التام، شاهد كل المكونات. العكس — بإعطاء المركّز، شاهد كل المنتجات التامة التي تستخدمه — ليس استعلاماً مباشراً بعد. البيانات موجودة (مكونات قائمة المواد تُشير إلى الوالد)، لكن التقرير لا يُظهرها كعرض “أين استُخدمت” بنقرة واحدة. الحل البديل: البحث عبر قوائم المواد. خارطة الطريق: عرض “أين استُخدمت” مخصص.
محاكاة التكلفة / تسعير ماذا-لو. “ما الذي ستكون عليه التكلفة المعيارية للمنتج التام إذا ذهب المركّز إلى 12 ر.س/كجم؟” — ليس حساباً مدمجاً اليوم. الحل البديل: عدِّل التكلفة المعيارية للمادة الخام مؤقتاً، شغّل التدحرج الدفعي، شاهد النتيجة، ارجع. خارطة الطريق: محاكاة مخصصة لا تلمس البيانات الحية.
أخطاء شائعة
نسيان إعادة تشغيل التدحرج بعد تغييرات السعر. يستطيع AION تشغيل التدحرج الدفعي تلقائياً على محفزات مُهيَّأة، لكن من السهل تعطيل ذلك ثم النسيان. تنحرف المعايير عن الواقع حتى يلاحظ شخص ما. اضبط المحفز.
نمذجة كل شيء كـ WIP حقيقي. إذا نمذجت كل خلطة مفاهيمية كصنف WIP مُخزَّن، فأنت تُنشئ عبء إدارة مخزون — يجب على شخص ما عدّه، تقييمه، تسويته. معظم الخلطات يجب أن تكون وهمية. اختبار الفصل: هل توجد لحظة قد تحتفظ فيها بهذا المخزون منتظراً لاستخدامه؟ إذا لا، وهمي.
نسخ قائمة مواد غير متسقة. يمكن أن يكون لمنتج تام عدة إصدارات قائمة مواد (DRAFT، APPROVED، FROZEN). تأكد أن التدحرج يستخدم فقط APPROVED أو FROZEN — تشغيل التدحرج على قائمة مواد DRAFT نسي شخص ما تجاهلها يُلوِّث المعايير.
كيف يبدو هذا في العرض
امشِ من خلاله كـ cfo.saudi:
- انتقل إلى التصنيع ← قوائم المواد ← عصير مانجو واحة 1 لتر. شاهد وصفة مستوى المنتج التام.
- انقر على خليط عصير المانجو السائب. شاهد وصفة مستوى WIP، مع المواد الخام.
- انقر بالزر الأيمن على أي مادة خام لرؤية تاريخ متوسط التكلفة.
- التصنيع ← قوائم المواد ← تدحرج التكلفة. شغّل التدحرج الدفعي. شاهد كل معيار منتج تام يُحدَّث.
- دفتر الأستاذ ← ميزان المراجعة. شاهد سطر المخزون يتحرك مع تطبيق المعايير الجديدة في إقفال الفترة التالي.
المقال التالي في هذه السلسلة — انحراف الإنتاجية — الـ 8% التي تفقدها — يلتقط حيث ينتهي تدحرج قائمة المواد. بمجرد أن يكون لديك معيار دقيق، يصبح السؤال: كم مرة يطابق الإنتاج الفعلي ذلك، وأين ينحرف؟
شاهد هذا في عرض واحة الطازجة
سجّل الدخول إلى مجموعة واحة الطازجة (السعودية) كـ cfo.saudi
أسئلة شائعة
ما هو الصنف الوهمي في قائمة المواد ولماذا تستخدمه الأغذية والمشروبات؟
الصنف الوهمي هو عقدة وصفة موجودة مفاهيمياً لكنها غير مُخزَّنة أو مُقيَّمة أو محسوبة. تُستخدم للخلطات الفرعية التي ليس لها حضور مادي في المخزون — مثلاً، 'خلطة حمض الفاكهة' التي تُمزَج مباشرةً أثناء إنتاج الخليط السائب. الأصناف الوهمية تُفجَّر خلال التدحرج لكنها لا تساهم بسطر تكلفة خاص بها؛ فقط أطفالها يساهمون. تستخدم الأغذية والمشروبات الأصناف الوهمية لأن الوصفات الحقيقية لديها العديد من مراحل الخلط المفاهيمية التي لا تبرر إنشاء أصناف مخزون مُتتبعة لكل منها.
كم مرة يجب أن نُعيد تشغيل تدحرج قائمة المواد؟
تلقائياً — في كل مرة تتغير تكلفة مكون بشكل جوهري. حالة استخدام تدحرج دفعي AION تُعيد التشغيل لكل قائمة مواد APPROVED أو FROZEN في المؤسسة. لمصنع صغير ومتوسط بموردين مستقرين، قد يعمل أسبوعياً أو شهرياً. لمصنع بانكشاف صرف عملات متقلب (مصر، بعد 2022)، قد يعمل بعد كل استلام رئيسي.
هل يمكن لقائمة مواد أن تُشير إلى نفسها أو تُنشئ حلقة؟
لا — يجب أن تكون قوائم المواد لا دورية. خدمة تفجير قائمة المواد في AION تكتشف الحلقات وترفضها عند إنشاء قائمة المواد. هذا يهم لأن وصفة دورية ستنفجر إلى ما لا نهاية أثناء التدحرج. الأصناف الوهمية أيضاً لا يمكن أن تُشير إلى نفسها عبر أطفالها.