FTE × hours/day × days/weekالمصدر يبقى في Engagement، ويُزامَن عبر Views مفلترة إلى Creative. كل الحسابات تجري محلياً في Creative.
Created ≥ 1/6/2025Action Time ≥ 1/6/20252. Cr. In Progress · 2. Cr. ReWork · 3. Review Output · 4. Ready to Scheduleيجب أن يبقى تاريخ البداية نفسه في الـ View-ين. لو اختلفا، تظهر أحداث بلا مهام أو مهام بلا أحداث، فتسقط من التقرير.
كل مقياس يُستخرج من سجل الأحداث (History)، وليس من حالة المهمة الحالية. هكذا نعرف متى حدث كل شيء.
Task ID في سجل الأحداث يتغير حين يتغير نوع المهمة، فالربط بالنص الكامل فشل مع 227 حدثاً. ولصق الروابط يدوياً يتوقف عند حد معين من الصفوف.
TSK = REGEX_EXTRACT({Task ID}, "TSK[0-9]+")، وهو مفتاح ثابت لا يتغير| Field | الحساب من History | المعنى |
|---|---|---|
| Actual Start | MIN · In Progress | أول إرسال للكرييتف |
| Last Creative Event | MAX · In Progress / ReWork | آخر مرة كانت عند الكرييتف |
| Last Review Output | MAX · Review Output | آخر تسليم للمراجعة |
| Last Ready | MAX · Ready to Schedule | بديل للتسليم |
| Last Rework | MAX · ReWork | آخر إرجاع |
| Review Rounds | COUNT · ReWork | عدد جولات التعديل |
لا يُحسب تسليم إذا عادت المهمة للكرييتف بعده. وأضفنا Ready to Schedule لأن 112 مهمة منشورة قفزت فوق Review Output، فكانت ستُصنَّف خطأً كـ Rework.
كل مهمة تحصل على تصنيف واحد من 7 تصنيفات. فقط OK · Ready for reporting يدخل في المؤشرات، والباقي يظهر في قسم جودة البيانات.
الـ Formula التي تُخرج قيمة على شكل Single Select تسقط بصمت للقيمة الافتراضية إذا لم يطابق النص اسم الخيار حرفياً. اكتشفنا ذلك مع 149 مهمة وصححناه.
الدالة الجاهزة WORKDAY_DIFF تفترض أن العطلة السبت والأحد. لذلك بنينا معادلة تقرأ أيام عمل الفريق نفسه من Local Teams.
Wait Span (Days): عدد الأيام التقويمية بتوقيت قطرStart Weekday: يوم الأسبوع لتاريخ الإنشاء (0 = الأحد)طابقنا المعادلة على 1,306 مهمة بحساب مستقل: 0 اختلاف.
الساعات المعيارية تأتي من نوع المهمة، وتُحسب فقط للمسارات المطلوبة فعلاً.
| Team | Members | Days | h/day | Weekly |
|---|---|---|---|---|
| Engagement Creative | 3 | أحد ← خميس | 8 | 120 h |
| App Artwork | 2 | أحد ← خميس | 8 | 80 h |
القائد غير محسوب في السعة لأن Members Count يعدّ الأعضاء فقط. هذا قرار يمكن مراجعته مع مدير الكرييتف.
| Automation | Trigger | Action |
|---|---|---|
| RQ2690 | Link Event to Task | حدث جديد في History: رابط Tasks فارغ وحقل TSK ممتلئ | يبحث في Tasks عن TASK ID = TSK ثم يملأ رابط Tasks |
| RQ2690 | Link Producers – New | مهمة فيها Producer Names ورابط Producers فارغ | يملأ Producers من Producer Names بمطابقة الاسم |
| RQ2690 | Link Producers – Changed | عند تعديل Video Producer أو Design Producer فقط | يعيد ملء Producers من Producer Names |
أتمتة Changed تراقب حقلي المنتج فقط، فتحديثها لـ Producers لا يطلقها مرة أخرى.
للسجلات الموجودة استخدمنا حيلة تغيير الفورميولا إلى "" ثم إرجاعها، فتطابق الشرط من جديد وتعمل عليها الأتمتة.
الخط العمودي يمثّل السعة الكاملة
| ما تحققنا منه | النطاق | النتيجة |
|---|---|---|
| Rollups البداية والتسليم والجولات | كل المهام | 0 اختلاف |
| منطق Actual Delivery | كل المهام | 0 اختلاف |
| ربط المنتجين بالأشخاص | 4,506 | 4,506 / 4,506 |
| Wait Span · Weekday · Work Days | 1,306 | 0 اختلاف |
| السعة الأسبوعية | فريقان | 120 h · 80 h |
| كل أرقام لوحة المدير | 15/9 ← 12/10 | تطابق تام |
النسخة الأولى من اللوحة، التي ولّدها الذكاء الاصطناعي (Omni)، كانت تقرأ 5 حقول خاطئة: تاريخ النشر بدل التسليم، والانتظار بدل زمن الإنجاز، والسعة بدل جولات المراجعة… فأظهرت استفادة 1439%.
كتبنا الكود يدوياً بأرقام حقول ثابتة، مع رسالة خطأ صريحة إن لم يستطع العنصر قراءة أي حقل، بدل أرقام خاطئة صامتة.
كل حقل أنشأناه (36 حقلاً) يحمل Description يشرح ما يحسبه ومصدره ومن يستخدمه، ويبدأ بـ RQ2690 |.