নয়টি খালি ঘর: ইস্পোর্টস ডেটা পাইপলাইনে অডিট কোথায় থামে
**মূল উত্তর (≤৬০ শব্দ):** খালি ইনপুট থেকে কোনো ইস্পোর্টস বিশ্লেষণ সম্ভব নয়। স্টেজ-২ কাঠামোর নয়টি বিভাগেই তথ্যবিন্দু শূন্য থাকায় প্রতিটি ঘর 'তথ্য অপর্যাপ্ত' হিসেবে ফেরত দেওয়া হয়েছে; সবচেয়ে বড় ফল পাইপলাইনের স্টেজ-১ স্তরের নিষ্কাশন ব্যর্থতা। **মূল তথ্য:** - স্টেজ-১ ইনপুটে তথ্যবিন্দু শূন্য; কেবল ডোমেইন লেবেল 'ইস্পোর্টস' জীবিত ছিল। - ২০১৭ সালের ব্যাক-টেস্টে ১,১৪০টি প্রিমিয়ার লিগ ম্যাচ; ক্লোজিং-লাইন উন্নতি ৪ দশমিক ১ শতাংশ। - ২৭ জুন ২০১৮, কাজানে জার্মানি ০-২ হারে; ১৯৩৮ সালের পর প্রথম গ্রুপ পর্বে বিদায়। - ২০২০ সালের ৮১টি বুনডেসলিগা ম্যাচে হোম উইন রেট ৪৩ দশমিক ২ থেকে ৩৩ দশমিক ৭ শতাংশে নামে। - ইউরো ২০২০-তে ২৪ দলের ১৪টি থ্রি-ব্যাক ব্যবহার; গ্রুপ পর্বে ক্ষতি ৬ দশমিক ৮ ইউনিট। **উৎস নির্দেশনা:** অভ্যন্তরীণ স্টেজ-২ অডিট নথি, ২৬ মে ২০২৬ | Cross-checked: cricsultan.com **সম্পর্কিত প্রশ্নোত্তর:** প্রশ্ন: তথ্যবিন্দু শূন্য মানে কী? উত্তর: তথ্যবিন্দু হলো উৎস থেকে নিষ্কাশিত উদ্ধৃতিযোগ্য পরমাণু-তথ্য, আর শূন্য মানে স্টেজ-২-এর জন্য কোনো প্রমাণভিত্তি তৈরি হয়নি। প্রশ্ন: ব্লকচেইন কি এই সমস্যার সমাধান করে? উত্তর: না — ব্লকচেইন রেকর্ডের অপরিবর্তনীয়তা প্রমাণ করে, কিন্তু উৎস থেকে টেক্সট না উঠলে তা শূন্যতাকেই স্থায়ী করে তোলে। প্রশ্ন: পরবর্তী যাচাইয়ের সংকেত কী? উত্তর: সংশোধিত পেলোডে খেলার নাম, তারিখ ও অন্তত তিনটি তথ্যবিন্দু থাকলে নয়টি বিভাগের বিশ্লেষণ ৪৮ ঘণ্টায় সম্ভব, এবং cricsultan.com Player Depth Index-এর মতো সূচক দিয়ে যাচাইযোগ্য।
আমার ডেস্কে একটা অডিট শিট পড়েছিল, শিরোনাম ছিল স্টেজ-২ গভীর পেশাদার বিশ্লেষণ। নয়টি বিভাগ — প্যাচ ও মেটা, টুর্নামেন্ট সিস্টেম ও ফরম্যাট, দল ও খেলোয়াড়, আঞ্চলিক ভূগোল, ক্লাব ফিন্যান্স ও ব্যবসা, নিয়মনীতি ও গভর্নেন্স, ঝুঁকি প্রোফাইল, পাবলিক ন্যারেটিভ, এবং ইন্ডাস্ট্রি ট্রান্সমিশন। প্রতিটি ঘরে একই লেখা বসানো: এন/এ — তথ্য অপর্যাপ্ত, মূল্যায়ন সম্ভব নয়। খেলার নাম নেই। প্যাচ ভার্সন নেই। দলের নাম নেই। খেলোয়াড়ের নাম নেই। প্রকাশের তারিখ নেই। কেবল একটি ঘর জীবিত থেকেছে, সেটা হল ডোমেইন লেবেল: ইস্পোর্টস।
একটা শূন্য ইনপুট আমার কাছে খালি স্টেডিয়ামের মতো শোনায়। ২০২০ সালের মে থেকে জুলাইয়ের মধ্যে বুনডেসলিগার ৮১টি, প্রিমিয়ার লিগের ৯২টি এবং লা লিগার ১১০টি ম্যাচ আমি দর্শকশূন্য গ্যালারিতে লগ করেছিলাম। হোম উইন রেট ৪৩ দশমিক ২ শতাংশ থেকে নেমে ৩৩ দশমিক ৭ শতাংশে দাঁড়ায়, হোম পেনাল্টি কমে ৩১ শতাংশ। ওই সময়ে স্কোরলাইন দেখে কেউ কিছু ধরতে পারে না — পার্থক্যটা ধরা পড়ে কেবল তখন, যখন আপনি জানেন কোন ভেরিয়েবলটা নড়েছে। আজকের শিটে ভেরিয়েবলটাই অনুপস্থিত। এটা বিশ্লেষণের ব্যর্থতা নয়, এটা ডেটা-সরবরাহের ব্যর্থতা — এবং এই দুটো জিনিস গুলিয়ে ফেলাই পাইপলাইনের সবচেয়ে ব্যয়বহুল ভুল। (— উৎস: ২০২০ একাশি খালি স্টেডিয়াম | প্রেক্ষিত: ক্রাউড-এফেক্ট বিশ্লেষণ।)
প্রেক্ষাপট: দুই স্তরের পাইপলাইন আর রসিদের শৃঙ্খলা
২০১৭ সালে আমি ব্রুকলিনের একটি স্পোর্টস-বেটিং ডেটা স্টার্টআপে তৃতীয় অ্যানালিস্ট হিসেবে ঢুকি, ম্যানহাটনের একটি ইনস্যুরেন্স ফার্মে ছয় বছর স্প্রেডশিট চালানোর পর। প্রথম অ্যাসাইনমেন্টটা ছিল অনাড়ম্বর: ২০১৪ থেকে ২০১৭ পর্যন্ত ১,১৪০টি প্রিমিয়ার লিগ ম্যাচের বিপরীতে শট-কোয়ালিটি মডেলের ব্যাক-টেস্ট চালানো। ফলাফল দশমিকের ঘরে ছোট — পজেশন-ওয়েটেড এক্সজি কাঁচা শট-কাউন্টকে হারায় মাত্র ০ দশমিক ০৩ গোল প্রতি ম্যাচে। কিন্তু শট-লোকেশন ওয়েটিং ক্লোজিং-লাইন প্রেডিকশন উন্নত করে ৪ দশমিক ১ শতাংশ। সেই সংখ্যাগুলো আমি দশম দশমিক পর্যন্ত ফুটনোট করে একটা ব্লগে ছাপি, যার ফলোয়ার ছিল ৯০০ জন। ব্যাক-টেস্ট আগে, বাইলাইন পরে; বাইলাইনটা শুধু রসিদ।
সেই রসিদ-ভাবনাটাই আজকের সমস্যার কেন্দ্রে। বিশ্লেষণ পাইপলাইন দুই স্তরে চলে। স্টেজ-১ কাঁচা উৎস থেকে তথ্য টেনে বের করে — খেলার নাম, দল, প্যাচ নম্বর, তারিখ, উদ্ধৃতিযোগ্য তথ্যবিন্দু। স্টেজ-২ সেই তথ্যবিন্দুগুলোর উপরে গভীর বিশ্লেষণ দাঁড় করায়। স্টেজ-২ স্টেজ-১ যা ধরতে পারেনি, তা সৃষ্টি করতে পারে না। এটা ব্লকচেইনের নোড-আর্কিটেকচারের মতোই: যে লেনদেন কোনো নোড কখনো পায়নি, সেটি সে ভ্যালিডেট করতে পারে না।
এখানেই ব্লকচেইনের সঙ্গে সাদৃশ্যটা কাজে লাগে। প্রি-রেজিস্ট্রেশনের মূল্য আমি শিখেছিলাম ২০১৮ সালের মার্চে। আমি একটি অভ্যন্তরীণ মেমো লিখি: জার্মানির প্রেসিং ক্ষয়ে যাচ্ছে — ২০১৬-১৭ কোয়ালিফায়ারে পিপিডিএ ৮ দশমিক ৪ থেকে বেড়ে ১১ দশমিক ৬, প্রতি ম্যাচে সৃষ্ট এক্সজি ১ দশমিক ৯২ থেকে নেমে ১ দশমিক ৪১। দুজন সহকর্মী বলেছিলেন এটা আতঙ্কজনক অতিরঞ্জন। ২৭ জুন ২০১৮, কাজানে জার্মানি ০-২ হারে দক্ষিণ কোরিয়ার কাছে, কিম ইয়ং-গোয়ন ও সন হিউং-মিনের গোলে, এবং ১৯৩৮ সালের পর প্রথমবার গ্রুপ পর্বেই বিদায় নেয়। মেমোটি এক সপ্তাহে ফার্মের ভেতরে ৪০০ বার ফরওয়ার্ড হয়। কিন্তু মেমোটির আসল সম্পদ ছিল তার টাইমস্ট্যাম্প — কে কখন কী লিখেছিল, আর কী প্রমাণিত হতে পারত, সেই রেকর্ড। (— উৎস: ২০১৮ জার্মানি মেমো / আইএসটিজে ডকুমেন্টেশন | প্রেক্ষিত: সময়-সংবেদনশীল গবেষণা নোট।)
ব্লকচেইন ঠিক এই কাজটাই করে। একটি প্রাক-ঘোষিত পূর্বাভাসের হ্যাশ কিক-অফের আগে লেখা থাকলে ফলাফলের পর সেটি বদলানো অসম্ভব। সমস্যা একটাই। ব্লকচেইন প্রমাণ করে রেকর্ড বদলায়নি; এটি প্রমাণ করে না রেকর্ডটা সত্য ছিল। খালি রেকর্ড স্থায়ীভাবে সংরক্ষণ করলে যা পাওয়া যায়, তা হল স্থায়ী শূন্যতা।

