Null Field, Green Log: The Silent Data Failure in Bangladesh Cricket
**মূল উত্তর:** বাংলাদেশের ঘরোয়া ক্রিকেটে বহু ম্যাচের বল-বল ডেটা সংগ্রহই হয় না, ফলে ট্রান্সফার মূল্যায়নে "অজানা" ঘরগুলো শূন্য হিসেবে গণ্য হয়। এই নীরব ব্যর্থতা বিশ্লেষকদের সিদ্ধান্তকে ম্যাচের প্রকৃত ছন্দ থেকে দূরে সরিয়ে দেয় এবং অপেক্ষাকৃত অমূল্যায়িত খেলোয়াড়দের বাজারমূল্য বিকৃত করে। **মূল তথ্য:** - ঢাকা প্রিমিয়ার Leagueের বহু ম্যাচে ক্যামেরা থাকলেও পাবলিক বল-বল ফিড নেই; স্কোরকার্ডে শুধু সমষ্টিগত Statistics জমা হয়। - ২০১৭ সালে সিলেটে ব্যাটারিচালিত স্ক্রিপ্টে অনূর্ধ্ব-১৭ বিশ্বকাপের ৫২ ম্যাচের ১,৮০০ শট ইভেন্ট কোড করা হয়েছিল; কারণ প্রতিটি ফ্রেম উপস্থিত ছিল। - শূন্য ও অজানা একই ঘরে বসলে বাজার অজানাকে শূন্যের মতোই শাস্তি দেয়। - বাংলাদেশের প্রথম টি-টোয়েন্টি International ম্যাচ হয় ২০০৬ সালের ২৮ নভেম্বর, খুলনায় জিম্বাবুয়ের বিপক্ষে। - ফিল্ডিং লোড, ডট-বল প্রেসার ও ফ্যালস শট রেট মাপতে ইভেন্ট-স্তরের ডেটা অপরিহার্য, যা ঘরোয়া কাঠামোয় অনুপস্থিত। **উৎস:** আরিফ খানের নিজস্ব ডেটা লগ ও কর্ম-নোটবুক, ২০১৭–২০২৫। **সম্পর্কিত প্রশ্নোত্তর:** প্রশ্ন: ট্রান্সফার উইন্ডোতে ডেটার অভাব কীভাবে ভুল মূল্যায়ন তৈরি করে? উত্তর: কারণ অজানা পারফরম্যান্স শূন্য হিসেবে টেবিলে ঢোকে, ফলে যাচাই না হওয়া খেলোয়াড় বাজারে অবমূল্যায়িত হন। প্রশ্ন: এই সমস্যার সমাধান কি More বেশি ডেটা সংগ্রহ? উত্তর: নয়—প্রথম শর্ত হলো ফাঁকা ঘরকে প্রকাশ্যে অজানা হিসেবে চিহ্নিত করা, তা না হলে ভুল তথ্য দ্রুত ছড়ায়। প্রশ্ন: বাংলাদেশে এই ডেটা ফাঁক বন্ধে কে উদ্যোগ নিতে পারে? উত্তর: বোর্ড ও সম্প্রচারকের যৌথ উদ্যোগে ইভেন্ট-স্তরের বল-বল আর্কাইভ জনসমক্ষে প্রকাশ করা গেলে স্কাউটিং ও নির্বাচন দুটোই শুদ্ধ হয়।
The system reported success. Every field inside was empty.

The file that landed on my desk carried the file name of a cricket report. There was no title, no source, no summary, no list of information points. One label survived: cricket. The script threw no error. No red light came on. The pipeline handed an empty hand to the next stage, and the next stage politely replied that there was nothing to analyse.
Politeness is useless here. When a stage returns "nothing was found" and "everything is fine" under the same status code, that system has never learned to measure its own failure. I have watched the same event repeat itself for eighteen years, in scorecards, in frames, and in monsoon rain. The only difference is that cricket files no log for it. The output simply goes cold.

When I walked into The Daily Star sports desk in 2026, copy was the raw material. In 2026 I moved back to Sylhet, ran Python off a car battery, and hand-coded 1,800 shot events across 52 matches of the FIFA U-17 World Cup in India. Rhian Brewster's eight goals had come from just 4.9 xG; eleven turnovers in Spain's defensive third decided the final. Those sentences were writable for exactly one reason: every frame existed.
In Bangladesh's domestic cricket that frame is frequently absent. Cameras roll at many Dhaka Premier League fixtures, but no public ball-by-ball feed exists. The scorecard stores aggregates only: runs, wickets, who was out. Which delivery was short of length, which fielder drifted five steps back, which batter consumed thirty balls for thirty and pushed his side into pressure — that layer is never written down. The monsoon muddies it further. A match floods out, Duckworth-Lewis settles the result, and the abandoned overs never reach any table.
Those empty rows are the most expensive thing in the market right now. Inside a transfer window, three parties — franchise, agent, selector — are chasing one question: what is this player actually worth. A transfer is not a transaction; it is a pressure system. Anyone deciding on aggregate runs and strike rate alone is making a full decision on half the information, and does not know it.
The silent failure takes three shapes. A null treated as valid: the field is empty, and still it is taken as truth. A lost frame: the camera was there, the record is not. An unlogged absence: the match did not happen, and nobody noted that it did not happen. All three produce the same output — a table that looks immaculate in the market, with half its cells actually question marks.
Filing the unknown in the same column as zero is the core defect of this system. If a nineteen-year-old's forty innings were never televised, his rating is not zero. It is unknown. The table shows 0 for both, and the market punishes the unknown exactly as it punishes the zero. I have found this pattern repeatedly in my own notebook: the player dropped for "no data" takes wickets elsewhere two seasons later, and nobody goes back to ask what we were missing at the time.
Fielding load, dot-ball pressure, false-shot rate, catch-to-drop ratio — these variables arrive only from event-level data, and our domestic structure does not collect it. So the analyst measures what is measurable, and what resists measurement slowly disappears from the decision table.
The empty stadium taught me that absence is a variable. When the Mirpur galleries thin out, or a league fixture sits in a provincial ground with nobody watching, the player's incentive structure shifts — and that shift is recorded nowhere. Travel fatigue, an NOC in limbo, an injury history, the weight of a contract year: these are the questions you must ask before turning a person into a machine, and the answers hide inside those empty rows.
This is where I have to stand against my own profession. Data analysts are walking into dressing rooms, and their conclusions drift away from the rhythm of the match — because part of the data they argue from was never collected in the first place. A batter averages thirty-two on paper, but on the thirtieth over he stopped playing to avoid a wicket; no average records that. The model measures arithmetic, not rhythm.
The reflex answer is: collect more. I do not accept it. Filling an empty cell with a written zero increases the volume of data, not the amount of information. Numbers are not cold; they are unresolved arguments. A table willing to say "unknown" hands the scout back his job. A table that writes 0 there takes the job away from him.
Every time I open a new dataset I run one test, and I would have run it on this pipeline too: leave the whole field blank and see whether the script reports success. If it does, the fault is not in the data but in the habit of verification. Every frame is a confession if you slow it down enough — but a frame that does not exist cannot be slowed.
I scraped the monsoon until the noise confessed its pattern. The monsoon has a limit, though: rain stops play, and the stopping at least announces itself. Data absence happens silently, with no announcement at all.

The signal I will watch in the next transfer cycle is not a star's price. It is which board or franchise will publicly call its blank cells unknown, and which will keep planting green ticks on them. A year on, the second group will have produced more auction lists, and the first will have bought fewer mistakes. The question is simple: do you want a system that screams when it fails, or one that comes back empty-handed and tells you everything is fine?
