एक स्टेकहोल्डर 2025-01-01 से 2025-06-30 तक के SaaS प्रोडक्ट-यूसेज डेटा से मंथली एक्टिव यूज़र्स और प्लान टियर के हिसाब से रिटेंशन की जानकारी मांगता है। CSV में इवेंट लेवल पर 120k रो (rows) हैं, जिनमें अलग-अलग टाइमस्टैम्प फ़ॉर्मैट, नल (null) user_id वैल्यू और रीप्ले से आए रिपीटेड इवेंट्स शामिल हैं। क्लीनिंग कोई शुरुआती काम भर नहीं है। क्लीनिंग असल में एनालिटिकल फ़ैसलों का एक सेट है जो यह तय करता है कि किसे एक्टिविटी माना जाए, किसे यूज़र माना जाए और कौन से रिकॉर्ड मान्य होंगे।
आपका डिलीवरेबल ऑडिट के लिए तैयार होता है। आपके पास एक ऐसा क्लीन किया हुआ डेटासेट होता है जिसे दोबारा चलाया जा सके, साथ ही एक चेंज लॉग भी होता है जो हर बदलाव को सही ठहराता है। AI कोड का ड्राफ़्ट तैयार कर सकता है, एज केस (edge cases) बता सकता है और वैलिडेशन चेक का सुझाव दे सकता है। आप परिभाषाओं को मंज़ूरी देते हैं, थ्रेशोल्ड चुनते हैं, और अगर क्लीनिंग के किसी फ़ैसले से कोई मेट्रिक गलत हो जाता है, तो उससे जुड़ी आगे की गलतियों की ज़िम्मेदारी भी आपकी होती है।
कोड पर काम शुरू करने से पहले, आपको यह तय करना होगा कि इस सवाल के लिए ‘काफ़ी हद तक क्लीन’ होने का क्या मतलब है। वही परिभाषा आगे चलकर एक्सेप्टेंस टेस्ट बनती है, जिसे क्लीन किए गए आउटपुट को पास करना होता है।
डेटा साफ़ करने का हर फ़ैसला एक सांख्यिकीय (statistical) बदलाव होता है। यह उस डेटा-जनरेटिंग प्रोसेस को बदल देता है जिससे टेबल बनी मानी जाती है, और इससे अनुमान (estimates) भी बदल जाते हैं।
मिसिंगनेस मैकेनिज़्म (Missingness mechanism) वह वजह है जिससे कुछ वैल्यूज़ मौजूद नहीं होतीं। अगर किसी खास हफ़्ते के लिए बिलिंग टेबल के न जुड़ पाने की वजह से plan_tier खाली (null) है, तो सबसे आम टियर की वैल्यू भरने (imputation) से सेगमेंट की गिनती गलत हो सकती है और टियर के हिसाब से रिटेंशन के नतीजे पक्षपाती हो सकते हैं। आपको खाली वैल्यूज़ को ‘मापा नहीं गया’, ‘रिकॉर्ड नहीं किया गया’ या ‘लागू नहीं होता’ के तौर पर लेबल करना चाहिए, और उसके बाद ही उन्हें हटाने, भरने या किसी अलग कैटेगरी में रखने का फ़ैसला करना चाहिए। AI विकल्प सुझा सकता है, लेकिन वह सिर्फ़ कॉलम को देखकर यह नहीं समझ सकता कि डेटा गायब होने का कारण क्या है।
डी-डुप्लीकेशन नियम (Deduplication rule) डुप्लीकेट की बिज़नेस परिभाषा है। अगर 5 सेकंड के अंदर दोहराए गए इवेंट्स में (user_id, event_name, event_ts) एक जैसी जानकारी है, तो उन्हें एक साथ मिलाना (collapsing) इस्तेमाल की गिनती के लिए तो सही हो सकता है, लेकिन लेटेंसी एनालिसिस के लिए गलत हो सकता है। जब AI drop_duplicates() का इस्तेमाल करके डुप्लीकेट हटाता है, तो वह चुपचाप कीज़ (keys) और प्राथमिकता (precedence) चुन लेता है। आपको कीज़, टाई-ब्रेकर और मेट्रिक पर पड़ने वाले असर के बारे में साफ़ तौर पर बताना चाहिए।
टाइप कोअर्शन (Type coercion) क्रम और ग्रुपिंग को बदल देता है। event_ts को गलत तरीके से पार्स करने पर इवेंट्स अलग-अलग महीनों में जा सकते हैं और MAU में गलत बदलाव दिख सकता है। आपको पार्सिंग की सफलता दर और टाइम ज़ोन की धारणा की पुष्टि करनी चाहिए।