মূল বিশ্লেষণ: ব্যর্থতার পাঁচটি কারণ আর শূন্যের ছদ্মবেশ
যে শিটটা আমার হাতে এসেছে, তার ব্যর্থতার পাঁচটি সম্ভাব্য কারণ আছে, এবং প্রতিটির প্রতিকার আলাদা।

উৎসটি টেক্সট-বহির্ভূত সম্পদ হতে পারে — ভিডিও, লাইভস্ট্রিম ভিওডি, ছবির ক্যারোসেল, পডকাস্ট; এক্সট্র্যাক্টর পড়তে পারেনি। আস্থার মাত্রা মাঝারি। উৎসটি পেওয়াল, লগইন-ওয়াল বা অ্যান্টি-স্ক্র্যাপিং স্তরের পেছনে থাকতে পারে, ফলে খালি বডি ফিরেছে। আস্থা মাঝারি। পেজটি ডাইনামিক্যালি রেন্ডারড হতে পারে — জাভাস্ক্রিপ্ট-ইনজেক্টেড কনটেন্ট, ক্রলার শুধু খোলস ধরেছে, কোনো টেক্সট নোড নেই। আস্থা মাঝারি। ইনপুট স্টেজ-১ আর স্টেজ-২-এর মাঝে কেটে যেতে পারে, টেমপ্লেট কাঠামো অটুট রেখে পেলোড ছাড়া। আস্থা কম। অথবা উৎসটি নিছক একটি শিরোনাম বা সোশ্যাল পোস্ট, যেখানে বডি টেক্সট নেই। আস্থা কম।
পাঁচটির প্রতিকার ভিন্ন, এবং সরবরাহকৃত ডেটা দিয়ে পাঁচটির মধ্যে পার্থক্য করা অসম্ভব। এই পার্থক্যহীনতাই আসল ক্ষতি, কারণ এটি পরবর্তী পদক্ষেপটাই অনির্ধারিত করে দেয়।
যেটা সরাসরি পর্যবেক্ষণ করা যায়, তা হল স্কিমার মধ্যে লুকানো ত্রুটি। স্টেজ-১-এর দুটি ক্ষেত্র স্ব-উল্লেখী। সম্পৃক্ত সত্তা ঘরটি বলছে উপরের তথ্যবিন্দু থেকে চিহ্নিত করতে, আর উৎসের গুণমান ঘরটি বলছে তথ্যবিন্দুর উৎস ক্ষেত্র থেকে বিচার করতে। কিন্তু তথ্যবিন্দুর তালিকাটাই খালি। এই শর্ত মানতে গেলে হয় লুপ তৈরি হয়, নয়তো বানানো তথ্য। আস্থা উচ্চ, কারণ এটি ইনপুটেই সরাসরি দৃশ্যমান।
দ্বিতীয় জিনিসটি হল শূন্যের ছদ্মবেশ। টেমপ্লেটের সব শিরোনাম অটুট থাকে, ফলে একজন ডাউনস্ট্রিম ব্যবহারকারী চোখ বুলিয়ে কাঠামোকে কনটেন্ট ভাবতে পারেন। স্ট্রাকচার আর কনটেন্টের এই বিভ্রান্তি পাইপলাইনের নীরব ফাঁস। সমাধান যান্ত্রিক: তথ্যবিন্দুর ন্যূনতম সংখ্যা ব্লক-ভ্যালিডিটি শর্ত হিসেবে বসাতে হবে, শূন্য হলে রেকর্ড প্রত্যাখ্যান করতে হবে। এটা ব্লকচেইনের কনসেনসাস রুলের মতোই — যে ব্লক ভ্যালিডেশন শর্ত পূরণ করে না, সেটি চেইনে জায়গা পায় না।
তৃতীয় এবং সবচেয়ে বিপজ্জনক জিনিসটি ঝুঁকি বিভাগে আছে। ঝুঁকি প্রোফাইল বিশ্লেষণে সব ঘর এন/এ রাখা হয়েছে, এবং সেখানে একটি লাইন যোগ করা হয়েছে যা আমার মতে এই নথির সবচেয়ে দামি বাক্য — এখানে কম ঝুঁকি লিখলে সেটাই হবে সবচেয়ে বড় ভুল, কারণ সেটি অনুপস্থিত ডেটাকে মিথ্যা আশ্বাসে পরিণত করবে। এটা ঠিক ধরেছে। আমি যদি কোনো দিন দেখি, খালি ইনপুট থেকে কেউ ঝুঁকি নিম্ন লিখে দিয়েছে, আমি ধরে নেব মডেলটা ভেঙেছে — অন্তত মডেলের সততাটা।
এখানেই ২০২১ সালের পাঠটা কাজে আসে। ইউরো ২০২০-তে আমি ৫১টি ম্যাচে ফর্মেশন ট্র্যাক করি: ২৪ দলের মধ্যে ১৪টি কোনো না কোনো সময়ে থ্রি-ব্যাক ব্যবহার করেছে, ইউরো ২০১৬-তে যা ছিল ছয়টি। আমার মডেল উইং-ব্যাক ক্রসিং চেইনকে কম ওজন দিয়েছিল। গ্রুপ পর্বে আমি ৬ দশমিক ৮ ইউনিট হারি। টুর্নামেন্টের মাঝপথে আমি মডেল বদলাইনি। ফাইনালের পর অডিট চালাই, এবং ১৯ দিনে ৩৪০টি সেরি আ ও বুনডেসলিগা ম্যাচ ব্যবহার করে ফুলব্যাক মডিউল নতুন করে গড়ি। ওখান থেকেই মডেল ল্যাগ স্বীকারোক্তির অভ্যাস: এক বাক্যে লিখে দিতে হয়, আমার সংখ্যাগুলো কী দেখতে পায় না। অনেকের কাছে এটা বিনয় মনে হয়, কার্যত এটা একটা হেজ। ২০২২ সালে আমার কাজ টিকে গিয়েছিল ঠিক এই কারণেই।
খেলার নামটাই এখানে প্রথম প্রবেশদ্বার। লিগ অফ লেজেন্ডস, ডোটা ২, সিএস২, ভ্যালোর্যান্ট, অনার অফ কিংস, পিস এলিট — প্রতিটির প্যাচ কেডেন্স, মেট্রিক কনভেনশন আর প্রতিযোগিতামূলক স্থিতিশীলতা আলাদা। নাম ছাড়া প্যাচ বিশ্লেষণ শুরু করাই যায় না। একইভাবে পাবলিশার রুল, লিগ রুল আর জাতীয় নিয়ন্ত্রক নীতি — তিনটির বাধ্যবাধকতা ভিন্ন, আর এখুলে কোনটি প্রযোজ্য তা ঠিক করার জন্য নাম আর এখতিয়ার দুটোই দরকার।
প্রতিকূল কোণ: পুনরুদ্ধারের তাড়াহুড়ো যেটা চাপা দেয়
স্বাভাবিক প্রতিক্রিয়া হবে দ্রুত পুনরুদ্ধার — উৎস লোকেট করুন, আবার স্ক্র্যাপ করুন, তথ্যবিন্দু ভরে ফেলুন, বিশ্লেষণ চালু করুন। আমি বলছি না এটা করবেন না; ইস্পোর্টসের ন্যারেটিভ কয়েক দিনেই ক্ষয়ে যায়, সক্রিয় টুর্নামেন্টের মাঝে দেরি মানে মৃত বিশ্লেষণ। কিন্তু এই তাড়াহুড়োর মধ্যে একটা কথা চাপা পড়ে যায়।

