# حداثة البيانات (Data Freshness)

> نسبة مجموعات البيانات التي وصلت محدَّثة قبل موعد استعمالها المعلن، إلى إجمالي المجموعات المجدولة.

- **المجال:** تقنية المعلومات (IT Operations)
- **الوحدة:** %
- **تكرار القياس:** يومي
- **الاتجاه المرغوب:** أعلى أفضل
- **النوع:** قائد (Leading)
- **الرابط:** https://kpihub.co/k/it-data-freshness

## الهدف

قياس الشرط الذي يسبق أي قرار مبنيّ على بيانات، فالتقرير الذي يفتح على بيانات الأمس يُقرأ كأنه اليوم.

## لماذا هو مهم

- البيانات المتأخّرة أخطر من الغائبة، لأنها تُقرأ بثقة وتقود قرارًا خاطئًا
- الموعد المعلن للاستعمال هو المرجع لا وقت انتهاء التحميل
- الفشل الصامت في التحميل أشيع من الفشل المعلن ولا يكتشفه أحد

## المعادلة

```
Data Freshness % = (Datasets ready before their usage deadline ÷ Scheduled datasets) × 100
```

قِسها مقابل موعد الاستعمال لا موعد التحميل. فتحميل ينتهي في الثامنة والتقرير يُقرأ في السابعة فشل، وإن اكتمل التحميل بنجاح.

## مثال محسوب

‏64 مجموعة بيانات مجدولة يوميًّا، وصل 55 قبل موعد الاستعمال. الحساب: (55 ÷ 64) × 100 = 86%، و4 من التسع المتأخّرة فشلت بصمت بلا تنبيه.

## النطاق الاسترشادي

فوق 99% للمجموعات التي تغذّي تقارير تشغيلية يومية. وأي فشل صامت واحد يعني تنبيهًا ناقصًا لا حادثًا فرديًّا.

## تحليل الاتجاه

- تدهورها مع نموّ حجم البيانات متوقّع ويستحقّ تخطيطًا لا مفاجأة
- تركّز التأخير في مصدر واحد يعني اعتمادًا خارجيًّا يجب إدارته
- الفشل الصامت المتكرّر يعني مراقبة تقيس اكتمال التحميل لا صحّته

## أسئلة تشخيصية

- هل نقيس مقابل موعد الاستعمال؟ موعد التحميل لا يعني شيئًا للمستخدم
- كم فشلًا صامتًا؟ الفشل بلا تنبيه هو الأخطر
- هل يعرف المستخدم أن البيانات قديمة؟ عرض وقت آخر تحديث ضروري

## نصائح عملية

- اعرض وقت آخر تحديث في كل تقرير، فهو أرخص حماية من قرار خاطئ
- نبّه عند التأخّر لا عند الفشل وحده، فالتأخير أشيع
- قِس مقابل موعد الاستعمال المعلن لكل مجموعة

## العرض المناسب

- جدول المجموعات بموعد الاستعمال ووقت الوصول
- خط زمني للحداثة مع تعليم الفشل الصامت
- خريطة حرارية: المجموعة صفًّا واليوم عمودًا

## تحذيرات وفخاخ

- القياس مقابل موعد التحميل يجعل تقريرًا يقرأ بيانات أمس يبدو ناجحًا
- الفشل الصامت يترك المستخدم يقرأ بيانات قديمة بثقة كاملة
- التنبيه على الفشل وحده يفوّت التأخير وهو أشيع بكثير

## أثر التغيير

- ‏4 حالات فشل صامت شهريًّا تعني قرارات اتُّخذت على بيانات قديمة بلا علم
- عرض وقت آخر تحديث يمنع قرارًا خاطئًا بسطر واحد في التقرير
- القياس مقابل موعد الاستعمال يجعل الرقم يعني شيئًا للمستخدم

## احسبه في أداتك

### Excel

```excel
=COUNTIFS(D[OnTime],"Yes") / COUNTA(D[DatasetID])
```

### Power BI (DAX)

```dax
Data Freshness % =
DIVIDE (
    CALCULATE ( COUNTROWS ( 'Dataset' ), 'Dataset'[ReadyBeforeDeadline] = TRUE () ),
    COUNTROWS ( 'Dataset' )
)
```

### Tableau

```
SUM( IF [Ready Before Deadline] THEN 1 ELSE 0 END ) / COUNT([Dataset ID])
```

### SQL

```sql
SELECT dataset_name,
       COUNT(*) FILTER (WHERE ready_at <= usage_deadline) * 100.0
         / NULLIF(COUNT(*), 0)                       AS freshness_pct,
       COUNT(*) FILTER (WHERE failed AND NOT alerted)  AS silent_failures,
       AVG(EXTRACT(EPOCH FROM (ready_at - usage_deadline)) / 60) AS avg_lateness_minutes
FROM   dataset_load
WHERE  run_date BETWEEN :from_date AND :to_date
GROUP  BY dataset_name
ORDER  BY freshness_pct;
```

---

المصدر: [KPIHub](https://kpihub.co/k/it-data-freshness) · مرجع عربي مجاني لمؤشرات الأداء.
