ایک اسٹیک ہولڈر SaaS پروڈکٹ کے استعمال کے ڈیٹا (جو 1 جنوری 2025 سے 30 جون 2025 تک محیط ہے) سے ماہانہ فعال صارفین (MAU) اور پلان کی سطح کے لحاظ سے صارفین کی برقراری (retention) کی معلومات طلب کرتا ہے۔ اس CSV فائل میں ایونٹ کی سطح پر 120,000 قطاریں (rows) ہیں، جن میں ٹائم اسٹیمپ کے ملے جلے فارمیٹس، خالی user_id ویلیوز، اور ‘ری پلیز’ (replays) کی وجہ سے دہرائے گئے ایونٹس شامل ہیں۔ ڈیٹا کی صفائی محض ایک ابتدائی یا معمولی کام نہیں ہے؛ یہ دراصل ان تجزیاتی فیصلوں کا مجموعہ ہے جو یہ طے کرتے ہیں کہ کس چیز کو ‘سرگرمی’ (activity) سمجھا جائے گا، کون ‘صارف’ (user) کہلائے گا، اور کون سے ریکارڈز قابلِ قبول ہوں گے۔
آپ کی تیار کردہ پروڈکٹ (ڈیٹا) آڈٹ کے لیے مکمل طور پر تیار ہونی چاہیے۔ آپ کے پاس دوبارہ چلانے کے قابل (rerunnable) صاف شدہ ڈیٹا سیٹ اور تبدیلیوں کا لاگ (change log) موجود ہونا چاہیے جو ہر تبدیلی یا عمل کی وجہ اور جواز بیان کرے۔ AI کوڈ کا مسودہ تیار کر سکتا ہے، غیر معمولی حالات (edge cases) کی نشاندہی کر سکتا ہے، اور تصدیقی جانچ پڑتال (validation checks) کی تجاویز دے سکتا ہے۔ تاہم، تعریفوں کی توثیق اور حد بندی (thresholds) کا تعین آپ کرتے ہیں، اور اگر صفائی کے عمل میں کیے گئے کسی فیصلے سے کوئی میٹرک (metric) مسخ ہو جائے تو اس کے نتیجے میں پیدا ہونے والی خرابی کی ذمہ داری بھی آپ پر عائد ہوتی ہے۔
کوڈ پر کام شروع کرنے سے پہلے، آپ کو یہ واضح کرنا ہوگا کہ اس مخصوص سوال کے تناظر میں “مناسب حد تک صاف” (clean enough) ہونے کا کیا مطلب ہے۔ یہی تعریف بعد میں ان ‘قبولیتی ٹیسٹس’ (acceptance tests) کی بنیاد بنتی ہے جن پر صاف شدہ ڈیٹا کو پورا اترنا لازمی ہوتا ہے۔
ڈیٹا کی صفائی (cleaning) کا ہر فیصلہ دراصل ایک شماریاتی مداخلت ہے۔ یہ اس عمل کو تبدیل کرتا ہے جس کے بارے میں آپ کا مفروضہ ہے کہ اس نے ٹیبل تشکیل دیا ہے، اور یہ تخمینوں (estimates) کو بھی متاثر کرتا ہے۔
عدمِ موجودگی کا طریقہ کار (Missingness mechanism) وہ وجہ ہے جس کی بنا پر اقدار (values) غائب ہوتی ہیں۔ اگر plan_tier اس لیے خالی (null) ہے کیونکہ کسی مخصوص ہفتے کے لیے بلنگ ٹیبل کا انضمام (join) ناکام رہا، تو سب سے عام ٹائیر (tier) کو بطور متبادل درج کرنے (imputation) سے سیگمنٹ کی تعداد غلط ہو جائے گی اور ٹائیر کے لحاظ سے ریٹینشن (retention) کے اعداد و شمار میں تعصب (bias) پیدا ہو جائے گا۔ آپ کو غائب اقدار کو ‘ناقابلِ پیمائش’، ‘غیر ریکارڈ شدہ’، یا ‘غیر متعلقہ’ (not applicable) کے طور پر لیبل کرنا چاہیے، اور اس کے بعد ہی حذف کرنے، متبادل قدر درج کرنے، یا الگ زمرہ بنانے کا فیصلہ کرنا چاہیے۔ AI تجاویز تو دے سکتا ہے، لیکن وہ صرف کالم کو دیکھ کر اس کے پیچھے کارفرما طریقہ کار کا درست اندازہ نہیں لگا سکتا۔
ڈپلیکیٹ ختم کرنے کا اصول (Deduplication rule) ‘ڈپلیکیٹ’ (نقل) کی کاروباری تعریف ہے۔ اگر دوبارہ چلائے گئے ایونٹس (replayed events) 5 سیکنڈ کے اندر ایک جیسی (user_id, event_name, event_ts) خصوصیات رکھتے ہوں، تو انہیں یکجا (collapse) کرنا استعمال کی تعداد (usage counts) کے لیے تو درست ہو سکتا ہے لیکن لیٹنسی (latency) کے تجزیے کے لیے غلط ثابت ہو سکتا ہے۔ جب AI drop_duplicates() کے ذریعے ڈپلیکیٹس کو ہٹاتا ہے، تو وہ خاموشی سے ‘کیز’ (keys) اور ترجیح (precedence) کا انتخاب کر لیتا ہے۔ آپ کو ‘کیز’، ‘ٹائی بریکرز’ (tie-breakers)، اور میٹرک پر پڑنے والے اثرات کی وضاحت کرنی چاہیے۔
ڈیٹا کی قسم کی تبدیلی (Type coercion) ترتیب اور گروہ بندی کو تبدیل کر دیتی ہے۔ event_ts کی غلط پارسنگ (parsing) ایونٹس کو مہینوں کے درمیان منتقل کر سکتی ہے اور MAU (ماہانہ فعال صارفین) میں غلط تبدیلی ظاہر کر سکتی ہے۔ آپ کو پارسنگ کی کامیابی کی شرح اور ٹائم زون سے متعلق مفروضے کی تصدیق کرنی چاہیے۔