ব্লকচেইন বা অন-চেইন অ্যাটেস্টেশন এই ব্যর্থতার শ্রেণিটা মেটায় না। উৎস থেকে টেক্সট না উঠলে খালি রেকর্ডটাকে অপরিবর্তনীয় করে লাভ কী? আপনি তখন শূন্যতার একটা নিখুঁত, সংশোধন-অযোগ্য প্রমাণ তৈরি করলেন। শৃঙ্খলা তথ্যের অখণ্ডতা রক্ষা করে, তথ্যের অস্তিত্ব নয়। লেজার সত্য বলে না; লেজার কেবল বলে কে কখন কী লিখেছে।
দ্বিতীয়ত, গোলরক্ষকদের লম্বা কিকের বাজারটা দেখুন। যে গোলরক্ষকের শট-স্টপিংয়ের মূল সূচকগুলো ক্রমশ পড়ছে, তার দাম বাড়ছে শুধু লম্বা ডিস্ট্রিবিউশনের কারণে। এটা ফুটবলের উদাহরণ, প্যাটার্নটা এক: সহজে বর্ণনাযোগ্য গুণ (কিকের দূরত্ব) সহজে মাপা যায়, তাই বেশি ওজন পায়; মাপা-কঠিন গুণ অবমূল্যায়িত থেকে যায়। ডেটা পাইপলাইনেও ঠিক এই ঘটনা ঘটে। সহজে-নিষ্কাশযোগ্য ক্ষেত্রগুলো পূরণ হয়, অস্পষ্ট কিন্তু নির্ণায়ক ক্ষেত্রগুলো এন/এ হয়ে পড়ে থাকে। আউটপুট দেখতে সম্পূর্ণ লাগে, বাস্তবে পক্ষপাতদুষ্ট। ট্রান্সফার মার্কেটে দাম ঠিক এই ফাঁকে ফুলে ওঠে, আর বিশ্লেষণে সংখ্যা ঠিক একই ফাঁকে খালি হয়ে যায়। (— উৎস: স্পোর্টস বেটিং অ্যানালিস্ট / ট্রান্সফার মার্কেট | প্রেক্ষিত: ট্রান্সফার গুজব ও দাম।)
অগ্রগামী সংকেত: পরের চক্রে আমি কী দেখব
পরের সপ্তাহে আমার পর্যবেক্ষণযোগ্য তিনটি সংকেত থাকবে। এক, স্টেজ-১ থেকে সংশোধিত পেলোড আসে কি না — অন্তত একটি খেলার নাম, একটি প্রকাশের তারিখ, এবং তিন থেকে পাঁচটি উদ্ধৃতিযোগ্য তথ্যবিন্দু সহ। দুই, একই ব্যাচে খালি রেকর্ড আবার আসে কি না; মাসে দুবার এলে ধরে নিতে হবে এটি একক ফেচ ব্যর্থতা নয়, এক্সট্র্যাক্টরের পদ্ধতিগত রিগ্রেশন। তিন, ইনজেশন লগে এইচটিটিপি স্ট্যাটাস, কনটেন্ট-টাইপ আর কাঁচা বাইট-দৈর্ঘ্য সংরক্ষিত আছে কি না — কারণ ত্রুটির ধরন জানা না থাকলে প্রতিকারের পথও নির্বাচন করা যায় না।
আমার হিসাবে এই মুহূর্তে সম্ভাবনা সবচেয়ে বেশি, প্রায় ৬০ শতাংশ, যে সমস্যাটা ইনজেশন স্তরেই সমাধানযোগ্য — পেওয়াল, জাভাস্ক্রিপ্ট রেন্ডারিং, বা ট্রাঙ্কেশন। আস্থা মাঝারি থেকে উচ্চ। ঠিক সেই সূত্রেই যদি ধরা পড়ে, তবে নয়টি বিভাগের পূর্ণ বিশ্লেষণ ৪৮ ঘণ্টার মধ্যে সম্ভব, এবং সেই বিশ্লেষণের টাইমস্ট্যাম্প আগেই লেখা থাকবে।
আমার বছরের পর বছর ম্যাচ দেখার অভিজ্ঞতা বলে, দুর্বল তথ্য থেকে দ্রুত সিদ্ধান্ত বের করার চাপটাই সবচেয়ে বেশি ক্ষতি করে, কারণ সেটা দর্শককে সংখ্যার নিরাপত্তার ভ্রম দেয়। খালি রেকর্ডটাই আজকের সবচেয়ে শিক্ষামূলক নথি — নয়টি মাত্রার একটি কাঠামোকে বিশ্বাসযোগ্য ফিলার দিয়ে না ভরে সৎভাবে খালি ফেরানো বিরল। ভবিষ্যতে কেউ যদি খালি ইনপুট থেকে এই পরিস্থিতির নির্দিষ্ট কারণ বলে আমাকে বোঝাতে চায়, আমি প্রথমে জিজ্ঞেস করব: আপনার তথ্যবিন্দু কতটি, আর সেগুলো কোথা থেকে এল। কারণ ব্যাক-টেস্ট আগে, বাইলাইন পরে; বাইলাইনটা শুধু রসিদ।
